|
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 |