KBnow Online DocumentationKBnow Online Documentation
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. 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. 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 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. 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 EmailIf 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. Starting and stopping KBnowUnder 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.xmlKBnow 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. 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: <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. 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>Config.xml Global SettingsThe 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!
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 databaseKBnow 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 knowledgebaseAll 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. 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. 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 programmaticallyEmail 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. 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. 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: 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
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)
Browse most recent additions to the knowledgebase. The
following parameter is required:
KBnow native XML and XSL transformationBy 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.
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 interfaceThe 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: Look for a global setting <web-directory> in
config.xml. If this exists, use it. Look in the config directory for a subdirectory called
"web". If this exists, use it. If neither of the above applies, use the files in the
"web" subdirectory where the KBnow application was
installed.
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". display fixes / url linking for text/plain articles "it worked" splash page simple browser-based article editing imap and p4 modules part of distribution
|