Expert System Shells
An Expert system shell is a software development environment. It contains the basic
components of expert systems. A shell is associated with a prescribed method for
building applications by configuring and instantiating these components.
Shell components and description
The generic components of a shell : the knowledge acquisition, the knowledge Base,
the reasoning, the explanation and the user interface are shown below. The knowledge
base and reasoning engine are the core components.
■ Knowledge Base
A store of factual and heuristic knowledge. Expert system tool provides one or more
knowledge representation schemes for expressing knowledge about the application
domain. Some tools use both Frames (objects) and IF-THEN rules. In PROLOG the
knowledge is represented as logical statements.
■ Reasoning Engine
Inference mechanisms for manipulating the symbolic information and knowledge in
the knowledge base form a line of reasoning in solving a problem. The inference
mechanism can range from simple modus ponens backward chaining of IF-THEN
rules to Case-Based reasoning.
Knowledge Acquisition subsystem
A subsystem to help experts in build knowledge bases. However, collecting
knowledge, needed to solve problems and build the knowledge base, is the biggest
bottleneck in building expert systems.
Explanation subsystem
A subsystem that explains the system's actions. The explanation can range from how
the final or intermediate solutions were arrived at justifying the need for additional
data.
User Interface
A means of communication with the user. The user interface is generally not a part of
the expert system technology. It was not given much attention in the past. However,
the user interface can make a critical difference in the pe eived utility of an Expert
system.
Popular Expert System shells
Following are a few examples of expert systems available for developers to build
expert systems at various scales. Depending on the ES Shell there are various pros and
cons associated with each shell.
4.1 ES-Builder
ES Builder stands for Expert System Builder. It is one of the most famous Expert
System Shell. It is a free ES shell that is implemented especially for students and
researchers to develop expert system shells. The shell consists of an improved web
interface built using the AJAX framework. The ES-Builder stores the facts and rules of
the knowledge base in an online MySQL database. There is a built-in inference engine
(written in Prolog)and user interfaces are developed using simple HTML and CSS.
The database connectivity is maintained to access the knowledge base using PHP.
The rule base knowledge base can also be developed using a decision tree that consists
of attributes, values and conclusions.
Attribute: Attributes are characteristics of possible conclusions that are to be
tested in the ES.
Value: Each Value node represents the most correct response to an Attribute
for a particular conclusion.
Conclusion: The final decision made based on the attributes and values is the
conclusion.
Benefits of ES Builder:
Autogenerated User Interfaces (Simple HTML CSS design of the user interface)
Ability to create backup files of the knowledge base and easy integration with
MYSQL database.
Ability populates the knowledge base using the decision tree.
Optimized view of the rule-based knowledge base.
Limitations of ES-Builder:
Only forward chaining rules are supported backward chaining rules are not
supported.
Desktop tools support only Windows 98 & Windows 7.
4.2 CLIPS
CLIPS stands for C-Language Integrated Production System. As the meaning suggests
the CLIPS expert system shell is written in the procedural langue C. CLIPS was
developed in 1985 at NASA’s Johnson Space Center. It is a rule-based programming
language that is used for creating an expert system. CLIPS are used in systems where
the heuristic solution is easier to implement and maintain than a traditional algorithmic
approach.
CLIPS provides 03 different tools for knowledge representation in the form of
programming methodologies/ programming paradigms. The 03 methods are:
Procedural
Object-oriented
Rule-based programming
Since the CLIPS is written in C language, the expert system developed by CLIPS
requires ANSI compiler also. Since the systems that already have the ANSI compiler
can easily run the expert system without changing the source code.
Benefits of CLIPS:
Can be easily embedded in other subroutines made in procedural languages to
extend the existing functionality.
Support the methods like fuzzy logic and agents.
Limitations of CLIPS:
Support only forward chaining rules but does not support backward chaining
rules.
4.3 JESS
JESS stands for Java Expert System Shell. JESS is another expert system shell and a
scripting language that is completely written by Java programming language. JESS is
heavily used to build rule-based expert systems which is tightly linked to systems that
are written on Java. The expert systems built by using JESS can be either run on
command-line interface or can be used as an Applet.
JESS based expert systems are widely used as intelligent agents, in enterprise resource
planning systems, and in order validation of eCommerce platforms.
Benefits of JESS:
Better to be applied in bigger problems where performance is dominated by
algorithm quality.
Include backward chaining and working memory queries.
Faster than the expert systems developed using expert system shells written on
C language.
Contains some commands which allow less memory usage when executing the
system.
Limitations of JESS:
Some capabilities are limited when used in Browser.
4.4 PyKE
PyKE stands for Python Knowledge Engine. PyKE uses logic programming that is
inspired by Prolog, but PyKE is entirely written in the programming language Python.
The python functions, PyKE rules, and PyKE pattern variables, graph plans are the
major features of PyKE knowledge base. This is an inference engine that uses rules
and facts to create additional facts using forward chaining of rules to prove goals.
And also, through backward chaining, it assembles Python functions into customizable
call graphs which are also known as Plans.
Benefits of PyKE:
Highly customizable and code adaptability.
High performance.
Code reusability.
Both forward chaining and backward chaining is supported.
Ability to run commands on the local system to guide the inferencing.
Provide end-user question capability.
Limitations of PyKE The UI should be created manually.
Integration issues occur when integrating inference engines with different UIs.