CLIPS programming language
The
software CLIPS is an
expert system tool.
CLIPS is an acronym for "
C Language Integrated
Production System." The syntax and name was inspired by
Charles Forgy's
OPS ("Official Production System," although there was nothing really official about it). The first versions of CLIPS were developed starting in
1984 at
NASA-
Johnson Space Center (as an alternative for existing system ART*Inference) until the early
1990s when its Federal funding ceased, and NASA was mandated to buy
commercial off-the-shelf software.
CLIPS is probably the most widely used expert system tool because it is fast, efficient and free. Although it is now in the public domain, it is still updated and supported by the original author, Gary Riley.
CLIPS incorporates a complete
object-oriented language COOL for writing expert systems. Though it is written in
C, its interface more closely resembles that of the
programming language LISP. Extensions can be written in C, and CLIPS can be called from C.
Like other expert system languages, CLIPS deals with rules and facts. Various facts can make a rule applicable. An applicable rule is then asserted. Facts and rules are created by first defining them, as shown below:
(deffacts trouble_shooting
(car_problem (name ignition_key) (status on))
(car_problem (name engine) (status wont_start))
(car_problem (name headlights) (status work))
)
(defrule rule1
(car_problem (name ignition_key) (status on))
(car_problem (name engine) (status wont_start))
=>
(assert (car_problem (name starter) (status faulty))
)
Descendants of the CLIPS language include
Jess (rule-based portion of CLIPS rewritten in
Java, it later grew up in different direction),
ECLiPSe,
Haley Eclipse,
FuzzyCLIPS (which adds concept of relevancy into the language) and others.
A college textbook about CLIPS,
Expert Systems: Principles and Programming (ISBN 0534950531) is available, as well as a book on Jess,
Jess in Action: Rule Based Systems in Java ( ISBN 1-930110-89-8 ). CLIPS contains extensive set of readable documentation.
*
Jess programming language*
Homepage of the project*
What is CLIPS, an explanation
*
CLIPS expert system tool: a candidate for the Diagnostic System engine*
Usenet thread discussing very early CLIPS history*
RuleWorks Knowledge Based Systems - Expert System Programming by the Rules