David Keathly is Director of Computer Systems Research and Development for Comar, Inc., of Richardson, Texas where he is involved in the development of industrial vision and control systems. David received his B.S. and M.S. in electrical engineering from Oklahoma State University with an emphasis in image processing, vision and advanced architectures.
Product Description
Both PC Expert and PC Expert Professional (version 1.00) are expert system shells and development environments offered by Software Artistry, Inc. This report focuses on the PC Expert because this basic package fits more squarely in the price/performance category for all but the most serious personal or corporate expert system developer. The package requires a PC XT, AT, PS/2 or compatible with a minimum of 256K (512K recommended). Versions of the package support several compilers including Microsoft C, Turbo C and Turbo Pascal. PC Expert Professional is source-level compatible with Software Artistry's high-end Application Software Expert tool which runs on IBM's AS/400 minicomputer and also under AIX and OS/2.
Features
The basic PC Expert package offers a backward-chaining inference engine and full-function integrated development environment. The development environment provides a rules editor and tracing and debugging facilities which help create and refine rule-based and expert systems. More importantly, this package provides all the functions and libraries necessary to embed the inference engine and knowledge base within a C program. The libraries include full math functions, time and date arithmetic, screen control and window creation. The libraries can also create context-sensitive help via the HOW, WHY and BECAUSE statements. The rules in the knowledge base can be constructed with a variety of AND & OR operators and ELSE clauses, as well as supporting confidence factors associated with conclusions.The basic package can define demon rules and functions that are attached to a particular parameter or variable. The demon rule, or C function in the case of a demon function, will be fired, or execute, any time the value of the variable changes. This feature is useful in systems that monitor external processes and events, or in systems that consistently update a database of relevant information. The ability to "compile" knowledge bases improves performance and reduces storage requirements. The package also provides an Agenda utility which operates much like a simple C program or DOS batch file. The Agendas chain together multiple knowledge bases and even execute them conditionally. Consider the following example from the PC Expert User's Manual:
LOAD('A.KB'); SOLVE(RESULT1); CLEARRULES; IF RESULT1 = 'B' THEN ACTION = LOAD('B.KB'); IF RESULT1 = 'C' THEN ACTION = LOAD('C.KB'); SOLVE(FINALRESULT);This example opens a window, loads the first knowledge base and invokes the inference engine to determine the value of RESULT1. Depending on the outcome of this consultation, the Agenda opens one of two other knowledge bases and obtains the final result.PC Expert Professional offers some additional features for the more sophisticated user. In particular, the package includes method rules and functions that operate in a fashion similar to the demon rules and functions. These rules or functions are used to acquire a value for the variables they are attached to. This capability is not limited to simple user prompts or disk file access. Using the method function, a programmer can access any device connected to the computer to acquire this information from analog input boards to LAN controllers.
Another feature of the Professional version is a choice of inferencing methods. In addition to the backward-chaining offered in the basic package, the user can select forward-chaining, mixed forward- and backward-chaining, and backward-chaining with a final forward pass through unfired rules. These methods increase the programmer's flexibility in designing and consulting knowledge bases for a variety of applications. The Professional package also provides links to dBase and Lotus 1-2-3 files for business and database management applications.
Finally, the Professional version provides a very capable and sophisticated set of tools for creating graphics and animation. The tools can be included in consultation sessions and initiated either from within the knowledge base or via the C library calls. The graphics can be generated by PC Paintbrush or other such packages and then saved in a compressed format for display purposes. Animation sequences are stored as differences from the first image in the sequence to save memory and improve performance. Gauges and dials can also be created to provide more realistic and comfortable user input mechanisms and visuals.
Unlike earlier expert system shells, PC Expert's limitations on the expert and rule-based systems depend on the machine's characteristics of the machine in use. The maximum rule size is limited only by the available memory, and the maximum knowledge base size is limited by the available disk space. An unlimited number of knowledge bases can be chained together or conditionally executed via the Agenda files, and a particular parameter or variable can have an unlimited number of legal values, and multiple values assigned limited only by available memory.
Documentation
The documentation for the package is easy to read and understand. The documentation presents the basics of expert systems technology and describes the major features of the shell including examples. The manual discusses each of the knowledge base statements and C function calls available to the programmer/developer. The documentation is well done but doesn't sufficiently explain all the techniques and details required for a novice to become an "expert" system developer. Some understanding of artificial intelligence, knowledge representation and manipulation, and boolean logic is required for a developer to fully understand and use this product.
An Example
To illustrate the use of this product, consider a knowledge base designed to select the appropriate cheese to fit a particular person's tastes and preferences. The rules and questions were entered using the integrated development environment - a process requiring about 15 minutes. I could also have constructed the knowledge base using any text editor or word processor capable of producing a raw ASCII file. Listing 1 contains the knowledge base as constructed and used by PC Expert, and illustrates the ease with which a developer can add help items and control the screen environment as aids for user interaction. Listing 2 illustrates how the knowledge base can be invoked from C rather than consulted via the development environment. Of course, the C code could be much more complex and perform other operations, invoke additional knowledge bases using the results of this consultation, or make multiple consultations to this knowledge base altering the facts and/or inferencing methods on each pass.The integrated development environment's monitoring and tracing facilities made it easy to construct and debug the rule set. Once the basic knowledge base performed consultation satisfactorily, I integrated it with the C routines which provided input and consulted the knowledge bases.
Conclusions
As expert system development tools, PC Expert and PC Expert Professional provide a host of useful features. Although the Professional version may be too expensive for the casual user, its additional inferencing and graphics/animation features are well worth the money for those programmers developing serious applications.The PC Expert's range of inferencing choices and user-friendly development environment compares favorably with other expert system shells on the market. Few other products in this price range can interface knowledge bases with existing code written in C or other procedural languages. The PC Expert's C interface is powerful and flexible. The ability to intermix C functions in the knowledge base, including the use of demon and method functions, provides the system developer with an extremely flexible tool for building a variety of complex applications. This package is one of the few that uses the PC's ability to interface with the outside world via the input and output boards. Applications can interface directly to gauges, digital voltmeters, power supplies, thermometer, barometers and other measurement devices to drive diagnostic expert systems. The expert system can drive the diagnostic testing, or other external events, by controlling these external devices via the C interface.
Overall, PC Expert provides a friendly and eminently usable expert system development tool for the C programmer experimenting with artificial intelligence techniques. PC Expert Professional enhances the performance and sophistication with which the serious hobbyist or the commercial systems developer can build expert system applications that interface with the real world.
Software Artistry
3500 DePauw Boulevard
Suite 2021
Indianapolis, IN 46268
(317) 876-3042