Topic:

COTS Expert System Development Tools

Location:

Artificial Intelligence : Expert Systems : Development Tools

Author:

Jason Waltman

Date:

12 July 1999

Revisions:

DRAFT 21 July 1999 (1.1.1)

Commercial-off-the-shelf (COTS) expert system development tools ease the task and reduce the cost of creating an expert system (i.e., a computer program that answers questions using a database of knowledge from an expert). Some require that the developer have programming experience, while others attempt to provide an interface that will allow development by the expert whose knowledge will be used. Most of the tools use knowledge in the form of IF...THEN statements (or the equivalent) and induction to deliver a solution. However many tools employ additional methods based on the way that humans solve their own problems.

Traditional procedural programming languages such as Fortran, Pascal, and C/C++, were designed to manipulate data, such as numbers and arrays. These languages however are not well suited to perform more abstract computation. The ability to manipulate abstract data is increasingly necessary in artificial intelligence related projects. This ability simplifies the creation and maintenance of programs that simulate human logic in order to solve problems. Expert systems are one example of the use of non-numeric reasoning and symbolic processing in problem solving.


Overview

An expert system is a computer program that is able to simulate the judgment of an ’expert’ in a particular field. Such systems are able to give the knowledge of experts--which is not only limited but also expensive--to less experienced people. Expert systems also provide consistent decisions for similar types of questions, retain information that is easily accessible, and liberate experts from common tasks. Expert systems have been developed to perform a wide variety of tasks ranging from medical diagnosis to playing chess.

Typically, an expert system is composed of two parts: a knowledge base and an inference engine. The knowledge base contains the ’intelligence,’ the collection of rules, provided by the expert. The inference engine provides the interface to and is the control structure that applies the coded knowledge to the problem for the end-user. This separation provides advantages over traditional programming. For example, the modular knowledge base allows the system to be easily examined and updated without disrupting use of the application. This structure also allows the system to produce explanations of the reasoning used in arriving at a particular solution, which can be useful in obtaining and maintaining user confidence.

The creation of expert systems with common programming languages is normally a difficult task even for experienced programmers. Commercial-off-the-shelf (COTS) expert system development tools (i.e. computer programs that aid in the creation of expert systems) have reduced both the cost and effort involved in developing and maintaining expert systems. Some have even allow experts who are not experienced in programming to create expert systems for their domain. There are a variety of methodologies used in expert system implementation. Rule-based implementations are the most common, although there are also systems that employ cases, pattern recognition or genetic algorithms. Strictly speaking, the latter two are more commonly used outside the domain of expert systems.


Implementations

Rule-based expert systems are the most common. Where a different approach is used, it is typically a hybrid that also employs rule-based methods. The rule-based expert system has an interface that may in itself be somewhat intelligent in displaying information or in being aware of user preferences. The rule-based expert system has an inference engine which searches a knowledge base for needed rules, interprets the rules, and uses them to generate a solution to the problem. The knowledge base of a ruled-based expert system consists of rules normally in the form: IF fact THEN do this. Do this can be an action such as printing a message or checking another specific rule. Rules can be laws or can represent "common sense" (e.g. If its raining, then take an umbrella).

Case-based reasoning exemplifies the idea that humans solve problems by referring to similar problems that have already been solved. A case-based reasoning system will compare the current problem to other problems and their solutions in the database. Case relevancy is determined and those with little or no applicability are excluded. Of the remaining cases, their solutions and the justifications for those solutions are used to determine a final conclusion. In the event that the expert system is unable to determine a solution, or, if after being tested in the real world, the results are unsatisfactory, the problem will go to a human expert for solution. The case and the new solution will be entered into the database so it may be used later. More information can be found on case-based reasoning at http://www.ai-cbr.org/.

Pattern recognition is a technique that emerged from the realization that humans are good at recognizing patterns. (For example, the ability to hear spoken words and translate them into a communicated idea is one form of pattern recognition.) It seems beneficial to use pattern recognition in expert systems to aid problem solving. Unfortunately, this is one of the most difficult areas in artificial intelligence. Many paradigms have emerged, and no one paradigm seems best suited for all tasks. One way in which pattern matching in expert systems may be implemented is by representing expert behavior as the knowledge of a consequence given a particular set of preceding objects or events. When the system encounters a pattern that it does not know the consequence, it makes an ’analogy’ given the closest matching pattern and then asks the user to determine the relevancy of the result. Other areas of pattern recognition research include image analysis, character recognition, speech analysis, and person identification. Pattern recognition is closely related to Fuzzy Logic. See the FAQ at http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/fuzzy/part1/faq.html or http://www.emsl.pnl.gov:2080/proj/neuron/fuzzy/ for related information.

Genetic algorithms model computer learning after evolution in nature. A random population of individuals is created, represented by some encoding (e.g. some combinations of 1s and 0s) that in turn represents a particular solution to a problem. The algorithm must have some way of determining the ’fitness’ of an individual, or the validity and ’goodness’ of the represented solution. The population will go through periods of evolution until the best-suited individual emerges via a process patterned after natural selection. This evolutionary process involves discarding ’parents’ that are in poor health, mating the remaining ’good’ parents, and possibly mutating the children. The process results in the surviving individuals of each generation having a higher average fitness than the individuals of the preceding generation. Multiple iteration will produce a most fit thus best-solution individual. For more information see the Hitch-Hiker’s Guide to Evolutionary Computing at http://www.cs.purdue.edu/coast/archive/clife/FAQ/www/.


Commercial Products (listed alphabetically)

ACQUIRE - Acquired Intelligence Inc.
http://www.aiinc.ca/

ACQUIRE is an expert system shell that is designed to allow the domain expert build the application. Similar software applications require that someone with programming experience build the knowledge base while the expert supplies the information. ACQUIRE uses a knowledge acquisition system that asks questions of the expert in order to build its knowledge base. The expert is alerted to discrepancies in the information, if any, and given the opportunity to adjust the problem. Although ACQUIRE uses rules and cases for implementation of the inference engine, the primary problem solving method is pattern recognition. Some additional features are the following: a knowledge base viewable through objects, production rules, or decision tables; uncertainty handling through non-numerical means; support for report writing; and a self-documenting knowledge base. ACQUIRE is available for Microsoft Windows (3.1 or higher) only.

ART*Enterprise - Brightware, Inc.
http://www.brightware.com/

ART*Enterprise is a rule- and case-based expert system shell, intended to combine all of an organizations information--comprised of databases, documents, and policies--into a single system. The product is an object-oriented development tool aimed at professional developers. ART*Enterprise can handle both structured and unstructured data. Users can get to data (documents, etc.) without knowing a file name or location, but simply the type of the information. Rules that represent business policies will monitor the addition of information to the system. If certain conditions are met, a set of pre-defined actions will be taken. Support is provided for rapid prototyping, repository-based cooperative development, and a logic base that spans multiple platforms. ART*Enterprise is available for Windows (3.1, 95, NT), OS/2 Presentation Manager, and various Unix platforms. (Kernel only is available for MVS.) Supported databases include: Oracle, Sybase, Informix, Q+E, and DB2.

Eclipse - The Haley Enterprise, Inc.
http://www.haley.com/

Eclipse is a rule-based, pattern matching expert system development tool, whose inference engine is based on the Rete algorithm (see company web site--inference engines using the Rete algorithm are faster than non Rete-based systems). Similar tools are implemented using only forward chaining (starting with the rules, and working until a goal is found). Eclipse uses both forward and backward chaining (starting with a goal and working through the rules backwards) which simplifies obtaining certain types of solutions. Eclipse also provides the ability to load multiple sets of rules separately in order to test different knowledge bases. Additional software is available which allows object-oriented programming (Rete++) and case-based reasoning (The Easy Reasoner). Eclipse is available for the Windows (95, NT), OS/2, Macintosh, and Unix operating systems.

Flex - Logic Programming Associates
http://www.lpa.co.uk/

Flex is a rule-based expert system shell, commonly used as a toolkit to form a hybrid with the programming language Prolog. The product has an open architecture, which means that the user can modify its behavior. Flex has its own Knowledge Specification Language (KSL) for defining its knowledge base. The KSL allows a programmer to translate the domain expert’s knowledge into simple statements and can be extended through the use of synonyms and templates. Flex is aimed at expert systems developers, AI programmers, and Prolog programmers. The product is available for Windows (3.1, 95, NT), MS-DOS, and Macintosh operating systems.

G2 - Gensym Corp.
http://www.gensym.com/

G2 is a rule-based, object oriented expert system development environment that is designed to maintain complex and dynamic industry operations. The system monitors resources for potential problems using a knowledge base of guidelines, and takes necessary actions if need be. G2 is an incremental, rapid development environment that can monitor on-line environments in real-time, or be used for "what-if" situations in a simulated environment. Knowledge is captured through rules, procedures, and functions that can be applied to an entire class of objects. G2 can be used in quality management, process optimization, dynamic scheduling, network fault management, energy and environmental management, and abnormal situation management. Features include: use over cross-platform, distributed systems; multi-threaded, concurrent real-time execution; integration with existing real-time systems and databases; and modification through structured natural language and remote access. See the company web site for supported platforms, operating systems, and other standards.

XpertRule - Attar Software Ltd.
http://www.attar.com/

XpertRule is a graphical development environment for building and maintaining knowledge based expert systems. The system is primarily rule based, however the rules are non-traditionally implemented in decision trees, exception trees, truth tables, and examples. Through Rule Induction, XpertRule combines the latter three rule implementations into a more efficient decision tree and at the same time alerts the user to discrepancies or gaps in the knowledge (this is done prior to run-time, during the development stage). The logic of decision trees can be tested at any time. Fuzzy logic (see http://www.emsl.pnl.gov:2080/proj/neuron/fuzzy/ for more information) can be used where needed, and optimization of the end-user application is provided through the means of genetic algorithms. Additional features include a graphical dialog editor and HTML report creation. XpertRule is available for Microsoft Windows (9x, NT) only.

Information on other expert system shells (including freeware and shareware) can be found at http://www.cs.cmu.edu/Groups/AI/ html/faqs/ai/expert/part1/faq.html.


Useful Links

Besides the links mentioned in context, the following sites provide additional information on expert systems and artificial intelligence.

PC AI - Expert Systems
http://www.primenet.com/ pcai/New_Home_Page/ai_info/expert_systems.html

Virtual Library on Expert Systems
http://golum.riv.csu.edu.au/~awong04/virtlib.html

Introduction to Artificial Intelligence and Expert Systems
http://www.bus.orst.edu/faculty/brownc/es_tutor/es_tutor.htm

email at jasonwaltman dot com

(c) 2000-2007 jason waltman