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.
- depth -- fire the most recently activated one
- breadth -- fire in the order of activations
On-line Resouces
- CLIPS Home
- CLIPS DLL
- Searchable CLIPS-LIST archive
Go to Clips Summary
Next Introduction
Up Home