CLIPS FREQUENTLY ASKED QUESTIONS
September 10th, 1998
This is the
frequently asked questions list for CLIPS. A current version of the FAQ can be
found at http://www.ghgcorp.com/clips/CLIPS-FAQ.
Comments/Suggestions
about this list can be sent to Gary Riley at clips@ghg.net. If you have a
special version of CLIPS, CLIPS programs, or
anything else that you'd like to make available to other CLIPS users, send email as well. References to the capabilities of other tools
are to my best knowledge. If these
references are incorrect or out-of-date, please let me know and I will correct them. The mention of other
products and services in this FAQ does
not represent an endorsement by myself.
ITEMS OF
INTEREST
* CLIPS 6.1 is now available for download at:
http://www.ghg.net/clips/download/.
* The CLIPS List Server is now hosted by a different
site (see question #5).
* CLIPS Year 2000 Compliancy (see question #38).
* PerlCLIPS, an integration between Perl and CLIPS,
is available for download at:
http://www.discomsys.com/~mps/dnld (see
question #14).
CONTENTS
1) What is CLIPS?
2) Where can I get a copy of CLIPS?
3) What's new in version 6.1 of CLIPS?
4) Can CLIPS be redistributed? Are there any licensing
fees?
5) What forums are available for answering questions
about CLIPS?
6) Are there any bug fixes for CLIPS?
7) Is there an Ada version of CLIPS?
8) When's the next CLIPS conference?
9) Is the CLIPS User's Group still active?
10) Are there any copies of the CLIPS Conference
Proceedings left?
11) Are there any recent reviews of CLIPS?
12) Are there any sources describing applications
built using CLIPS?
13) Are there any textbooks using CLIPS?
14) Are there any special versions of CLIPS?
15) Can CLIPS access extended memory beyond the DOS
640K limit on a PC?
16) Can CLIPS be compiled using a C++ compiler?
17) Does COOL store its objects as C++ data
structures? 18) How can I integrate
CLIPS as a C program with other C++ programs?
19) Is a Dynamic Link Library Available for the
Windows version of CLIPS? How do I use CLIPS with other Windows 3.1
applications?
20) What are the origins of CLIPS?
21) Are there any languages similar to CLIPS?
22) Did Inference aid in the development of CLIPS?
23) What are the future plans for CLIPS?
24) Can CLIPS be used for real time applications?
25) Is the CLIPS 6.0 Architecture Manual available?
26) Are there any CLIPS example programs?
27) Are training classes for CLIPS available?
28) How do I unsubscribe from the CLIPS list server?
29) What does the "Script Line 7" error
message mean? 30) Are there any examples of user defined functions other than
the ones in the Advanced Programming Guide?
31) Does a run-time program generated using the
constructs-to-c command run any faster than a program loaded using the load or
bload commands?
32) What does the "Previously Installed Software
is neither VCPI nor DPMI
compatible" error message mean? 33) Are there any companies providing
CLIPS consulting services?
34) Has CLIPS been compiled/integrated/embedded with
<X>? 35) Is there a way to use file stored as Macintosh archives on the PC?
36) Are there archives of questions and answers that
have been posted to the CLIPS list server?
37) Where can I get the CLIPS documentation?
38) Is CLIPS Year 2000 Compliant?
1) WHAT IS
CLIPS?
CLIPS is a productive development and delivery expert
system tool which provides a complete environment for the construction of rule
and/or object based expert systems. CLIPS
is used throughout the public and private community including: all NASA sites
and branches of the military, numerous
federal bureaus, government contractors, universities, and many companies. The key features of CLIPS
are:
* Knowledge Representation: CLIPS provides a
cohesive tool for handling a wide
variety of knowledge with support for three different programming paradigms: rule-based, object-oriented and
procedural. Rule-based programming
allows knowledge to be represented as
heuristics, or "rules of thumb," which specify a set of
actions to be performed for a given
situation. Object-oriented programming allows
complex systems to be modeled as modular components (which can be easily reused to model other systems or to
create new components). The procedural
programming capabilities provided by CLIPS are similar to capabilities found in languages such as
C, Pascal, Ada, and LISP.
* Portability: CLIPS is written in C for
portability and speed and has been installed on many different computers
without code changes. Computers on
which CLIPS has been tested include IBM PC compatibles, Macintosh, VAX 11/780,
and Sun 3/260. CLIPS can be ported to any
system which has an ANSI compliant C compiler. CLIPS comes with all source code which can be modified or
tailored to meet a user's specific
needs.
* Integration/Extensibility: CLIPS can be
embedded within procedural code, called
as a subroutine, and integrated with languages such as C, FORTRAN and ADA. CLIPS can be easily
extended by a user through the use of
several well-defined protocols.
* Interactive Development: The standard
version of CLIPS provides an interactive, text oriented development
environment, including debugging aids,
on-line help, and an integrated editor. Interfaces providing features such as pulldown menus, integrated editors,
and multiple windows have been developed for the Macintosh, Windows 3.1, and X Window environments.
* Verification/Validation: CLIPS includes a
number of features to support the
verification and validation of expert systems including support for modular design and partitioning
of a knowledge base, static and dynamic
constraint checking of slot values and function arguments, and semantic analysis of rule patterns to determine
if inconsistencies could prevent a rule
from firing or generate an error.
* Fully Documented: CLIPS comes with extensive
documentation including a Reference
Manual and a User's Guide.
2) WHERE CAN I
GET A COPY OF CLIPS?
CLIPS
executables, documentation, and source code are available for download from
http://www.ghg.net/clips/download/. This is
the primary location to check for the most recent version of CLIPS.
Older versions
of CLIPS distribution packages are available at
http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas
/expert/systems/clips/0.html. The distribution
packages are also available by anonymous ftp from eecs.nwu.edu and can be found in the /pub/CLIPS
directory. Other versions of CLIPS and
CLIPS related files are also available at both
sites.
3) WHAT'S NEW
IN VERSION 6.1 OF CLIPS?
CLIPS version
6.1 contains two major enhancements:
* The CLIPS source code is now C++ compatible.
It can now be compiled using either an ANSI C or C++ compiler.
* Several new commands provide the ability to
profile the time spent in constructs and user-defined functions.
4) CAN CLIPS
BE REDISTRIBUTED? ARE THERE ANY LICENSING FEES?
Copies of
CLIPS executables, documentation, and source code downloaded from http://www.ghg.net/clips/download/ can be freely used, modified, and redistributed
without restrictions.
5) WHAT FORUMS
ARE AVAILABLE FOR ANSWERING QUESTIONS ABOUT CLIPS?
Questions
regarding CLIPS can be sent via electronic mail to clips@ghg.net.
An electronic
conferencing facility, sponsored by Distributed Computing Systems (http://www.discomsys.com), is also
available to CLIPS users. Subscribers
to this facility may send questions, observations, answers, editorials, etc., in the form of electronic
mail to the conference. All subscribers will have a copy of these messages
reflected back to them at their
respective electronic mail addresses. To subscribe, send a single line message to clips-request@discomsys.com
containing the word
"subscribe". The subject field is ignored but the address
found in the 'Reply:', 'Reply to:', or
'From:' field will be entered in the
distribution list. Upon subscription you will receive a mail
message instructing you how to
participate in the conference from that point
forward. SAVE THIS MAIL MESSAGE!!! You may need the instructions
later if you wish to unsubscribe from
the list server.
To send your
own messages to members of the conference you need simply address your mail to
clips@discomsys.com. Your message will be reflected to all other members of the
conference.
If you wish to
remove yourself from the conference and discontinue receiving mail simply send
a message to clips-request@discomsys.com
with "unsubscribe" being the text of the message. If you want
to unsubscribe using another email account than the one you subscribed with,
then append the original subscribing email account to the text of the message. For example:
"unsubscribe john.doe@account.net". DO NOT SEND UNSUBSCRIBE MESSAGES TO clips@discomsys.com!!! This
sends a mail message to every member of
the list. If you need to get in contact with the list administrator (for
trouble unsubscribing or other questions about the list), send email to
clips-owner@discomsys.com.
Usenet users
can also find information and post questions about CLIPS to the comp.ai.shells news group.
A CLIPS World
Wide Web page can be accessed using the URL
http://www.ghg.net/clips/CLIPS.html.
6) ARE THERE
ANY BUG FIXES FOR CLIPS?
The most
recent version of CLIPS including bug fixes is available at
http://www.ghg.net/clips/download/.
7) IS THERE AN
ADA VERSION OF CLIPS?
CLIPS/Ada
version 4.4 is a version of CLIPS developed entirely in Ada and containing a subset of the features
found in the C version of CLIPS. CLIPS/Ada version 4.4 contains all of the
features found in CLIPS/C version 4.3, and with the exception of the CLIPS
Object-Oriented Language, all of the
features found in CLIPS/C version 5.0. There are no plans to update CLIPS/Ada
to a more recent version of CLIPS/C. COSMIC,
the distributer of CLIPS/Ada, has closed down its operations, so CLIPS/Ada is
no longer available.
8) WHEN'S THE
NEXT CLIPS CONFERENCE?
The Third
CLIPS Conference was held at NASA's Johnson Space Center in Houston, Texas on
September 12-14, 1994. There are no plans for a fourth conference.
9) IS THE
CLIPS USER'S GROUP STILL ACTIVE?
No. Most of
the current user interaction occurs through the CLIPS list server (see question
#5).
10) ARE THERE
ANY COPIES OF THE CLIPS CONFERENCE PROCEEDINGS LEFT?
Copies of the
First and Second CLIPS Conference Proceedings
are no longer available. Copies of the Third CLIPS Conference Proceedings are available in Portable
Document Format (PDF) at the URL
http://www.ghg.net/clips/download/documentation/. Adobe Acrobat Reader is needed to view PDF files. This
program can be downloaded at
http://www.adobe.com/prodindex/acrobat/readstep.html.
11) ARE THERE
ANY RECENT REVIEWS OF CLIPS?
The two most
recent reviews of CLIPS are "The Art of Production Systems" by Tom Brooke in the January
1992 issue of AI Expert and "A
Comparative Evaluation of Expert System Tools" by Dr. William Mettrey in the February 1991
issue of IEEE Computer. A bibliography
list of CLIPS related books, papers, and articles is contained in Appendix K of the CLIPS Basic Programming
Guide (available at
http://www.ghg.net/clips/download/documentation/).
12) ARE THERE
ANY SOURCES DESCRIBING APPLICATIONS BUILT USING CLIPS?
There are a
number of sources describing applications built using CLIPS. The 3rd CLIPS Conference Proceedings is a good place
to start. An abstract booklet of CLIPS applications is available at
http://www.ghg.net/clips/download/documentation/. A bibliography list of CLIPS
related books, papers, and articles is
contained in Appendix K of the CLIPS Basic Programming Guide (available at
http://www.ghg.net/clips/download/documentation/).
If you'd like
to share information with other CLIPS users about your CLIPS applications, please provide the following
information:
*The name of
your expert system. *Its purpose (brief-one or two sentences). *Development
stage (conceptual, developing, alpha testing, beta testing, finished). *Other Languages/Shells used. *Papers or
other references that describe your application. *Contact person (name,
organization, address, phone, fax, email
address, etc). *Description of your application (no more than a page or
so).
Send the
information by electronic mail to clips@ghg.net.
Since the
primary purpose of this booklet is to provide CLIPS users the opportunity to contact other individuals
developing applications of interest,
we're limiting the applications listed in this booklet to those that provide at least some source
of further information (such as a mail
address, email address, phone number, or reference other than the CLIPS conference proceedings). In either case,
we're still interested in hearing about
any applications you've developed.
The
Proceedings of the First, Fourth, and Fifth Innovative Applications of Artificial Intelligence also
contain descriptions of applications built using CLIPS ("An Intelligent
Training System for Space Shuttle
Flight Controllers" and "Space Shuttle Telemetry Monitoring" in the First, "HUB
SIAASHING: A Knowledge-Based System for
Severe, Temporary Airline Schedule Reduction" in the Fourth, and
"PI-in-a-Box: A Knowledge-based System for Space Science Experimentation" and "The DRAIR
Advisor: A Knowledge-Based System for
Materiel Deficiency Analysis" in the Fifth).
13) ARE THERE
ANY TEXTBOOKS USING CLIPS?
"Expert
Systems: Principles and Programming," 3rd Edition, by Giarratano and Riley
(ISBN 0-534-95053-1 for $75.95) comes with
a CD-ROM containing CLIPS 6.05 executables, source code, and
documentation. The first half of the book is theory oriented and the second half covers rule-based
programming using CLIPS. For more information,
contact
International
Thompson Publishing 7625 Empire Dr. Florence, KY 41042 Phone: (800) 354-9706
Phone: (606) 525-2230 WWW:
http://www.thomson.com/
or
PWS Publishing
Company 20 Park Plaza Boston, MA
02116-4324 Phone: (617) 542-3377 Fax:
(617) 338-6134 WWW:
http://www.pws.com/
"The
Engineering of Knowledge-based Systems: Theory and Practice" by Gonzalez and Dankel (ISBN 0132 769 409)
comes with an MS-DOS executable of
version 5.1 of CLIPS. The use of CLIPS isn't integrated throughout the book, but there is a 25 page
appendix that describes the
fundamentals of using the CLIPS executable bundled with the book. For more information, contact
Prentice Hall
P.O. Box 11073 Des Moines, Iowa 50336-1073 Phone: (515) 284-6761 Fax: (515) 284-2607 WWW:
http://www.prenhall.com/
14) ARE THERE
ANY SPECIAL VERSIONS OF CLIPS?
wxCLIPS,
developed by Julian Smart, provides a simple graphical front end to CLIPS 5.1/6.0, and in addition
contains a suite of extra functions for creating GUI applications in
CLIPS. The wxCLIPS WWW page is
http://web.ukonline.co.uk/julian.smart/wxclips/.
FuzzyCLIPS 1.5
is an extension of CLIPS incorporating fuzzy logic. FuzzyCLIPS includes all CLIPS 5.1 capabilities and adds the fuzzy logic processing capability. More information is available
at the URL http://www.ortech-engr.com/fuzzy/fzyclips.html.
FuzzyCLIPS
6.04 is an extended version of CLIPS 6.04 for representing and manipulating fuzzy facts and rules. In
addition to the CLIPS functionality,
FuzzyCLIPS can deal with exact, fuzzy (or inexact), and combined reasoning, allowing fuzzy and
normal terms to be freely mixed in the
rules and facts of an expert system. The system uses two basic inexact concepts, fuzziness and
uncertainty.It was developed by the Knowledge Systems Laboratory of the
National Research Council of Canada
(and is a different tool than the previously mentioned FuzzyCLIPS 1.5 developed by Togai InfraLogic). FuzzyCLIPS
is available via anonymous ftp from
ai.iit.nrc.ca in the directory /pub/fzclips. FuzzyCLIPS is also available via WWW (the World Wide Web).
It can be accessed indirectly by
accessing the Knowledge Systems Lab Server using the URL http://www.corpserv.nrc.ca/corpserv/nrc.html
or more directly by using the URL
http://ai.iit.nrc.ca/fuzzy/fuzzy.html. Versions are available fo!
r unix systems, Macintosh systems and PC systems. There
is no cost for the software, but please
read the terms for use in the FuzzyCLIPS
documentation or in the WWW FuzzyCLIPS pages.
DYNACLIPS
(DYNAamic CLIPS Utilities), developed by Yilmaz Cengeloglu, is a set of
blackboard, dynamic knowledge exchange, and agent tools for either CLIPS 5.1 or
CLIPS 6.0. It is a set of libraries that can
be linked with CLIPS. DYNACLIPS can be downloaded from the URL
http://users.aimnet.com/~yilsoft/yilsoft.html.
AGENT_CLIPS,
developed by Yilmaz Cengeloglu, is a multi-agent tool for Macintosh which
allows multiple copies of CLIPS to run at the
same time. Each Agent (CLIPS) can send commands to other active
agents at run time. AGENT_CLIPS handles
incoming commands automatically. Command transfer allows facts and rules to be
exchanged at run time. This is a form of knowledge exchange among intelligent
agents. AGENT_CLIPS 1.0 is available on Compuserve in the AIEXPERT forum under
Libraries, Expert System. Use the "go AIEXPERT" command to go the AIEXPERT Forum. AGENT_CLIPS can be
downloaded from the URL http://users.aimnet.com/~yilsoft/yilsoft.html.
The Washington
University School of Medicine has developed some data base library functions which provide a Sybase interface for CLIPS
6.0. The source code and documentation are available via the WWW at
http://wuarchive.wustl.edu:80/packages/clips2sybase/.
An enhanced
version of the CLIPS Windows 3.1 editor, developed by Ron Shapiro, is available
at http://www.ghg.net/clips/download/other/. Among other nifty features, the
editing of multiple documents is
supported.
A KQML
(Knowledge Query & Manipulation Language) API for CLIPS, developed by Ernest Friedman-Hill, is
available at the URL http://www.cs.umbc.edu/kqml/software/kapiclips.shtml.
Jess, the Java
Expert System Shell, is a clone of (part of) CLIPS written as an applet in Sun's Java language. Information
on Jess is available at
http://herzberg.ca.sandia.gov/jess/.
WebObject is
an object oriented programming language that takes input from the Internet and
generates HTML output for Internet-based applications. WebObject allows users
to create World Wide Web (WWW) pages dynamically. You can use it to embed forms
with text, button, and selection fields, maintain information in the
application from page to page, retrieve user-input from forms, convert output
to text, embed images and links in pages, and define background images and
colors on the page. WebObject features inheritance, generics, default values on
slots, constraints on slots, and demons. WebObject also includes an object
oriented database manager to create and query, store, and retrieve objects. WebObject's
syntax is based-upon the CLIPS Object Oriented Language, providing a huge
number of public-domain systems which can serve as the basis for your programs.
WebExpert is a development tool for creating Internet-based expert systems. It
includes the complete WebObject language!
plus a
rule-based programming language for building forward-chaining expert systems. WebExpert
applications generate intelligent behavior in financial advising, military
simulation, and telecommunications systems diagnostics. The built-in
pattern-matching engine can examine facts, database records, and objects. The
reasoner supports advanced features such as truth maintenance and dynamic
prioritization of rules. For more information or pricing, contact Wise Web Ware.
Wise Web Ware
506 Garrett Street Greensboro, NC 27406 Phone: (800) 589-5573 WWW:
http://www.wisewebware.com
The CLIPS
Knowledge Network Protocol (CKNP), developed by David Maluf, is software for
establishing TCP/IP communication among different CLIPS processes over the Internet allowing the
transfer of knowledge and hence
providing the basic tools for knowledge sharing and parallel processing.
Complete documentation and libraries are available via the World Widee Web at
the http://www-db.stanford.edu/pub/maluf/cknp/cknp.html URL. Correspondence (bug reports, questions,
etc.) can be sent by email to maluf@cs..stanford.edu.
PerlCLIPS, an
integration between Perl and CLIPS, is available for download at http://www.discomsys.com/~mps/dnld.
15) CAN CLIPS
ACCESS EXTENDED MEMORY BEYOND THE DOS 640K LIMIT ON A PC?
The 32 bit DOS
executable available at the CLIPS download site (see question #2) requires at
least a 386 CPU. This executable can
access memory beyond the DOS 640K limit, but DOS must have DMPI services available in order to run this
executable. If you are running Windows
3.1, Windows 95, or OS/2, DPMI services are
provided for you.
The 32 bit DOS
executable was created using the free DJGPP C
compiler. Information on this compiler is available at the URL http://www.delorie.com/djgpp/. A free DPMI
server is also available at this
location.
The CLIPS
built-in MicroEMACS editor is not available with this executable.
16) CAN CLIPS
BE COMPILED USING A C++ COMPILER?
Yes. Version
6.1 can be compiled with either an ANSI C or C++ compiler. Minimally, non-ANSI
compilers must support full ANSI style function prototypes and the void data
type in order to compile CLIPS.
17) DOES COOL
STORE ITS OBJECTS AS C++ DATA STRUCTURES?
The CLIPS
source code only uses features that are available in both the ANSI C and C++ standards. Since the object
extensions of C++ are not part of the
ANSI C standard, they are not utilized in the CLIPS source code. There are no
plans to make use of C++ object extensions in future versions of CLIPS.
18) HOW CAN I
INTEGRATE CLIPS AS A C PROGRAM WITH OTHER C++ PROGRAMS?
The source
code for version 6.1 of CLIPS can be compiled with a C++ compiler, so there is no longer a need for the special steps
required to link C and C++ object code together.
19) IS A
DYNAMIC LINK LIBRARY AVAILABLE FOR THE WINDOWS VERSION OF CLIPS? HOW DO I USE
CLIPS WITH OTHER WINDOWS 3.1 APPLICATIONS?
A Windows DLL
for CLIPS 6.0, developed by Mark Tomlinson, is available at
http://ourworld.compuserve.com/homepages/marktoml/. A DLL for use with Visual
Basic is also available.
A DLL for
CLIPS 5.1 is available by anonymous ftp from cs.cmu.edu. in the
clips/contrib/clipsdll sub directory (see question #2 for the directory path to the clips directory). The
file clips-and-windows available at
http://www.ghg.net/clips/download/other/ describes three techniques for using CLIPS with other Windows 3.1/95
applications (embedding CLIPS into your
Windows application, creating CLIPS as a DLL, or using Dynamic Data Exchange).
20) WHAT ARE
THE ORIGINS OF CLIPS?
The origins of
CLIPS date back to 1984 at NASA's Johnson Space Center. At this time, the Artificial Intelligence
Section (now the Software Technology
Branch) had developed over a dozen prototype expert systems applications using state-of-the-art hardware
and software. However, despite
extensive demonstrations of the potential of expert systems, few of these applications were put into
regular use. This failure to provide
expert systems technology within NASA's operational computing constraints could largely be traced to the
use of LISP as the base language for
nearly all expert system software tools at that time.
The Artificial
Intelligence Section felt that the use of a conventional language, such as C, would eliminate most of
these problems. Although a number of tool vendors started converting their
tools to run in C, the cost of each
tool was still very high, most were restricted to a small variety of computers, and the projected
availability times were discouraging. To
meet all of its needs in a timely and cost effective manner, it became evident that the Artificial Intelligence
Section would have to develop its own C
based expert system tool.
The prototype
version of CLIPS was developed in 1985. Particular attention was given to making the tool compatible with expert
systems under development at that time.
Thus, the syntax of CLIPS was made to
very closely resemble the syntax of a subset of the ART expert
system tool developed by Inference
Corporation. Although originally modelled
from ART, CLIPS was developed entirely without assistance from Inference or access to the ART source code.
The original
intent for CLIPS was to gain useful insight and knowledge about the construction of expert system
tools and to lay the groundwork for the
construction of a replacement tool for the commercial tools currently being used. Version 1.0
demonstrated the feasibility of the
project concept. After additional development, it became apparent
that CLIPS would be a low cost expert
system tool ideal for the purposes of
training. Another year of development and internal use went into
CLIPS improving its portability,
performance, functionality, and supporting
documentation. Version 3.0 of CLIPS was made available to groups
outside of NASA in the summer of 1986.
Further
enhancements transformed CLIPS from a training tool into a tool useful for the development and delivery of
expert systems as well. Subsequent enhancements to CLIPS extended it beyond its
initial representation methodology of
forward chaining rules by adding
procedural and object-oriented programming paradigms.
21) ARE THERE
ANY LANGUAGES SIMILAR TO CLIPS?
CLIPS is an
interesting example of technology transfer between the government and private sectors. Syntactically,
CLIPS traces its origins to Inference's
ART which traced the origins of its rule-based language to OPS5. Later, CLIPS was used by Inference
to develop ART-IM and by The Haley
Enterprise to develop Eclipse. In the early days of CLIPS development, porting
an application from CLIPS to ART was fairly easy (although the reverse was not
necessarily true if many of the advanced features of ART were utilized). In
recent years, the features and capabilities of CLIPS, ART-IM, and Eclipse have
diverged sufficiently that porting from one to the other is no longer a trivial
task. Still, the basic syntax of their rules remains very similar and the
flavor of the languages is more or less the same. For more information on
either ART-IM or Eclipse, contact respectively Inference or The Haley
Enterprise.
Inference
Corporation 550 North Continental Blvd. El Segundo, CA
90245 Phone: (310) 322-0200 Fax: (310)
322-3242 WWW: http://www.inference.com
Brightware, Inc.
[Formerly a division of Inference Corporation] WWW: http://www.brightware.com
The Haley
Enterprise, Inc. 413 Orchard Street Sewickley, PA 15143, Phone: (412) 741-6420 Fax: (412) 741-6457 WWW: http://www.haley.com/
Production
Systems Technologies has released CLIPS/R2, a new version of the CLIPS expert
systems tool. The first implementation of CLIPS to use the proprietary Rete II
rule engine, CLIPS/R2 is more than 50 times faster than the previous version on
complex problems. CLIPS/R2 supports forward-chaining rules, backward-chaining
rules, objects, and conventional procedures. The new backward-chaining rule
engine in CLIPS/R2 supports certainty factors, AND'S and OR's in rules, and HOW
and WHY explanations. CLIPS/R2 rule bases are embeddable in C or C++ programs. CLIPS
Interface Definition Compiler enables the CLIPS/R2 rules to operate
transparently on existing C structs and C++ classes. For more information or
pricing, contact Production Systems Technology.
Production
Systems Technology 5001 Baum Blvd Suite 419 Pittsburgh, PA 15213 Voice: (412)
683-4000 Fax: (412) 683-6347 Email:
info@pst.com WWW: http://www.pst.com
22) DID
INFERENCE AID IN THE DEVELOPMENT OF CLIPS?
Over the last
several years, there has been a persistent group of rumours to the effect that either Inference developed CLIPS for
NASA or that NASA used the ART source code to develop CLIPS. Neither of these statements are true. To set the matter
straight, there is not a single line
of CLIPS source code that was either written by Inference or given to NASA by Inference. In addition,
NASA never had access to the ART source
code.
23) WHAT ARE
THE FUTURE PLANS FOR CLIPS?
The most
recent version of CLIPS is 6.1. The next major release will primarily consist
of enhancements to the Windows 95 and MacOS
interfaces.
24) CAN CLIPS
BE USED FOR REAL TIME APPLICATIONS?
Yes and no. It
depends on what you mean by a real time application.
If you want
guaranteed response time, then the answer is no. Note that even tools specifically designed for real time
applications like G2 and RTworks can't
give you guaranteed response times. Generally
speaking, the more robust the pattern matching capabilities of a tool, the more difficult it is to
guarantee real time response.
If you need
built-in functionality that allows you reason about events as they occur over
time, then the answer is no. Many tools designed for real time applications
provide features that allow you (among other things) to schedule rules to be
checked at a particular time or on a
particular time interval, specify how long data is valid, determine trends in data (such as whether it's
increasing or decreasing), and
synchronize the execution of tasks. In addition, some tools such as G2,
provide extensive facilities for the "non AI" related aspects of
developing a real time application such as the graphical interface, simulation,
and data acquisition. It's possible to use CLIPS to reason about events as they
occur over time--It's just not a built-in feature. You can, for example, add an
additional slot to facts which stores their
creation time and then use rules which reason based on the contents of
this slot.
If by real
time you mean that the application is able to keep up with the data as it is
received, then the answer is maybe. Almost all
expert system tools can keep up with a real time system that only
requires decisions to be made in minutes/hours/days. Response time tends to
become an issue only when large amounts of data are being processed or
decisions are required every few seconds.
If you need
really, really fast response time, then the answer is maybe. Of course, my
definition of really, really fast is probably different than yours, so let me
quantity that: if you need responses faster than every 1 to 2 seconds, then
CLIPS will probably not be fast enough.
Again, even tools such as G2 are probably not capable of dealing with
data rates in the milliseconds. The smallest time increment available in G2 for scheduling a rule is one second,
so even if G2 is capable of receiving data several times a second, it's not
capable of processing the data within that time frame.
CLIPS is based
on the Rete pattern matching algorithm. The efficiency of this algorithm is
based on the assumption that data changes slowly over time (e.g. a single rule
firing affects < 5% of all facts). This assumption would appear to fail
miserably for monitoring applications (as well as other applications where
rapid data change can occur). If, for example, you have 100 facts representing
various sensor values and the sensor
values change every second, you have very rapid data changes (assuming you don't have thousands and
thousands of facts of other types). It's
often possible to comply with the Rete assumption by preprocessing data. For
example, if a sensor value changes from 10 to
10.1 and this change is not significant, then it's not necessary to
retract the old fact and assert a new fact with the changed sensor value. Another
preprocessing approach would be to convert numeric values to symbolic values such as low, nominal, and high and then
to retract the old !
fact and assert a new one only if the symbolic value
changed. The major drawback to this approach is that you generally have to
write C code to preprocess the data and keep track of pointers to facts so that
facts can later be retracted by the preprocessor--Of course if you're dealing
with real-time data, you're probably writing some C code anyway.
For more
information on either G2 or RTworks, contact respectively Gensym Corporation or Talarian Corporation.
Gensym
Corporation 125 CambridgePark Drive Cambridge, MA 02140 Phone: (617) 547-2500 Fax: (617) 547-1962 WWW:
http://www.gensym.com/
Talarian
Corporation 444 Castro Street Suite 140 Mountain View, CA 94041 Phone: (415)
965-8050 Fax: (415) 965-9077 WWW: http://www.talarian.com/
25) IS THE
CLIPS 6.0 ARCHITECTURE MANUAL AVAILABLE?
We have not
yet completed the 6.0 Architecture Manual and will not have time to work on it
in the forseeable future. Copies of the
CLIPS 5.1 Architecture Manual are still available.
26) ARE THERE
ANY CLIPS EXAMPLE PROGRAMS?
A few programs
(some of which were done by students from an expert systems course) are available at the following URL:
http://www.ghg.net/clips/download/executables/examples/
27) ARE
TRAINING CLASSES FOR CLIPS AVAILABLE?
Intelligent
Software Professionals (ISP) offers CLIPS Training. Expert Systems classes are available covering
several topics. For more information
contact:
Intelligent
Software Professionals P.O. Box 57562 Webster, TX 77598 Phone: (800) 724-4305 Fax: (713) 486-4741 Email: isp@isphouston.com WWW: http://www.isphouston.com/
Wise Web Ware
offers CLIPS Training. Expert Systems classes are available covering several topics. For more
information contact:
Wise Web Ware
506 Garrett Street Greensboro, NC 27406 Phone: (910) 379-9921 (800) 589-5573 Email: wiseweb@technologist.com
WWW: http://www.wisewebware.com
Intelligent
Visual Computing offers the course Building Expert Systems at the customer's
site. This course is based on CLIPS version 6 including COOL. For more
information including pricing and a course outline contact:
Intelligent
Visual Computing 1143-I Executive Circle Cary, NC 27511 Phone: (800) 776-2810
Email: mdc@ivc.com
Intelligent
Software Associates, Inc. (ISAI) provides a two-week, on-site training course in Expert System development using
CLIPS as well as shorter courses on
Knowledge Engineering, LISP Programming,
and an Executive Overview of AI. For more information, contact:
Tim Bickmore
Intelligent Software Associates, Inc. P.O. Box 188825 Sacramento, CA 95818
Phone: (916) 737-1441 Email: bickmore@netcom.com WWW: http://www.isai.com
28) HOW DO I
UNSUBSCRIBE FROM THE CLIPS LIST SERVER?
If you wish to
remove yourself from the conference and discontinue receiving mail simply send
a message to clips-request@discomsys.com
with "unsubscribe" being the text of the message. If you want
to unsubscribe using another email account than the one you subscribed with,
then append the original subscribing email account to the text of the message. For example:
"unsubscribe john.doe@account.net". DO NOT SEND UNSUBSCRIBE MESSAGES TO clips@discomsys.com!!! This
sends a mail message to every member of
the list. If you need to get in contact with the list administrator (for
trouble unsubscribing or other questions about the list), send email to
clips-owner@discomsys.com.
29) WHAT DOES
THE "SCRIPT LINE 7" ERROR MESSAGE MEAN?
An early
version of the CLIPS 6.0 PC installer has a bug that under some circumstances will
cause an error message. Instead of using this installer, you should download
the most recent version of CLIPS from the CLIPS download site (see question
#2).
30) ARE THERE
ANY EXAMPLES OF USER DEFINED FUNCTIONS OTHER
THAN THE ONES IN THE ADVANCE PROGRAMMING GUIDE?
Virtually all
of the system defined functions that come ready to use with CLIPS utilize the same programming
interface that you have to use to define your own functions. Look through files
such as bmathfun.c, iofun.c, miscfun.c,
prdctfun.c, emathfun.c, filecom.c, and multifun.c for examples.
31) DOES A
RUN-TIME PROGRAM GENERATED USING THE CONSTRUCTS-TO-C COMMAND RUN ANY FASTER
THAN A PROGRAM LOADED USING THE LOAD OR
BLOAD COMMANDS?
A run-time
program will not run any faster than a program loaded using the load or bload commands. The
constructs-to-c command used to generate
a run-time program creates files containing the C data structures
that would dynamically be allocated if
the load or bload command was used. With
the exception of some initialization routines, the constructs-to-c command does not generate any executable
code. The primary benefits of creating
a run-time program are: applications can be delivered as a single executable file; loading constructs
as part of an executable is faster than
loading them from an text or binary file; the CLIPS portion of the run-time program is smaller because
the code needed to parse constructs can
be discarded; and less memory is required to represent your program's constructs since memory for
them is statically rather than
dynamically allocated.
32) WHAT DOES
THE "PREVIOUSLY INSTALLED SOFTWARE IS NEITHER VCPI NOR DPMI COMPATIBLE" ERROR MESSAGE
MEAN?
This message
is generated by older versions of the CLIPS DOS 386 executable which use Zortech's DOSX 386 extender. You should
download a more recent version of CLIPS from the CLIPS download site (see
question #2).
33) ARE THERE
ANY COMPANIES PROVIDING CLIPS CONSULTING SERVICES?
In addition to
the course "Building Expert Systems" that is built using CLIPS we do consulting and development
in: Expert systems, CLIPS, Object
Oriented Analysis and Design, and C++. For more information contact:
Intelligent
Visual Computing 1143-I Executive Circle Cary, NC 27511 Phone: (800) 776-2810
Email: mdc@ivc.com
For
information on CLIPS consulting services, contact:
William Mark
McVea P.E. Email: mcvea@ecn.purdue.edu
In 1990,
Intelligent Software Associates, Inc., in Sacramento, California, was started to provide consulting services,
custom software development, and
training in Expert Systems development. While we have experience developing
systems in other shells (notably ART, KEE, and Nexpert), we have actually performed most of our work in
CLIPS since 1986, when we worked at
Lockheed's AI Center. I taught Lockheed's course in advanced ART development and, along with other ISAI
personnel, a two-week course in Expert
System development using CLIPS. While at Lockheed, we also consulted on the development of numerous
systems using ART and CLIPS, and I developed a RETE-based production system in
Common LISP (roughly CLIPS 4.0 plus logical dependencies, structured facts and
backward chaining) that was used on
several Lockheed research projects.
ISAI has done
custom Expert System development for both commercial organizations (in the health insurance and industrial monitoring
and control industries) and for NASA
(in the area of rocket engine monitoring
and control). We still provide a two-week, on-site training course
in Expert System development using
CLIPS (taught to various commercial
companies, and personnel from NASA LeRC, MSFC, and KSC), as well as shorter courses on Knowledge Engineering,
LISP Programming, and an Executive
Overview of AI. We have developed
bridges between CLIPS and the Ingres
and Mettrica databases (an Oracle bridge is in development), and also have integrated CLIPS into numerous
procedural programs.
For more
information, contact:
Tim Bickmore Intelligent
Software Associates, Inc. P.O. Box 188825 Sacramento, CA 95818 Phone: (916)
737-1441 Email: bickmore@netcom.com
Decision
Consultants Inc. provides CLIPS/ECLIPSE consulting services. Mark Wuilleumier
holds an MS Degree in Computer Science. He has designed and implemented a CLIPS
automatic knowledge acquisition expert system as a component of a multiple
cooperative expert system (running in a
Unix/RS6000 environment) applied in the domain of architectural and
engineering design. He has been a consultant to A.C. Nielsen for the last 2 years implementing an ECLIPSE expert
system applied in the domain of
marketing analysis. For more information, contact:
Michele
Fitzgerald RE: Mark Wuilleumier Decision Consultants Inc. Schaumburg, IL 60173 Phone: (708) 240-5100 Email: via CLIPS
list server (clips-list@cosmic.uga.edu)
34) HAS CLIPS
BEEN COMPILED/INTEGRATED/EMBEDDED WITH <X>?
The following
information is gleaned from user comments and is mostly unverified.
Tcl/Tk: Some notes on using Tcl/Tk with CLIPS are
available at http://www.ghg.net/clips/download/other/tcl-tk.txt.
Borland C++
4.5 and PowerPack: It's possible to
build an extended memory DOS command line
version of CLIPS 6.0 with Borland C++ 4.5 and PowerPack with the following steps:
1. In SETUP.H
change the compiler flag from IBM_TBC to IBM_ICB. 2. In MAKEFILE.BCC change bcc
to bcc32, drop the -ml switch, and add a -WX switch to the compiler lines. 3.
In SYSDEP.H, comment out the lines which include <i32.h> and
<stk.h>.
RS6000
(AIX3.2) with xlc compiler: The command line version of CLIPS 5.1 was
successfully compiled with no changes other than setting the appropriate flags
in the setup.h header file. The X Windows interface code for CLIPS did not
compile successfully and not much effort to determine the cause of the
problems.
AIX: Use the
UNIX_V flag in setup.h
HP 9000/735
using HP-UX 9.x: Use the makefile provided for Unix with CLIPS 6.0. Enable
the ANSI_COMPILER flag in the setup.h
header file. If you are compiling using
HP C, modify the makefile as follows:
.c.o: cc -Aa
-c -D_HPUX_SOURCE clips: $(OBJS) cc -o clips $(OBJS) -lm
For xclips,
try the -Aa -D_HPUX_SOURCE -DSYSVR4 options. Set the machine type to GENERIC in
the setup.h header file. The HP ANSI C compiler must also be at current patch
level.
For
information on compiling xclips under HP-UX 9.05, check the following URL:
http://www.ai.univie.ac.at/clips-hpux-patch.html
SGI IRIX 5.x:
You cannot compile the code for the CLIPS 6.0 integrated editor for native sgi applications due to
differences in the ioctl calls, but otherwise SGI Irix 5.x (both 5.1, 5.1.1,
and 5.2) should not pose any problems.
NEXTSTEP
3.0: The CLIPS X-Windows application
can be created by installing X11R5 and the latest version of gcc and then
compiling the CLIPS code with the Unix
flags set.
Symantec C++
8.0 for the Power Macintosh: Disable
global optimizations.
VMS CLIPS 6.0 has been run on OpenVMS/VAX 6.0. The
same user had not tried it with OpenVMS/Alpha (any version) or on OpenVMS/VAX
6.1. Things to be careful of:
1. Don't use
the built-in text processing on VMS (unless you want to learn emacs). It's not difficult to swap the built-in emacs
editor with DEC/TPU if you like having a built-in editor.
2. Stick with
DEC/C - The user didn't have much luck with GNU C on VMS.
3. Tailor the
include files to take advantage of VMS' flat memory model (and large address
space and )
4. Tailor your
VMS accounts to use large working sets (when
memory is available).
35) IS THERE A
WAY TO USE FILES STORED AS MACINTOSH ARCHIVES
ON THE PC?
Some CLIPS
related documents (such as the CLIPS 5.1 Architecture Manual) are available only as Macintosh archives. In the case
of the Architecture Manual, the file
contained in the archive is a Microsoft
Word document and could be opened on a PC if the file could be extracted from the archive.
Files with
.sea and .hqx extensions indicate Mac archiving file types. Files with .sea extensions are Macintosh self-extracting
archives and should be transferred in binary format. Files with .hqx extensions
are BinHex files and should be transferred as ASCII text.
The PC BinHex
1.3 program can be used to convert binhex files from their ASCII format to
their original binary format. The ExtractorPC program can be used to extract
archived files from a Macintosh
self-extracting archive file. The PC Binhex program is available by anonymous ftp from oak.oakland.edu. The file binhex13.zip is in the simtel/msdos/mac
directory. The ExtractorPC program is
available by anonymous ftp from
archive.umich.edu. The file extracpc.zip is in the /msdos/compression/macintosh directory.
To extract a
Macintosh archive with a .sea.hqx extension,
first transfer the file to your PC and give it a legal 8.3 character name. Run the PC Binhex 1.3
program on the file and then run the ExtractorPC program on the resulting
file. In the case of the CLIPS 5.1
Architecture Manual, the final
resulting file will be the original Macintosh Word 5.1 Architecture Manual file. This file can then
be opened with Word 6.0 for Windows.
36) ARE THERE
ARCHIVES OF QUESTIONS AND ANSWERS THAT HAVE BEEN POSTED TO THE CLIPS LIST SERVER?
Intelligent
Software Professionals has made available the
CLIPS-LIST archive, a WWW-based full text searchable archive containing over two years of question and
answers directed to the CLIPS List
Server. It can be accessed at the URL http://www.isphouston.com/swish-web.html.
37) WHERE CAN
I GET THE CLIPS DOCUMENTATION?
The CLIPS
Reference Manuals and User's Guide are available in Portable Document Format
(PDF) at the URL http://www.ghgcorp.com/clips/download/documentation/. Adobe Acrobat Reader is needed to view PDF files. This
program can be downloaded at
http://www..adobe.com/prodindex/acrobat/readstep.html.
38) IS CLIPS
YEAR 2000 COMPLIANT?
CLIPS doesn't
provide any functions for creating or manipulating dates and it doesn't create
or manipulate dates internally, so it
should be year 2000 compliant with only one caveat. CLIPS provides a time function that returns the
number of seconds elapsed since a
system dependent reference time. A variety of
operating system specific library functions are used to implement the time function. Compliance of
the time function is dependent upon
compliance of the compiler/operating system used to compile/run CLIPS. For example, the operating system
function called by the time function in
the Windows 95 version of CLIPS returns
the number of milliseconds that have elapsed since Windows was started. This function should be totally
unaffected by the calendar date, so the
Windows 95 version of CLIPS should be
year 2000 compliant. Note, however, that there is a separate issue of time wrapping independent of the
year 2000 problem. The timing function
used in Windows 95,!
for example,
will wrap back to zero if Windows has
been running continuously for approximately 49.7 days.