Building intelligent hypertext help applications


Windows Help

New Microsoft Windows users soon become very familiar with the on line help systems provided in the Windows environment. These use a consistent user interface, typically enabling the user to select from lists of topics to then see further detailed topic explanations. In addition, many applications implement context sensitive help jumps, so that when a help button is pressed on a dialog box the user is shown a context specific topic from a Windows help system file.

This document gives basic guidelines on how a standard Windows help system can be built, and on how to then build hybrid "intelligent" help systems by using this in conjunction with XpertRule.

Since this paper was first written, help systems based on HTML are becoming popular. The principles discussed in this paper apply equally to such systems and the latest version of XpertRule supports calls to external browsers.

The XpertRule® development environment itself contains a standard implementation of a Windows on line help system. When you ask for help within XpertRule, it passes control to the Windows help program - WinHelp - passing also the name of the help file for WinHelp to use and, optionally, a help topic to display (by default the user is shown the main index).

To create such a Windows help system these basic components are needed:

  • A Word Processor that supports Rich Text Format (RTF), such as Microsoft Word for Windows.
  • The Windows Help Compiler. This is sometimes provided with programming language packages, or it can be purchased as part of the Microsoft System Developers Kit (SDK).


The basic steps in building a standard help system:
  • Create the text in Word for Windows, using techniques such as these within the document:
  • Give each topic a title.
  • Enter "keywords" against each topic that you wish to appear in the Windows "search" dialog.
  • Designate (by typically using underlines) the words or phrases where you wish to implement jumps to other named topics, or have pop up explanations appear. You can add the name of the topic to jump to, or pop up, immediately after the word/phrase by using the "hidden text" feature of Word for Windows.
  • Save the document as an RTF file using Save As.
  • Pass the RTF file through the Help Compiler, which is used to generate the finished HLP file ready for use.

For this last step, a further important text file is also used, referred to as the Help Project (HPJ) file. This gives a simple text list to the help compiler, telling it such things as the names of the files being compiled, the topic name of the main index and other compiler options. Most importantly, it also provides a list of the topic names where the developer wants to implement context sensitive help jumps. Against each topic name there needs to be a numeric reference.

From within any Windows application (such as XpertRule itself for example) the programmer can pass the name of the help file when help is sought by the user. The programmer can also pass a numeric value to indicate a required help topic.

The list in the HPJ file establishes how this numeric value matches up to a named topic. As the compiler incorporates this list within the finished HLP file, only the HLP file needs to be distributed to users.

Using these basic steps can produce a help system with these benefits:
  • It is easy to maintain the text in an industry standard word processor such as Word for Windows. Indeed text used in current printed help manuals may already be available in such a format, or easily imported into it.
  • The user help interface produced is standard and convenient.

However, once such a help system starts to become large and complex a major problem can develop. Help systems need to be built in such a way so that the topics are presented to the user in a comprehensible structure. They should avoid the user going down "blind alleys" or finding themselves sent back to an earlier topic due to "spaghetti" topic jumps! This can be difficult to avoid, as using too few jumps leads to over long topics. It is also very difficult to anticipate how different users might proceed through the same help system.

When building a help system for a piece of commercial software (such as XpertRule) a reasonable structure is often almost imposed upon the help developers. It is usually pretty straightforward that when a particular XpertRule dialog box is being displayed, how to decide which help topic should be called. Similarly, the basic help structure typically follows the structure of the commercial software's pull down menus. This is certainly not the case with applications whose main purpose is to be a help system through and through, as opposed to just supporting another application.

Within help systems it is not effective to start by presenting users with pages of textual information, much of which they may already know. Irrelevant information leads to user frustration and slows down both the advanced and the novice user. Some form of intelligent dialog with the user, perhaps using external data that can be read in automatically, could lead to far more effective and direct use of the information resources.

Using XpertRule, the developer can implement such hybrid systems. For example, using a typical question and answer interface to converse with the user, before directing the help system to jump directly to show relevant information. This enables the help application to act intelligently, as well as jump directly to more technical levels depending upon the knowledge of the user under their current circumstances.

The XpertRule developer has extensive facilities available in order to easily interact with Windows help:
  • The ability to switch from one help file to another at any point, without the user's involvement. Help systems with multiple HLP files can be implemented.
  • Developer designed buttons, which can jump directly to a given topic number (using literals or variables).
  • Developer designed menu lists, where a highlighted item works in conjunction with a help button to jump to a specific topic.
  • Developer designed help shown as reports. For example, once XpertRule has assisted a user in diagnosing a fault, the repair procedure could be shown in the form of help text.

Used in this way, XpertRule becomes the "structuring tool" for building the help system. The actual help text can now be implemented as source text in the word processor using more simple structures. It also enables complex logic to be separated from volumes of textual information, and to build and maintain this logic in a graphical form.

Windows help systems are often used "side by side" with Windows applications, leaving the help text displayed in one Window as the application runs alongside it in another. Hybrid help applications can often suit this simple but effective approach, with the powerful knowledge based inference of XpertRule interacting with the user while being able to exchange data with other sources. Throughout this process the system can then show Windows help which is relevant to the user's needs.

XpertRule stores knowledge. It is kept in a graphical form to aid maintenance and, as it can be generated as source code, is not locked into any single environment or application. Windows help and Microsoft Word store textual information which, by the nature of these excellent products, aids maintenance and the ability to readily transfer that information. Together this provides an excellent tool kit for the developer of help applications.

Creating RTF files the easy way

The basic Windows help authoring steps described above work quite well. However, there are now many help authoring tools available that make producing help documents much easier - and quicker. One which many of our users and ourselves would recommend looking at is DOC-TO-HELP from WexTech Systems Inc.


Using HTML reports for pop up help

In XpertRule you can use HTML within report windows. If you want to provide simple pop-up help, then using HTML reports provides an alternative to using the more conventional WINHELP.

The report object can be called from Graphical dialogs by adding a button with a macro function to call a procedure. The procedure then just issues a @Do report-name command.

This method of providing pop-up help has advantages and disadvantages:
  • It is a simple mechanism for pop up help.
  • You can easily edit and run without needing to compile and manage a separate help file.
  • You don't need any other external software or tools to develop. Using a good HTML editor can be helpful, as you can copy and paste the HTML source into the report windows. These are often low cost and some are available free. Internet Explorer (version 4.0) includes the HTML editor called Frontpage Express which is ideal for this purpose.
  • You may need to maintain the help in XpertRule. This is fine for small amounts of help text, but not recommended for large volumes, where using WINHELP or calling a full BROWSER would be more appropriate. However, you could maintain your HTML help pages in another authoring tool (or even a database) and just load them into XpertRule strings at run time. Your HTML report window then only needs to have the string name for the page embedded within the start and end HTML tags.
  • It is not recommended as a way of implementing large help systems with forward/backward hyper jumps. It is more suited to single pop-ups.
  • Apart from the OK button, the other buttons on the report window are not appropriate for this type of "pop up help" and should be disabled.

Site Map | Home