CLIPS Summary

Components

Field   word -- case sensitive          Notation
        string                        [ ]     optional
        number                        < >     substition
                                      < >*    0 or more
Facts   ( < field >+ )                < >+    1 or more
                                      { }     1 and only 1
Fact template

    ( deftemplate <relation-name> [<optional-comment>]
        <slot-definition>* )
    <slot-definition>
        (slot <slot-name>) | (multislot <slot-name>)

Comment
        ; (emergency < type >)

Commands

Entering        A>clips
Exiting         CLIPS>(exit)
Escape                (system "< DOS command >")
Execution             (run [< limit >])
                      (reset)
                      (clear)   ; remove all facts, rules, and deffacts.

        reset : 1. remove all activated rules from agenda
                2. remove all facts from the fact-list
                3. assert the facts from existing deffacts

Adding Facts

        (assert < fact >+)
        (deffacts <deffacts name> [<comment>]
                  <facts>*)
                  ; automatically assert a set of facts after reset

Constructs

                       Add                     Remove                     Display

Facts           (assert < fact >+)         (retract <fact-index >+)     (facts)
                                                       fact-addr
                                           ?fact-addr <- <fact>

Rules           (defrule <r-n>             (undefrule r-n)              (rules)
                    <pattern>*                                          (agenda)
                    =>                                                  (ppdefrule )
                    <action>*)

Deffacts        (deffacts <d-n> [<...>]    (undeffacts <d-n>)           (list-deffacts)
                          <facts>*)                                     (ppdeffacts <d-n>)

Debugging       (watch  facts       )      (unwatch ... )
                        rules
                        activations
                        all
                (set-break <r-n>)          (remove-break <r-n>)         (show-break)
                (dribble-on <f-n>)         (dribble-off)

File Commands

                (load  <file-name>)
                (save  <file-name>)
                (batch <file-name>)

Variables                 ?speed
Single field wildcard     ?
Multiple field wildcard   $?

Field constraint        NOT     ~
                        OR      |
                        AND     &

Escape character          =
                          (assert (ans (+ 2 2)))
                          (assert (ans =(+ 2 2)))

Binding         (bind <var> <value>)


Back to Home Expert Systems