CLIPS
Encyclopedia
CLIPS is a public domain
Public domain
Works are in the public domain if the intellectual property rights have expired, if the intellectual property rights are forfeited, or if they are not covered by intellectual property rights at all...

 software tool for building expert systems. The name is an acronym for "C Language Integrated Production System." The syntax and name was inspired by Charles Forgy
Charles Forgy
Dr Charles L. Forgy is a computer scientist, known for developing the Rete algorithm used in his OPS5 and other production system languages used to build expert systems.- Early Life :Dr...

's OPS
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....

 ("Official Production System," although there was nothing really official about it). The first versions of CLIPS were developed starting in 1985 at NASA
NASA
The National Aeronautics and Space Administration is the agency of the United States government that is responsible for the nation's civilian space program and for aeronautics and aerospace research...

-Johnson Space Center (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 is probably the most widely used expert system tool because it is fast, efficient and free. CLIPS incorporates a complete object-oriented language
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 COOL for writing expert systems. CLIPS is written in C, extensions can be written in C, and CLIPS can be called from C. Its user interface more closely resembles that of the programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...

.

Facts and rules

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)))
)
In CLIPS, salience allows a user to assign priority (or weight) to a rule.

Descendants of CLIPS

Descendants of the CLIPS language include Jess
Jess programming language
Jess is a rule engine for the Java platform - it is a superset of CLIPS programming language, developed by Ernest Friedman-Hill of Sandia National Labs. It was first written in late 1995....

 (rule-based portion of CLIPS rewritten in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, it later grew up in different direction), and FuzzyCLIPS
FuzzyCLIPS
FuzzyCLIPS is a fuzzy logic extension of the CLIPS expert system shell from NASA. It was developed by the Integrated Reasoning Group of the Institute for Information Technology of the National Research Council of Canada and has been widely distributed for a number of years...

 (which adds concept of relevancy into the language).

Documentation

CLIPS contains an extensive set of readable documentation and the following books are available:
  • A college textbook about CLIPS, Expert Systems: Principles and Programming, ISBN 0-534-95053-1
  • A book on Jess, Jess in Action: Rule Based Systems in Java, ISBN 1-930110-89-8

Related systems

  • d3web
    D3web
    d3web is a free, open-source platform for knowledge-based systems .Its core is written in Java using XML and/or Office-based formats for the knowledge storage....

    : free, open-source platform for knowledge-based systems (expert systems).
  • ILOG rules
    ILOG
    ILOG is an international software company owned by IBM. It creates enterprise software products for supply chain, business rule management, visualization and optimization....

    : a business rule management system.
  • JBoss Drools
    Drools
    Drools is a business rule management system with a forward chaining inference based rules engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm....

    : a business rule management system (BRMS).
  • JESS
    Jess programming language
    Jess is a rule engine for the Java platform - it is a superset of CLIPS programming language, developed by Ernest Friedman-Hill of Sandia National Labs. It was first written in late 1995....

    : a rule engine for the Java platform - it is a superset
    SuperSet
    SuperSet Software was a group founded by friends and former Eyring Research Institute co-workers Drew Major, Dale Neibaur, Kyle Powell and later joined by Mark Hurst...

     of CLIPS programming language.
  • Prolog
    Prolog
    Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of...

    : a general purpose logic programming language.
  • OpenL Tablets
    OpenL Tablets
    OpenL Tablets is a business rule management system and a business rules engine based on table representation of rules. Engine implements optimized sequential algorithm...

    : business centric rules and open source BRMS.
  • DTRules
    DTRules
    DTRules is Open Sourced Rules Engine written entirely in Java. DTRules executes Decision tables directly, and utilizes a Domain Specific Language for expressing the conditions and actions within the Decision Tables....

    : a Decision Table based, open-sourced rule engine for Java.

External links

  • Homepage of the project
  • NASA CLIPS: downloads, information, news, and history
  • CLIPS expert system tool: a candidate for the Diagnostic System engine
  • EHSIS: an extension to CLIPS language that adds support for GUI
    Gui
    Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

    , Multimedia
    Multimedia
    Multimedia is media and content that uses a combination of different content forms. The term can be used as a noun or as an adjective describing a medium as having multiple content forms. The term is used in contrast to media which use only rudimentary computer display such as text-only, or...

    , IPC
    Inter-process communication
    In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...

    , etc. on Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

    .
  • CLIPS tutorial at iweb.tntech.edu
  • CLIPS PDF tutorial (spanish)
  • PyCLIPS Python Module
  • CLIPS tutorial on Code Project
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK