HOME

TheInfoList



OR:

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