home products services about
logo software poetry
navigation
KBnow Online Documentation

KBnow Online Documentation


The Web Interface

When you first connect to KBnow with your web browser, you will be presented with a navigation pane on the left side of the screen, and a list of the most recently-added articles on the right (this list may be empty if you have just installed KBnow). The interface is purposefully quite simple, and should feel comfortable to most users.

Finding articles

Search

Use Search when you need to find articles pertaining to a known topic. Enter one or more keywords into the search box, then use the dropdown menu to select "match all words" (default) or "match any word". Press the Search button or simply hit the Enter key and matching documents will be shown in the right pane. Results are shown with the "best" matches at the top.

At times your internal knowledge base may not contain the answers you need. KBnow provides easy access to the powerful Google (TM) Internet search engine to allow you to easily "broaden" a query. Change the "search internal kb" dropdown menu to "search the web" or "search usenet", then press the Search button to immediately perform your query at Google.

Browse

Browsing is useful when you want to see recent additions to the knowledgebase, or when you know the approximate date that an article was added but aren't sure what keywords to use. Use the calendar dropdown menus to pick a date and then press the Browse button to view articles submitted on that day. Newer articles are at the top of the list, older towards the bottom.

When browsing, you can use the "Newer" and "Older" links at the top right of the screen to page through articles in the knowledgebase. These links are visible only if they make sense; for example if you are already viewing the newest articles there will not be a "newer" link.

Reading articles

Reading KBnow articles is very much like reading messages in your email application. A grey "header" at the top of the pane shows date, author and subject information; the text of the article is shown in the rest of the window. KBnow supports both plain text and HTML email, so articles can contain rich formatting such as fonts, styles, tables, images, and so forth.

KBnow also supports email attachments such as spreadsheets and images. Attachments will appear below the text of the article, tagged with a grey "document" icon. Note that while viewing and storing of attachments is completely supported, KBnow cannot index text stored within binary file formats. Make sure that articles have sufficient body text to help users find the information they're looking for.

Adding articles

In most installations, KBnow is configured to monitor one or more email addresses, for example "kb@yourcompany.com". You can either email articles to these addresses directly or "CC" them on mail between team members. KBnow will automatically add any messages it receives to the knowledgebase. It is also common to add the KBnow email addresses to key internal distribution lists (also known as "aliases") where important topics are discussed. For example, if you have an alias that you use to distribute important human resources or technical information, you can add the KBnow address to that alias and automatically create a searchable archive of all messages sent to it!

In versions 20020724 and later, KBnow can fetch articles from "RSS" syndication feeds. These feeds are generated by most popular weblog or knowledgelog software, as well as by literally hundreds of news and information sources on the Internet. Internally, RSS can be used to aggregate individual knowledgelog entries into a centralized, permanent, searchable archive. Contact your administrator for assistance in connecting your weblog to KBnow.

There is also a "Post Article" link in the left pane of the web interface. You can use this link to submit an article from your browser. This can be used when you don't have access to an email client or if you've chosen not to enable email/rss monitoring.

Finally, advanced installations may choose to submit articles as text files directly to the indexing engine. See the "Advanced Topics" section for more information on this option.

Editing and Removing Articles

(Versions 20020911 and later)

KBnow provides a very basic mechanism for editing articles, using the "edit article" link on the right side of the message header bar. Editing is done in KBnow's native RFC822/MIME format, which can be somewhat cryptic for messages with attachments or complex formatting. However, for most articles it works well. Take care with the "mime type" box, only alter this if you are sure you understand the ramifications.

Also on the right side of the header bar is a link labelled "remove from kb". You can use this link to remove incorrect, outdated or irrelevant articles from the knowledgebase. Because the knowledgebase is a team resource, this option is available to all users in a default installation. Be careful!

Receiving Updates in Email

If your administrator has enabled distribution list functionality, KBnow can forward you a copy of each new article added to the knoweldgebase. Click the "Email Updates" link in the left pane, enter your email address and click "Subscribe". To stop receiving updates, return to the Email Updates page and choose Unsubscribe.

Administration

Starting and stopping KBnow

Under Linux, the daemon is started by running the command "ezkb", either manually from a shell or at system startup in an rc.local file. By default, KBnow will look for data files in the same directory where ezkb resides; this can be altered by specifying "-d configdir" on the command line, where "configdir" is the full path to a directory containing your config.xml file. KBnow creates a file "ezkb.pid" in the config directory with the currently-running process id; you can terminate the daemon by sending a TERM signal to this process, as in "kill -TERM `cat ezkb.pid`".

KBnow registers itself as a service under Windows, so it may be started and stopped from the Services Control Panel. If you would like to provide an alternative data directory under Windows, create a registry key HKEY_LOCAL_MACHINE\Software\SoftwarePoetry\ezkb\args. Under this key, create a REG_SZ value with the name "d" and the value a full path to a directory containing your config.xml file.

The config directory and config.xml

KBnow looks in the config directory as outlined above for a file "config.xml". This file tells KBnow how to behave --- what mailboxes to monitor, what port to listen on for web requests, and so forth. A simple but complete config.xml file is created during installation, so many users will never need to touch config.xml. For those who do, a cursory knowledge of xml is useful. Global settings appear as children of a <settings> node under the root <ezkb> node; an exhaustive list of options follows can be found under Advanced Configuration below.

NOTE: All changes to config.xml require the KBnow daemon to be restarted before they will take effect.

Monitoring email

KBnow can monitor as many email accounts as are appropriate for your situation. KBnow looks in the <mailboxes> section of config.xml for each tag of type <mailbox>. A <mailbox> tag should have the following child elements:

  • <server> Contains the name or ip address of the pop3 email server where the address resides. For example, if you use Microsoft Exchange, this would be the name of your Exchange server.

  • <port> (default 110) Specifies the port on <server> to connect to. In almost all cases this will be 110; it is probably safe to just ignore it.

  • <login> Contains the login name for the email account. On most systems, this will be the email address without the "@company.com" part. However, email systems are inconsistent on this, so check with your system administrator.

  • <password> Contains the password for the email account. Note that the password is stored in clear text. You should take precautions to be sure that the config.xml file has proper permissions set to avoid exposure of this password.

Example 1. An example <mailboxes> tag, containing a single <mailbox> element

<mailboxes>
     <mailbox>
          <server>mail.company.com</server>
          <login>kb</login>
          <password>samplepassword</password>
     </mailbox>
</mailboxes>

Monitoring RSS/RDF syndication feeds

(Versions 20020724 and later)

RSS is an XML-based document format used to "syndicate" information on the Internet. RSS allows knowledge publishers to expose information in a structured way; an excellent overview and tutorial can be found at http://gils.utah.gov/rss/. KBnow can monitor any number of RSS feeds and integrate their contents into your permanent, searchable knowledgebase. You can draw content from relevant public weblogs, news headlines from sites such as moreover.com, or from internal "k-logs" or KnowledgeLogs maintained by your employees. K-logs can be a great way for employees to keep everyone updated about projects; KBnow is a great addition that adds aggregation, full-text search and a central repository.

KBnow looks in the <rss-feeds> section of config.xml for tags of type <rss-feed>. The <rss-feeds> tag should be a direct child of the <ezkb> tag. An <rss-feed> tag should have the following child elements:

  • <url> Specifies the URL for the RSS feed.

  • <rss-fetch-interval-minutes> Specifies, in minutes, how often to check for updates to the feed. Usually it will be more convenient to specify this once for all feeds with a global <rss-fetch-interval-minutes> tag. See the "config.xml" section under "Advanced Topics" for details on rss-specific global settings.

Example 2. An example <rss-feeds> tag, containing a single <rss-feed> element

<rss-feeds>
     <rss-feed>
          <url>http://www.slashdot.org/articles.rss</url>
     </rss-feed>
</rss-feeds>

RSS items are converted into an html email message format using the XSL stylesheet "fetch.xsl" in the web directory. You can alter the presentation of items by editing this file.

KBnow works the best with RSS feeds that contain full item text in their <description> or <fullitem> fields --- this gives KBnow the most text to index in the knowledgebase, and is the best choice if you're generating feeds from internal K-logs. However, it can still be very useful to integrate feeds that contain only abbreviated descriptions, or no description at all (for example, see the feed at slashdot.org). You can optimize your users' viewing experience by configuring KBnow to redirect to the original article, rather than the KBnow message file. Use the <rss-redirect-threshold> tag to specify a minimum description length that will cause the web interface to redirect to the original article. See the "config.xml" section of "Advanced Topics" for more details.

NOTE: KBnow tries to leverage the proposed <guid> item tag to identify unique items. However, some feeds that provide a <guid> tag erroneously change the tag over time, which can cause re-indexing of the same item multiple times. If you would like to index a feed that exhibits this problem, you can use the "force-content-match" attribute to disable use of the <guid> tag:

Example 3. An example <rss-feed> tag using forced content matching

<rss-feed force-content-matching="yes">
     <url>http://www.scripting.com/rss.xml</url>
</rss-feed>

Filtering incoming articles

(Versions 20020724 and later)

You find an email list or rss feed that contains a mix of information, some which is relevant to your knowledgebase and some which is not. Keyword filtering allows you to archive and index only those articles that you care about. Filtering is accomplished by adding one or more <filter> tags underneath the <mailbox> or <rss-item> you want to filter. The filter tag has the following elements:

  • "match" attribute. This attribute on the filter tag specifies how child elements should be matched. It can have the value "all", "any" or "none". The default is "all".

  • <text> Contains a word or phrase that will be searched for

  • <filter> Filter tags can contain recursive <filter> elements that can be used to construct more complex filters.

Example 4. Filtering an RSS feed for mentions of "James Dean"

<rss-feed>
     ... normal rss feed tags omitted ...
     <filter>
          <text>James Dean</text>
     </filter>
</rss-feed>

Example 5. Filtering a mailbox for mentions of "Web Services" but not "SOAP"

<mailbox>
     ... normal mailbox tags omitted ...
     <filter match="all">
          <text>Web Services</text>
          <filter match="none">
               <text>SOAP</text>
          </filter>
     </filter>
</mailbox>

It may be useful to apply the same <filter> to more than one mailbox or feed. You can create a global filter by creating a <filters> tag under the root <ezkb> element and placing one or more <filter> tags within it. Give each <filter> in the <filters> section a "name" attribute. Then within the <mailbox> or <rss-feed> element, add a <use-filter> element with a matching "name" attribute. Be careful to close the <use-filter> tag properly!

Example 6. Referencing a global filter

<ezkb>
     <filters>
          <filter name="good-movies" match="any">
               <text>Breakfast at Tiffany's</text>
               <text>Joe Versus the Volcano</text>
               <text>Funny Face</text>
          </filter>
     </filters>
     ...
     <rss-feeds>
          <rss-feed>
               ...
               <use-filter name="good-movies" />
          </rss-feed>
     </rss-feeds>
</ezkb>

Note: filtering does not apply to articles posted from the web interface or directly submitted to the incoming directory (see "Submitting articles programmatically" under "Advanced Topics"). Articles submitted through these mechanisms will always be included in the knowledgebase.

Email updates / distribution list

(Versions 20020628 and later)

KBnow can easily be configured to forward new articles via email to a list of addresses. This feature on top of the permanent, searchable archive makes KBnow a great mailing list solution. Or just use the functionality so that members of your organization can see the latest updates without ever having to visit the web interface.

There are two steps to enabling distribution list functionality. First, add an <smtp-host> tag to the <settings> element of config.xml. The text of this tag should be the name of your email server, that KBnow can use to send outbound messages.

Next, copy and paste the following section into config.xml as a child of the root <ezkb> node:

Example 7. A sample <distribution-list> tag

<distribution-list>
     <list-address>kb@yourcompany.com</list-address>
     <list-name>KBnow distribution list</list-name>
     <reply-to-list>0</reply-to-list>
     <hide-subunsub-links>0</hide-subunsub-links>
     <subscribers>
          <address>ed@houseoffish.com</address> 
     </subscribers> 
</distribution-list>

Edit the text for your environment. Tags within the <distribution-list> element have the following meanings:

  • <list-address> Contains an email address that users can send articles to for submission. If you have no <mailboxes> enabled or do not want users posting to the knowledgebase, remove this entry or leave it blank.

  • <list-name> An optional friendly name to go with <list-address>. If specified, messages forwarded to the distribution list will show this in the "To" field.

  • <reply-to-list> (default 0). If this tag exists and contains the value "1", users that "reply" to KBnow updates from their email client will send their message to <list-address> for indexing and distribution. Otherwise, "reply" will send mail only to the author of the article.

  • <hide-subunsub-links> (default 0). If this tag exists and contains the value "1", users will NOT be able to add and remove themselves from the distribution list using the "Email Updates" link in the left pane of the web interface. By default, users are allowed to manage their own subscription records. Use this tag if you want to control the distribution list members yourself.

  • <subscribers>. This tag should contain a collection of <address> tags. Each <address> tag should contain one email address. This section is usually maintained automatically through the "Email Updates" link, but if you would like to edit it by hand you can do so, especially if you have enabled <hide-subunsub-links>.

Configuring KBnow for public access

(Versions 20020702 and later)

While KBnow is most often used in a collaborative setting, it can be a great solution for one-way publishing as well. You can use the <read-only-webui> config.xml setting to remove editing functionality from the web interface. See the config.xml section for other values you can use to customize your installation.

If you would like to use KBnow to maintain a permanent, searchable archive of your Internet-based email newsletter, you may be eligible to receive a free unlimited license for KBnow. Contact us at sales@softwarepoetry.com for more information.

User authentication

By default, KBnow installs itself with no authentication required. In many corporate environments, there is little need for user-level authentication for tools of this type. If you can reasonably avoid using authentication for KBnow, we encourage it, at least at first. KBnow is about removing barriers to important information. However, there are certainly circumstances in which authentication is critical.

If you would like to enable authentication, add an <authentication> element as a child of the root <ezkb> node. It is important to note that the simple presence of this tag, even if there are no users accounts defined, will cause the web interface to present a login dialog.

For each user, create a <user> tag, with the following child elements:

  • <login> Specifies the name of a single user.

  • <password> Specifies the password for the user. Ideally this entry is actually the MD5 hash of the password; you can easily compute a hash from the command-line by running "kbnow -p password" where "password" is the secret to hash. If you would like to store cleartext passwords, you can do so by adding a "#" to the front of the password.

Example 8. An example <authentication> tag, containing two users, one with a hashed password and one cleartext

<authentication>
     <user>
          <login>steve</login>
          <password>6f1ed002ab5595859014ebf0951522d9</password> 
     </user> 
     <user> 
          <login>bob</login>
          <password>#mycleartextpassword</password> 
     </user> 
</authentication>

Advanced Configuration

Config.xml Global Settings

The following settings provide fine control over the behavior or KBnow. Be careful, and remember the KBnow must be restarted for changes to take effect.

  • <log-directory> By default logs are placed in a "logs" subdirectory of the config directory. This setting will override that to place logs in an arbitrary location.

  • <log-prefix> Use this to replace the "ezkb" prefix on log files with a string of your choosing. This is useful if you will be aggregating logs for multiple knowledgebases in one location.

  • <log-level> KBnow classifies events on an integer scale, where 10 is a simple debugging event, 20 is an information event, up to critical errors at level 50. By default events at level 20 and above will be logged to disk; use this setting to tune that value up or down.

  • <db-provider> This value determines which rdbms system is used for catalog information. See "Scaling the catalog database" below.

  • <db-connectioninfo> This value provides specific connection details for the catalog rdbms. See "Scaling the catalog database" below.

  • <fetch-interval-minutes> An integer value that specifies the amount of time, in minutes, KBnow should sleep between checking email accounts listed in the <mailboxes> section. The default value is 5 minutes between checks.

  • <browse-items-per-page> By default, KBnow shows 20 items per page in browse mode; this setting changes that value.

  • <link-prefix> A string supplied in this setting will be prepended to all article links returned from the web engine. This can be useful when leveraging the web services interface as described in the "Advanced Topics" section.

  • <web-directory> Instructs KBnow to look for web template files in an alternate location. See "Customizing the web interface" below.

  • <http-threads> Configures the number of simultaneous requests the web interface will process. By default this is set to 5.

  • <http-port> Configures the network port that the web interface will respond on. By default this is set to 80.

The following settings are available in version 20020628 and later:

  • <smtp-host> This is the host KBnow will use to send mail to for distribution lists, if enabled. It should be set to the name of your email server. The default is "localhost".

  • <smtp-port> This is the network port that KBnow will connect to on the machine specified in <smtp-host>. The default is 25; it is very unlikely you will need to change it.

The following settings are available in version 20020702 and later:

  • <read-only-webui> If this key exists and has the value 1, KBnow users will not be able to modify knowledgebase articles through the web ui (post/remove links will be removed). Note that even if this setting is present, messages in <mailbox> accounts will still be indexed, as will article submitted directly to the incoming directory.

  • <read-write-ip-list> If you have enabled <read-only-webui>, this key can contains a comma-separated list of IP prefixes that will override the setting and be given read/write access. You can use this to allow administrative access to the knowledgebase.

  • <no-external-searches> If this key exists and has the value 1, the Google-based Internet and Usenet searches will be removed from the web ui. All searches will go against the KBnow knowledgebase articles.

  • <logo-url> You can replace the KBnow logo in the left pane by supplying a URL to your own image in this key. Note that if the image is wider than 155 pixels, a horizontal scrollbar will appear in the web ui.

  • <logo-href> Normally clicking the logo in the left pane will return the browser to the KBnow homepage. Putting a URL in this setting will cause clicks to go there instead.

The following settings are available in version 20020724 and later:

  • <rss-fetch-interval-minutes> Specifies in minutes how often rss syndication feeds should be checked for new items. This value defaults to 60 minutes. It can be overridden for individual feeds by adding a <rss-fetch-interval-minutes> tag under the <rss-feed> tag.

  • <rss-refresh-threshold> If this tag is present, it should be a character count for the rss <description> tag. RSS items whose <description> length is less than or equal this value will be shown in the web interface by redirecting to the original article; those with length greater than this value will be shown normally. Setting this value to "0" will force redirection for all items without a <description> tag. This can be a tricky tag to get right, and it may confuse users --- use it with care!

  • <http-proxy-host> If you use an http proxy on your network, set this tag to the proxy host so KBnow can properly fetch external rss feeds. If this tag is not present no proxy is used.

  • <http-proxy-port> If you use an http proxy on your network, set this tag to the proxy port so KBnow can properly fetch external rss feeds. The default value is 8080.

The Log Directory

KBnow creates a comma-separated log file for each day it operates, named by date as "ezkbYYYYMMDD.log". By default, these logs are placed in a subdirectory "logs" created within your config directory. These logs can be helpful in tracking down problems, and generally will not grow to an unmangeable size. You can safely delete old logfiles if you like.

If you would like logs to be placed in an alternate location, use the <log-directory> global setting.

Scaling the catalog database

KBnow uses an database system to manage the full-text index of articles (Microsoft JET on Windows, Dr. Richard Hipp's remarkable SQLite on Linux). These systems have proven themselves at scale and should be sufficient for your needs. However, if your knowledgebase size or user load grows beyond their capabilities, KBnow can be extended to use popular enterprise-class systems such as SQL Server or Mysql. Generally this can be done as a configuration change. We'd be glad to help; please drop us a line at support@softwarepoetry.com.

Backing up your knowledgebase

All article text and the full-text catalog are stored in a subdirectory "data" within the config directory. You should back up this data regularly to protect it from catastrophic failure. It is usually a good idea to back up the config.xml file as well.

Articles removed using the "remove" link on the web interface are deleted from the index, but the body of the article is not actually purged. Instead, it is moved to a subdirectory "removed" within the "data" directory. This is to protect against accidental data loss; simply move articles back to the "incoming" directory and they will be reindexed automatically.

Uninstalling KBnow

We've tried hard to make KBnow simple to use and maintain. The same goes for uninstalling if you decide to do so. On Linux, simply stop the application, delete the files in the kbnow directory and you're finished. Under win32, run the command "ezkb -s remove" to delete the Service Control Manager entry, then delete the files in the kbnow directory.

Advanced Topics

KBnow is a powerful system out of the gate, but hiding under the covers is a great deal of flexibility and extra goodies. The following sections touch upon some of these features. If you would like more help with any of them, please contact us at support@softwarepoetry.com. We'd love to help!

Submitting articles programmatically

Email is a great submission mechanism, and posting from the web interface is sufficient for one-off additions. However, it can be very useful to take information from external systems and index it within a KBnow knowledgebase. Just a few examples of this could be:

  • Reading key information from a database and indexing/archiving it in a KBnow knowledgebase

  • Locally indexing valuable Usenet newsgroup discussions or other Web-based information

  • Creating a searchable index of information about your competitors, drawn from their web sites automatically

  • Using an email system like procmail to intelligently route articles to KBnow without using the internal POP3 facility

Any data that you can represent in text or html can be submitted to KBnow. Your scripts should place files into RFC822 format into the "incoming" subdirectory under the KBnow "data" directory. KBnow will automatically index all documents it finds in the incoming directory. RFC822 format implies that "header" information appears first in the file. Use the following template for your submissions:

Example 9. Sample RFC822-format message for the KBnow "incoming" directory

From: Sean Nolan Subject: Data Warehouse highlights for June, 2002 Content-Type: text/html <html> <body> <center> <table><tr><th>Metric</th><th>This Month</th><th>Variance from Plan</th></tr> ...

Note that the "From" and "Subject" headers are important; they are used to populate the articles lists KBnow shows in the web interface. The "Content-Type" field tells KBnow if the article is in plain text (text/plain) or html (text/html) format. Finally, the blank line betwen the "header" information and the body is very important.

This is the standard format for Internet email messages. It is very easy to create from script; the possibilties for using KBnow as an information repository are significantly increased with this sort of integration.

Integration with IMAP servers

(Versions 20020911 and later)

KBnow does not natively support fetching articles from IMAP email servers. However, included in the distribution is a Perl script that will accomplish this using programmatic submissions. Within the KBnow/extras directory, locate the IMAP2KBNOW file. By editing the configuration parameters at the top of this script and installing it to run periodically under cron or the Windows Task Scheduler, you can easily leverage your IMAP server.

Integration with Perforce (TM) SCM systems

(Versions 20020911 and later)

If you use Perforce to manage source code or other files, you can integrate it with KBnow to automatically build a full-text index of all changes, optionally including full diffs. Within the KBnow/extras directory, locate the P42KBNOW Perl daemon. Edit the configuration parameters and schedule it to run under cron or the Windows Task Scheduler. Note that this script is provided with no official support, and is not endorsed by Perforce.

Web services API and RSS

KBnow exposes its query engine as a REST-style web service. Using this interface, you can easily integrate the results of KBnow queries within your other corporate applications. For example, your team portal could display the 10 most recent additions to a KBnow knowledgebase, or a web page describing an internal tool could automatically display links to the most relevant KBnow articles related to that tool. If members of your organization use a news aggregator, KBnow ships with support for returning results as an RSS feed.

Executing queries

Queries are passed to KBnow by issuing a GET or POST request to the URL "/form/search". Parameters can be passed to the interface either on the query string or within a POST body. If you look at the search and browse forms in the query pane of the web interface, you'll see that they create requests in this format. You can specify the articles to retrieve in three ways:

  1. Search by keyword. The following parameters are required:

    • Q - Specifies the keywords to search for.

    • BOOL - "and" to match all words in the parameter Q, "or" to match any word

  2. Browse by date. The following parameters are required:

    • Y - Year for search (4 digits)

    • M - Month for search (Jan=1, Dec=12)

    • D - Day within month for search (1-31)

  3. Browse most recent additions to the knowledgebase. The following parameter is required:

    • M - Must be "-1"

KBnow native XML and XSL transformation

By default, KBnow will return the results of the above queries in its native XML format. This very simple format captures the header and link information for each article in the result set:

Example 10. KBnow native XML

<ezkb version="1.0"> 
     <item> 
          <id>7ea575af70a5bd2c0e57caa0d4dd568a</id> 
          <link>/form/show?id=7ea575af70a5bd2c0e57caa0d4dd568a</link> 
          <title>Some title</title> 
          <author>Some author</author> 
          <date>Mon Jun 17 09:05:49 2002</date> 
     </item> 
     ... 
</ezkb>

Note that in the above example the "link" element contains a URL to the article text on the KBnow server. If you will be displaying links from another machine, you will need to prepend the "http://yourserver" part. You can do this in three ways: (1) manually from the requesting application; (2) by passing a prefix string to the web service as the parameter "PREFIX"; or (3) by adding a global setting <link-prefix> to your config.xml file.

If you do not want to use the native format "as-is", KBnow can apply an XSLT stylesheet to the results. In fact, the right-pane display of results in the web interface is nothing more than an XSL transformation contained in the "default.xsl" file. KBnow also ships with an "rss.xsl" stylesheet that will transform query results into RSS for use in news aggregation software.

Transformation is requested by passing two more parameters to the query form:

  • XSL - Specifies the name of an XSLT file, which must be found in the KBnow web directory.

  • MIME - Specifies a subtype of "text" that is the result of the transformation. If this parameter is not present, KBnow assumes the return type is "xml" and will reply with a mime type of "text/xml". If your transformation generates HTML, as default.xsl does, you should pass "MIME=html" so that your web browser interprets the results correctly.

Retrieving article text

Requesting the URL returned as a <link> element will return an HTML-encoded representation of the article, as when you click on an article link in the web interface. If you want to retrieve the "raw" RFC822-formatted text for an article, you can do so by appending the querystring parameter "RAW=1" to a link URL.

Customizing the web interface

The KBnow web interface can be easily customized to fit your needs. Look in the config.xml section for settings you can use to perform minor customization.

You can also edit the web files directory to add corporate logos, links to other parts of your intranet, change the way articles are displayed, and so forth. However, be aware that performing too much customization may make it difficult to upgrade your copy of KBnow in the future. We will do our best to support customizations, but the responsibility for merging in new versions remains with you.

KBnow web support files are of three types: stock HTML files that are simply delivered to the client browser, XSL files that are used for executing transforms on native XML (see the web services section), and TMPL "template" files that have special meaning to the KBnow engine. The structure of all of them is sufficiently close to HTML that you should be able to do much of your customization with a working knowledge of markup. Just be careful of the {[ ]} tags in the TMPL files!

If you do customize your web files, it's probably a good idea to create copies of them rather than working directly on the files in the distribution. This makes it easy to "go back", and also allows you do have different customizations for different knowledgebase instances. When it starts up, KBnow does the following to determine which web files to use:

  1. Look for a global setting <web-directory> in config.xml. If this exists, use it.

  2. Look in the config directory for a subdirectory called "web". If this exists, use it.

  3. If neither of the above applies, use the files in the "web" subdirectory where the KBnow application was installed.

Change History

You can identify what version of KBnow you are using by pointing your browser to "version.txt" in the web interface, for example "http://myserver/version.txt".

Version 20020911

  • display fixes / url linking for text/plain articles

  • "it worked" splash page

  • simple browser-based article editing

  • imap and p4 modules part of distribution

Version 20020724

  • Fetch articles from RSS syndication feeds

  • Keyword filtering of incoming mail/rss articles

  • Minor performance improvements and bug fixes, particularly on win32.

Version 20020702

  • Added config.xml settings for read-only usage and other webui customizations

  • Improved caching of static pane content

Version 20020628

  • Distribution lists added

Version 20020617

  • Initial release


footer
Copyright © 2002-2008 Software Poetry, Inc. – all rights reserved