CLIPS
C Language Integrated Production System

Working Memory

lists to represent facts
    ordered fact       (emergency fire)
    unordered fact     (emergency (type fire))

Production Memory

Domain knowledge encoded in rules
    rule        (defrule fire-emergency "Example"
                    (emergency fire)
                    =>
                    (assert (action ... )))

Inference Engine

    Recognize/Act Cycle
    Forward Chaining

Basic Patterns

Pattern can include literals, wildcards, predicates and variables,
(defrule person-without-brown-nor-black-hair
    (person (name ?name)
            (hair ?color&~brown|~black))
    =>
    (printout t ?name " has " ?color " hair." crlf))

Pattern Binding

Pattern binding variables are used to retract or modify the fact,
(defrule process-moved-information
    ?f1 <- (moved  (name ?name) (address ?address))
    ?f2 <- (person (name ?name))
    =>
    (retract ?f1)
    (modify  ?f2 (address ?address)))

Conflict Resolution Strategy

Each rule has a priority called salience.

On-line Resouces

  1. CLIPS Home
  2. CLIPS DLL
  3. Searchable CLIPS-LIST archive

Go to Clips Summary

Next Introduction   Up Home