PC AI Review

Introduction

Perhaps one of the biggest problems facing the expert systems industry is the extensive knowledge and training necessary to create the code for even a simple application. Software developers, whether they work in LISP, an expert system shell, or some variation of C++, must understand everything about the knowledge, verifying the knowledge and the language from syntax constraints to legal data types. A missing parentheses or subtle logic inconsistency can cause a program not to execute (or, much worse, appear to function properly... but return invalid results under unforeseen circumstances).

EZ-Xpert, AI Developers, Inc.’s rapid application development (RAD) environment, makes developing powerful rule- base expert systems simple enough for even the most novice computer user. An intuitive and easy-to-learn interface walks you through the steps to develop your own rule bases while EZ-Xpert transparently generates the complex code. The rule base engineering techniques built into the product verify the consistency of the knowledge as it is entered, thus minimizing the need for testing and debugging.

Rapid Application Development

There are many advantages to a rapid application development tool like EZ-Xpert (see Figure 1). Using traditional methods, a simple 150-rule expert system may take months to develop in a traditional language. With minimal training, however, users can generate their own expert system applications without possessing any prior programming skills or having to spend days (or weeks) of valuable time attempting to learn arcane commands or procedures. In fact, the product documentation humorously claims that "your mother can build 14 verified, high-performance 150-rule expert systems in one hour," provided that your mom is computer literate, completes a two-hour training session, is proficient in a domain, and can type thirty words per minute.

EZ-Xpert Generate Code Screen

Figure 1: EZ-Xperts clean, uncluttered interface makes expert systems design simple and easy to follow. Most functions are addressed through drop-down menus or intuitive icons.

In the hands of a skilled knowledge engineer, project productivity could be multiplied (don't tell mom). Ideally the expert would create the basic rule base in EZ-Xpert while a skilled programmer would make the final finishing touches to the interface.

Verification Criteria

Every application generated by EZ-Xpert meets 23 verification criteria, including completeness, consistency, conciseness, instantiation, and local/global domain constraints. EZ-Xpert guides the user through the process of rule base structure and value definition, then either verifies user-defined rules or creates valid rules automatically with the built-in "Rule Expert." At every step of the process, the program checks for completeness, logical consistency, and more, providing you with instant feedback via easily-understood green, yellow, and red LED-style icons.

Red LEDs show that a serious problem exists (and code will not be generated), yellow indicates that the project may contain minor problematic elements (such as unrefined rules) but may proceed anyway, and green signals the project is a go for generating code. When you get the green light, the program refines, simplifies, and generates syntax-error free code algorithmically for the language shells you choose. You never have to worry about whether you've left out a parentheses, forgotten a rule definition, or used a host language reserved word.

A I Developers designed and certified the 26 code generators with technical assistance from each host language manufacturer. Upon creating a new project, you can choose to produce code for one, or all, of eight different language shells (once initialized, supported languages can be deleted but not added). EZ-Xpert also has the capability of creating object-oriented, production-rule or hybrid systems (for the shells that support 00), and users can switch between forward or backward-chaining code at the click of a button.

Refinement and Simplification

Another major obstacle currently facing the expert systems industry is that many knowledge management applications, especially those requiring complex coding and multiple rule bases, cannot meet current runtime standards. In other words, they take too long to reach conclusions. To speed up the final runtime, EZ-Xpert features two refinement algorithms. Prior to assembling the final code, EZ-Xpert removes irrelevant conditions from rules and simplifies numeric ranges, combining adjoining numeric ranges whenever possible.

Reducing the size of the rule base and number of inputs necessary to solve a problem increases computational efficiency, reduces the cost of a consultation, and allows more consultations to be completed with incomplete information. Although this feature is useful, there may be an instance when you don't want to simplify your code, so the program has the option of skipping this process.

Procedure

Once the program is installed, and external language shells and text editors have been specified, the steps in creating an application with EZ-Xpert are simple and well defined. The first task (and probably the most important) is to design the project on paper. Every project has a goal and a set of conditions, rules, and actions to reach that goal. In other words, before using EZ-Xpert, you should have a clear idea of what your application will attempt to accomplish and the process it will use.

The next step is to launch EZ-Xpert and specify the initial configuration of the project. Using radio buttons and checkboxes in the Initialize New Project window, as shown in Figure 2, determine if the final application will be backward or forward chaining, along with selecting the supported languages. Enter the title, author, and a short description of the project, and select a name and folder in which to store the project. Version 2.0 restricts you to the older DOS 8.3 ~e and directory naming conventions.

EZ-Xpert Initialize New Project Screen

Figure 2: Creating a new project is simply a matter of establishing a new directory and file name. Note the variety of language shells supported by EZ-Xpert.

 

After the project is initialized, EZ-Xpert opens the Rule Structure Editor window, as illustrated in Figure 3. Begin by defining the conditions and actions to be assigned to rule clusters. The program provides a convenient and well-designed Conditions Editor and Actions Editor to accomplish these tasks, accessed through the New Condition and New Action buttons, respectively.

EZ-Xpert Rule Structure Editor

Figure 3: Complex conditions and actions can be defined easily using the built-in Rule Structure Editor. No hand-coding is required.

 

The Conditions Editor lets you assign numeric ranges or character values to various conditions as well as specify whether the data source is from user input or from other rule clusters (to be created later). Actions are assigned in a similar fashion. Once these steps are completed, return to the Rule Structure Editor and indicate the relationship between these conditions and actions, thus defining the rule structure for the project and defining the rule source and the final goal. Rules can be created with the built-in Xperts rule generator or manually entered in the Browse Rules screen. The easier method is to let Xperts automatically compile a complete rule set (which will be refined after testing). At this point, you can add confidence factors, display statements, and side effects for each rule. The Browse Rules screen lets you build the rules from listboxes of conditions and actions. EZ-Xpert then checks the rules for consistency and completeness.

EZ-Xpert also permits incorporating your own code into the generated code. This option enables you to "freeze" the rule set or interface from further changes and can save time if a number of recursive functions are required for the project.

With the rule base completed, it's time to move on to the testing phase. The System Status window, shown in Figure 4, indicates the status of testing. During the verification process, EZ-Xpert identifies fatal errors such as undefined rules and rules structures, missing rules, rule conflicts, and rule cycles, along with cautionary elements such as unrefined rules. Once the problematic elements have been identified, clicking the Fix It button launches the function needed to correct the error.

EZ-Xpert Project Status Screen

Figure 4: Such problems as undefined or missing rules can be instantly identified at any time via the System Status window. Red, yellow, or green LED-style status lights provide instant feedback.

 

EZ-Xpert provides some debugging features, including a Display button that inserts error messages in the code when a rule fires at runtime. You can view and generate preliminary code, prior to refinement and simplification, for the sake of testing.

After testing the project for completeness, consistency, and accuracy, EZ-Xpert performs both logic and numeric range simplification on rule clusters for conciseness. This assures maximum computational efficiency at runtime. Although EZ-Xpert uses truth preserving algorithms, refinement can detect and point out some inaccuracies in action value specifications. Refinement can be incrementally undone so that the specifications can be corrected.

Prior to producing the final code, and after refinement and simplification, it's possible to customize the knowledge base. Since the generated code is not proprietary, any portion can be tweaked using a simple text editor. The code is easy to follow because rule bases are separated into conditionals, actions, and statement blocks, each clearly marked by boundaries.

For instance, although EZ-Xpert generates clean, ready-to-run application code, the interface created is generic. So, you may want to tailor it to your implementation platform. The boundary information in the code makes it easy to identify the interface section. Modifying it, to personalize your interface, involves deleting the irrelevant blocks and editing a few of the remaining lines. The customized code will then be included in the generated code. Next, generate the final code (it's possible to view the code with a simple text editor). The application can then be run separately in the host environment or from within EZ-Xpert, as shown in Figure 5.

CLIPS/R2 Running EZ-Xpert Code

Figure 5: Forward or backward chaining code runs on all major expert systems shells and PROLOG predicates, including CLIPS/R2 (shown above). Shells can run separately or called from within EZ-Xpert.

Documentation

While professional knowledge engineers will, in all probability, have no trouble with the product documentation, those completely unfamiliar with expert systems will find it a bit sparse. The 79 page user's guide provides little more than installation instructions, with a 21-page tutorial and 38 pages of screen descriptions. Novice designers will need to look elsewhere for explanations of concepts such as rule structures, backward and forward chaining, and other expert system nomenclature. The tutorial can be followed by anyone with some computer skills but it does assume a basic understanding of expert systems design, providing less than a page of explanation on the topic. Hopefully, future releases will include more detail for domain experts.

A I Developers has a number of enhancements for EZ-Xpert in development. Plans for the next release (Summer 98) include a knowledge map that displays a graphic representation of the logic structure in a rule base and support for multiple goal seeking. Support for additional languages is also in the works.

Product Support

A I Developers offers free email and telephone support (although toll charges apply) for 60 days from the date of purchase. An annual fee of $1,000 provides toll-free telephone and email support as well as automatic product upgrades. Individual onsite training can be arranged for $1,000 per day plus expenses on a per-person basis. Version 2.x buyers may upgrade to the latest 2.x release for free by requesting disks or by downloading patches from the company's Web site (www.ez-xpert.com).

The company is so confident that every project created with EZ-Xpert 2.0 will meet all 23 listed verification criteria that they offer an interesting guarantee. If a purchaser can reproduce an error that violates any of the verification criteria, the company will provide two nights lodging in Las Vegas and round-trip airfare from hub airports in the contiguous United States (offer expires March 1, 1998). While the user relaxes at poolside, A I Developers will work to correct the problem in both EZ-Xpert and the generated project. This guarantee is void if the purchaser opts to customize their project with external data sources or custom rules. (Visit the EZ-Xpert Web site for exact details at www.ez-xpert.com/guarante.html.)

Conclusion

Release 2.0 of EZ-Xpert has a suggested retail price of $1,995 and runs on Windows 95/NT. It generates forward or backward chaining expert systems for all of the major language shells, including ART Enterprise, CLIPS, EXSYS, Level5, M.4, OPS, PROLOG, and VP Expert. The program can produce code for all of the language shells simultaneously, making it a versatile and unique tool.

For anyone generating a large and complex system, managing rule clusters is difficult. Before EZ-Xpert there was no way to exhaustively verify the rule base. Verification and refinement technologies make EZ-Xpert the essential tool for anyone developing large, complex, high performance or mission critical intelligent components. It has an impressive assortment of rapid development tools, portending a brighter future for expert systems. Decreasing the time and cost of implementing a technology typically entices more organizations to implement it. A good analogy is the impact rapid development tools have had on the production of Web sites. After years of slow growth, the expert systems industry now has the capability to follow suit. Intelligent tools, such as EZ-Xpert, removes the complexity (and potential unreliability) of hand coding AI applications and provides non-programmers with the tools to produce efficient applications. This may well lead to a significant increase in expert system development and productivity.

Acknowledgments

The following vendors supplied products for this review:

· Charles Lanny Forgy of Production Systems Technologies -- CLIPS/R2

· Henry Seller of Rule Machines -- Level 5 Object

Michael Wilder (mwilder@spokane.net) currently serves as system administrator and project coordinator for Gonzaga University's First Links Project.


This web page is a reproduction of the review that appears in the January / February issue of PC AI Magazine (Volume 12, No. 1) on pages 39 – 41.

Contact PC AI Magazine at (602) 971-1869 FAX (602) 971-2321 email: info@pcai.com Web Site: www.pcai.com/pcai Mail: PC AI, P.O. Box 30130, Phoenix, AZ 85046-0130

Home