82 Chapter 3 DevelopingKnowleDge-BaseDsystems
AIML specifications. The program code can also be downloaded from the
given site and modified to develop various knowledge-based applications.
It is the most feature-complete, best-tested implementation of the current
AIML specifications.
For knowledge acquisition in particular, tools like Protégé [http://pro-
tege.stanford.edu] help in the development of knowledge-based systems.
One interesting product, developed by an Indian company called iKen
Studio [http://www.ikenstudio.com], is a complete online Web-based de-
velopment framework to construct and deploy knowledge-based systems. It
is available as a Software as a Service (SaaS) model only. The company can
give free access to those who are interested in using it online for personal or
prototype purposes.
Many other visual tools are available for developing knowledge-based
systems: such as MATLAB [http://www.mathworks.com], Java Neural Net-
work Simulator (Java NNS) [http://www.ra.cs.uni-tuebingen.de/software/
JavaNNS/welcome_e.html], and Predict [http://www.neuralware.com/].
Expert system shells are also available, such as eg2Lite [http://www.
expertise2go.com/webesie/e2gdoc/], TMYCIN [http://www.cs.utexas.
edu/~novak/tmycinb.html], and Vidwan [http://www.cdacmumbai.in/index.
artificial_intelligence/products/vidwan], to develop customized knowledge-
based systems.
3.15.1 C Language Integrated Production System
(CLIPS) The Basics
There are several general-production system languages; however, CLIPS and
JESS are the two most popular. JESS is written in Sun’s Java language. It ex-
tends features of CLIPS by providing the ability to use scripting applets and
interface with the Web.
CLIPS can be downloaded for free from http://www.ghg.net/clips for
noncommercial use. The package is downloadable as a collection of source
files or as an executable. To start CLIPS from the shell in Unix, type
If you are using a Windows or Mac operating system, double-click the
76473_CH03_Akerkar.indd 82 8/11/09 10:11:20 AM
3.15 KnowleDge-BaseD system tools 83
CLIPS icon. You will get a window with nothing in it but the command
CLIPS>. For the time being, this is where you type your commands
and programs. To exit CLIPS, type
(exit) or shut down the program. Note
that CLIPS commands are always encased in parentheses, as in
(foo)). Here is a list of some important ones:
(exit) Shuts down CLIPS
(clear) Removes all program and data from memory
(reset) Removes dynamic information from memory and resets the
(run) Executes a CLIPS program
The CLIPS shell provides the crucial elements of an expert system, that
A global memory for data, called a fact-list or instance-list•
A knowledge base•
An inference engine to control the execution of rules•
Moreover, CLIPS has pattern-matching abilities, extended math func-
tions, conditional tests, and object-oriented programming (COOL: Clips
Object-Oriented Language), with abstraction, inheritance, encapsulation,
polymorphism, and dynamic binding.
There are eight primitive data types in CLIPS: float, integer, symbol,
string, and four address types. Numbers (floats and integers) are represented
using the usual syntax, with e for exponentiation. Strings are defined using
double quotes, for example:
“Ram”. All other sequences of characters that do
not contain delimiters
(<new line>, <tab>, <,>, <”>, <(>, <)>, <>, <|>,
<<>, and <~>), and that do not start with ? or $? are symbols. Numbers,
strings, and symbols entered in CLIPS are treated as constants and always
evaluate to themselves.
Relationships and functions can have any number of arguments, and are
written with the following syntax:
(<function name> <arg1> <arg2>...)
76473_CH03_Akerkar.indd 83 8/11/09 10:11:20 AM

Get Knowledge-Based Systems now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.