CLIPS is a
public domain software
Public-domain software is software that has been placed in the public domain, in other words, software for which there is absolutely no ownership such as copyright, trademark, or patent. Software in the public domain can be modified, distributed, ...
tool for building
expert systems. The name is an acronym for "C Language Integrated Production System." The syntax and name were inspired by
Charles Forgy
Charles L. Forgy (born December 12, 1949, in Texas) is a computer scientist, known for developing the Rete algorithm used in his OPS5 and other production system languages used to build expert systems.
Biography
Early life
Forgy attended Wo ...
's
OPS5
OPS5 is a rule-based or production system computer language, notable as the first such language to be used in a successful expert system, the R1/XCON system used to configure VAX computers.
The OPS (said to be short for "Official Production Sy ...
. The first versions of CLIPS were developed starting in 1985 at
NASA
The National Aeronautics and Space Administration (NASA ) is an independent agency of the US federal government responsible for the civil space program, aeronautics research, and space research.
NASA was established in 1958, succeeding t ...
-
Johnson Space Center
The Lyndon B. Johnson Space Center (JSC) is NASA's center for human spaceflight (originally named the Manned Spacecraft Center), where human spaceflight training, research, and flight control are conducted. It was renamed in honor of the late U ...
(as an alternative for existing system ART*Inference) until the mid-1990s when the development group's responsibilities ceased to focus on expert system technology. The original name of the project was "NASA's AI Language" (NAIL).
CLIPS was probably the most widely used expert system tool as of 2005. CLIPS itself is written in
C, extensions can be written in C, and CLIPS can be called from C. Its syntax resembles that of the
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lisping ...
.
CLIPS incorporates a complete
object-oriented language
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
for writing expert systems. COOL combines the programming paradigms of procedural, object oriented and logical (theorem proving) languages.
Facts and rules
CLIPS uses
forward chaining.
Like other expert system languages, CLIPS deals with rules and facts. Various facts can make a rule applicable. An applicable rule is then fired.
Facts and rules are created by first defining them, as shown below:
(deftemplate car_problem
(slot name)
(slot status))
(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))))
Having set this up, the (reset) command causes CLIPS to read the facts and rules. In this case, that would lead to the three "trouble_shooting" facts being asserted. Then the (run) command is used. Given that the two facts listed in rule1 have both been asserted, the conditions for doing its action have been met so the additional fact is asserted as a result of the run.
CLIPS> (reset)
CLIPS> (agenda)
0 rule1: f-1,f-2
For a total of 1 activation.
CLIPS> (facts)
f-0 (initial-fact)
f-1 (car_problem (name ignition_key) (status on))
f-2 (car_problem (name engine) (status wont_start))
f-3 (car_problem (name headlights) (status work))
For a total of 4 facts.
CLIPS> (run)
CLIPS> (facts)
f-0 (initial-fact)
f-1 (car_problem (name ignition_key) (status on))
f-2 (car_problem (name engine) (status wont_start))
f-3 (car_problem (name headlights) (status work))
f-4 (car_problem (name starter) (status faulty))
For a total of 5 facts.
CLIPS>
(assert +)
(Assert (object (name "chair")
(Material wood)
(height 3feet)
(Color brown))
CLIPS(retract
In CLIPS, ''salience'' allows a user to assign priority (or weight) to a rule.
Descendants
Descendants of the CLIPS language include Jess
Jess is a unisex given name, often a short form (hypocorism) of Jessica, Jesse, Jessie, etc., and a surname. It may refer to:
Given name
* Jess Atkinson (born 1961), American football player
* Jess Cain (1926–2008), American radio host
* Jes ...
(rule-based portion of CLIPS rewritten in Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
, it later grew up in different direction),[ "JESS was originally inspired
by the CLIPS expert system shell, but has grown into a
complete, distinct Java-influenced environment of its own."] and FuzzyCLIPS
FuzzyCLIPS is a fuzzy logic extension of the CLIPS (C Language Integrated Production System) expert system shell from NASA. It was developed by the Integrated Reasoning Group of the Institute for Information Technology of the National Research Cou ...
(which adds concept of relevancy into the language).
See also
* Constraint Handling Rules
* Drools
Drools is a business rule management system (BRMS) with a forward and backward chaining inference based rules engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm.
Drools supports the ...
* OpenL Tablets
OpenL Tablets is a business rule management system (BRMS) and a business rules engine (BRE) based on table representation of rules. Engine implements optimized sequential algorithm. OpenL includes such table types as decision table, decision tree, ...
References
External links
*
NASA CLIPS: downloads, information, news, and history
CLIPS expert system tool: a candidate for the Diagnostic System engine
CLIPS tutorial on Code Project
Code editor for CLIPS
{{DEFAULTSORT:Clips
Expert systems
Public-domain software with source code
Domain-specific programming languages
Knowledge representation languages