© 2002-06 Franz J. Kurfess CLIPS 1 CPE/CSC 481: Knowledge-Based Systems Dr. Franz J. Kurfess Computer Science Department Cal Poly.

Slides:



Advertisements
Similar presentations
Expert systems CLIPS Seyed Hashem Davarpanah
Advertisements

© 2002 Franz J. Kurfess Expert System Examples 1 CPE/CSC 481: Knowledge-Based Systems Dr. Franz J. Kurfess Computer Science Department Cal Poly.
Introduction to CLIPS COMP 474/674 FALL 2003 Michelle Khalifé.
The CLIPS Programming Tool History of CLIPS –Influenced by OPS5 and ART –Implemented in C for efficiency and portability –Developed by NASA, distributed.
CLIPS 1 Expert Systems Dr. Samy Abu Nasser. CLIPS 2 Course Overview u Introduction u CLIPS Overview u Concepts, Notation, Usage u Knowledge Representation.
November 2, 2004AI: CLIPS Language Tutorial1 CLIPS Michael Scherger Department of Computer Science Kent State University.
The Web Warrior Guide to Web Design Technologies
Expert System Shells - Examples
Samad Paydar Ferdowsi University of Mashhad.  C Language Integrated Production System (CLIPS)  A tool for building expert systems  An expert system.
1 01/12/2011Knowledge-Based Systems, Paula Matuszek Intro to CLIPS Paula Matuszek CSC 9010, Spring, 2011.
November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.
Chapter 8 Pattern Matching
Introduction to CLIPS (Lecture Note #17)
Chapter 7: Introduction to CLIPS
CLIPS C Language Integrated Production System Note: Some slides and/or pictures are adapted from Lecture slides / Books of Dr Zafar Alvi.
Artificial Intelligence Lecture No. 18 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
1 Computer Science Department California Polytechnic State University San Luis Obispo, CA, U.S.A. CPE/CSC 481: Knowledge-Based Systems Franz J. Kurfess.
 2005 Pearson Education, Inc. All rights reserved Introduction.
1 Chapter 2 Introduction to Java Applications Introduction Java application programming Display ____________________ Obtain information from the.
Rule Based Systems Michael J. Watts
Chapter 12: Expert Systems Design Examples
Introduction to CLIPS (Chapter 7) Fact List (contains data) Knowledge Base (contains rules) Inference Engine (controls execution)
© 2002 Franz J. Kurfess Introduction 1 CPE/CSC 481: Knowledge-Based Systems Dr. Franz J. Kurfess Computer Science Department Cal Poly.
Chapter 2: Algorithm Discovery and Design
© C. Kemke CLIPS 1 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba.
© C. Kemke1Reasoning - Introduction COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba.
© 2002 Franz J. Kurfess Introduction 1 CPE/CSC 481: Knowledge-Based Systems Dr. Franz J. Kurfess Computer Science Department Cal Poly.
Chapter 8: Advanced Pattern Matching Expert Systems: Principles and Programming, Fourth Edition.
Chapter 9: Modular Design, Execution Control, and Rule Efficiency Expert Systems: Principles and Programming, Fourth Edition.
Introduction to Jess.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
JavaScript, Third Edition
Guide To UNIX Using Linux Third Edition
Introduction to C Programming
CS 561, Session 25 1 Introduction to CLIPS Overview of CLIPS Facts Rules Rule firing Control techniques Example.
Chapter 2: Algorithm Discovery and Design
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
A First Program Using C#
1 01/12/2011Knowledge-Based Systems, Paula Matuszek More Intro to CLIPS Paula Matuszek CSC 9010, Spring, 2011.
Chapter 9: Modular Design, Execution Control, and Rule Efficiency Expert Systems: Principles and Programming, Fourth Edition.
Expert System Topic 2.
Chapter 7: Introduction to CLIPS Expert Systems: Principles and Programming, Fourth Edition.
Artificial Intelligence Lecture No. 17 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
Chapter 10: Procedural Programming Expert Systems: Principles and Programming, Fourth Edition.
Input, Output, and Processing
Jess: A Rule-Based Programming Environment Reporter: Yu Lun Kuo Date: April 10, 2006 Expert System.
 Pearson Education, Inc. All rights reserved Introduction to Java Applications.
Introduction to Programming with RAPTOR
Chapter 7: Introduction to CLIPS Presented By: Farnaz Ronaghi.
IMSS013 CLIPS. 2 Background CLIPS is an expert system tool developed by the Software Technology Branch (STB), NASA/Lyndon B. Johnson Space Center. First.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 2 Input, Processing, and Output.
Computer Science Department California Polytechnic State University San Luis Obispo, CA, U.S.A. Franz J. Kurfess CPE/CSC 481: Knowledge-Based Systems.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
Expert Systems Chapter 7 Introduction to CLIPS Entering and Exiting CLIPS A> CLIPS  CLIPS (V6.5 09/01/97) CLIPS> exit exit CLIPS> (+ 3 4)  7 CLIPS>
© 2002 Franz J. Kurfess Introduction 1 CPE/CSC 481: Knowledge-Based Systems Dr. Franz J. Kurfess Computer Science Department Cal Poly.
Artificial Intelligence Lecture No. 26 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
Introduction to CLIPS. Expert Systems: Principles and Programming, Fourth Edition2 What is CLIPS? CLIPS is a multiparadigm programming language that provides.
1 Knowledge Based Systems (CM0377) Lecture 10 (Last modified 19th March 2001)
Artificial Intelligence Lecture No. 19 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
Mostly adopted from Jason Morris notes (Morris Technical Solutions)
Artificial Intelligence Lecture No. 22 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
The CLIPS Expert System Shell Dr Nicholas Gibbins
Summary for final exam Agent System..
Introduction to CLIPS 2 Session 13 Course: T0273 – EXPERT SYSTEMS Year: 2014.
Intelligent Systems JESS constructs.
Chapter 7: Introduction to CLIPS
Chapter 8: Advanced Pattern Matching
بسم الله الرحمن الرحیم آموزش نرم افزار CLIPS
Chapter 11: Classes, Instances, and Message-Handlers
CPE/CSC 481: Knowledge-Based Systems
Presentation transcript:

© Franz J. Kurfess CLIPS 1 CPE/CSC 481: Knowledge-Based Systems Dr. Franz J. Kurfess Computer Science Department Cal Poly

© Franz J. Kurfess CLIPS 2 Course Overview u Introduction u CLIPS Overview u Concepts, Notation, Usage u Knowledge Representation u Semantic Nets, Frames, Logic u Reasoning and Inference u Predicate Logic, Inference Methods, Resolution u Reasoning with Uncertainty u Probability, Bayesian Decision Making u Pattern Matching u Variables, Functions, Expressions, Constraints u Expert System Design u ES Life Cycle u Expert System Implementation u Salience, Rete Algorithm u Expert System Examples u Conclusions and Outlook

© Franz J. Kurfess CLIPS 3 Overview CLIPS u Motivation u Objectives u CLIPS Background u History u Main ideas u Terminology u Facts and Rules u Formats u Using Facts and Rules u Variables and Pattern Matching u Variables u Pattern Matching u Execution of Programs u Invoking and leaving CLIPS u Watching u Important Concepts and Terms u Chapter Summary

© Franz J. Kurfess CLIPS 4 Logistics u Introductions u Course Materials u textbooks (see below) u lecture notes u PowerPoint Slides will be available on my Web page u handouts u Web page u u Term Project u Lab and Homework Assignments u Exams u Grading

© Franz J. Kurfess CLIPS 5 Bridge-In

© Franz J. Kurfess CLIPS 6 Pre-Test

© Franz J. Kurfess CLIPS 7 Motivation u CLIPS is a decent example of an expert system shell u rule-based, forward-chaining system u it illustrates many of the concepts and methods used in other ES shells u it allows the representation of knowledge, and its use for solving suitable problems

© Franz J. Kurfess CLIPS 8 Objectives u be familiar with the important concepts and methods used in rule-based ES shells u facts, rules, pattern matching, agenda, working memory, forward chaining u understand the fundamental workings of an ES shell u knowledge representation u reasoning u apply rule-based techniques to simple examples u evaluate the suitability of rule-based systems for specific tasks dealing with knowledge

© Franz J. Kurfess CLIPS 9 Evaluation Criteria

© Franz J. Kurfess CLIPS 10 Introduction u CLIPS stands for u C Language Implementation Production System u forward-chaining u starting from the facts, a solution is developed u pattern-matching u Rete matching algorithm: find ``fitting'' rules and facts u knowledge-based system shell u empty tool, to be filled with knowledge u multi-paradigm programming language u rule-based, object-oriented (Cool) and procedural

© Franz J. Kurfess CLIPS 11 The CLIPS Programming Tool u history of CLIPS u influenced by OPS5 and ART u implemented in C for efficiency and portability u developed by NASA, distributed & supported by COSMIC u runs on PC, Mac, UNIX, VAX VMS u CLIPS provides mechanisms for expert systems u a top-level interpreter u production rule interpreter u object oriented programming language u LISP-like procedural language [Jackson 1999]

© Franz J. Kurfess CLIPS 12 Components of CLIPS u rule-based language u can create a fact list u can create a rule set u an inference engine matches facts against rules u object-oriented language (COOL) u can define classes u can create different sets of instances u special forms allow you to interface rules and objects [Jackson 1999]

© Franz J. Kurfess CLIPS 13 Notation u symbols, characters, keywords u entered exactly as shown:  (example)  square brackets [...] u contents are optional:  (example [test])  pointed brackets (less than / greater than signs) u replace contents by an instance of that type  (example )  star * u replace with zero or more instances of the type  *  plus + u replace with one or more instances of the type  + (is equivalent to * )  vertical bar | u choice among a set of items:  true | false

© Franz J. Kurfess CLIPS 14 Tokens and Fields u tokens u groups of characters with special meaning for CLIPS,  e.g. ( ) \ separated by delimiters  ( space, tab, Carriage Return,...) u fields u particularly important group of tokens u CLIPS primitive data types v float, integer, symbol, string, external address, instance name, instance address

© Franz J. Kurfess CLIPS 15 CLIPS Primitive Data Types  float: decimal point ( 1.5 ) or exponential notation ( 3.7e10 )  integer: [sign] +  symbol: +  e.g. this-is-a-symbol, wrzlbrmft, u string: delimited by double quotes  e.g. "This is a string" u external address v address of external data structure returned by user-defined functions u instance name (used with Cool) v delimited by square brackets u instance address (used with Cool) v return values from functions

© Franz J. Kurfess CLIPS 16 Invoke / Exit CLIPS u entering CLIPS double-click on icon, or type program name(CLIPS) system prompt appears: CLIPS> u exiting CLIPS at the system prompt CLIPS> type (exit) u Note: enclosing parentheses are important; they indicate a command to be executed, not just a symbol

© Franz J. Kurfess CLIPS 17 Facts u elementary information items (“chunks”) u relation name u symbolic field used to access the information u often serves as identifier for the fact u slots (zero or more) u symbolic fields with associated values  deftemplate construct u used to define the structure of a fact v names and number of slots  deffacts u used to define initial groups of facts

© Franz J. Kurfess CLIPS 18 Examples of Facts u ordered fact (person-name Franz J. Kurfess) u deftemplate fact (deftemplate person "deftemplate example” (slot name) (slot age) (slot eye-color) (slot hair-color))

© Franz J. Kurfess CLIPS 19 Defining Facts u Facts can be asserted CLIPS> (assert (today is sunday)) u Facts can be listed CLIPS> (facts) f-0 (today is sunday) u Facts can be retracted CLIPS> (retract 0) CLIPS> (facts) [Jackson 1999]

© Franz J. Kurfess CLIPS 20 Instances u an instance of a fact is created by (assert (person (name "Franz J. Kurfess") (age 46) (eye-color brown) (hair-color brown)) )

© Franz J. Kurfess CLIPS 21 Initial Facts (deffacts kurfesses "some members of the Kurfess family" (person (name "Franz J. Kurfess") (age 46) (eye-color brown)(hair-color brown)) (person (name "Hubert Kurfess") (age 44) (eye-color blue)(hair-color blond)) (person (name "Bernhard Kurfess") (age 41) (eye-color blue)(hair-color blond)) (person (name "Heinrich Kurfess") (age 38) (eye-color brown)(hair-color blond)) (person (name "Irmgard Kurfess") (age 37) (eye-color green)(hair-color blond)) )

© Franz J. Kurfess CLIPS 22 Usage of Facts u adding facts u (assert +) u deleting facts u (retract +) u modifying facts  (modify ( )+ ) v retracts the original fact and asserts a new, modified fact u duplicating facts  (duplicate ( )+ ) v adds a new, possibly modified fact u inspection of facts  (facts) v prints the list of facts  (watch facts) v automatically displays changes to the fact list

© Franz J. Kurfess CLIPS 23 Rules u general format (defrule ["comment"] * ; left-hand side (LHS) ; or antecedent of the rule => *) ; right-hand side (RHS) ; or consequent of the rule

© Franz J. Kurfess CLIPS 24 Rule Components u rule header u defrule keyword, name of the rule, optional comment string u rule antecedent (LHS) u patterns to be matched against facts u rule arrow u separates antecedent and consequent u rule consequent (RHS) u actions to be performed when the rule fires

© Franz J. Kurfess CLIPS 25 Examples of Rules u simple rule (defrule birthday-FJK (person (name "Franz J. Kurfess") (age 46) (eye-color brown) (hair-color brown)) (date-today April-13-02) => (printout t "Happy birthday, Franz!") (modify 1 (age 47)) )

© Franz J. Kurfess CLIPS 26 Properties of Simple Rules u very limited: u LHS must match facts exactly u facts must be accessed through their index number u changes must be stated explicitly u can be enhanced through the use of variables

© Franz J. Kurfess CLIPS 27 Variables, Operators, Functions u variables  symbolic name beginning with a question mark " ? " u variable bindings v variables in a rule pattern (LHS) are bound to the corresponding values in the fact, and then can be used on the RHS v all occurrences of a variable in a rule have the same value v the left-most occurrence in the LHS determines the value v bindings are valid only within one rule u access to facts v variables can be used to make access to facts more convenient: ?age <- (age harry 17)

© Franz J. Kurfess CLIPS 28 Wildcards  question mark ? u matches any single field within a fact  multi-field wildcard $? u matches zero or more fields in a fact

© Franz J. Kurfess CLIPS 29 Field Constraints  not constraint ~ u the field can take any value except the one specified  or constraint | u specifies alternative values, one of which must match  and constraint & u the value of the field must match all specified values u mostly used to place constraints on the binding of a variable

© Franz J. Kurfess CLIPS 30 Mathematical Operators  basic operators ( +,-,*,/) and many functions (trigonometric, logarithmic, exponential) are supported u prefix notation u no built-in precedence, only left-to-right and parentheses u test feature u evaluates an expression in the LHS instead of matching a pattern against a fact u pattern connectives  multiple patterns in the LHS are implicitly AND -connected  patterns can also be explicitly connected via AND, OR, NOT u user-defined functions u external functions written in C or other languages can be integrated u Jess is tightly integrated with Java

© Franz J. Kurfess CLIPS 31 Examples of Rules u more complex rule (defrule find-blue-eyes (person (name ?name) (eye-color blue)) => (printout t ?name " has blue eyes." crlf))

© Franz J. Kurfess CLIPS 32 Example Rule with Field Constraints (defrule silly-eye-hair-match (person (name ?name1) (eye-color ?eyes1&blue|green) (hair-color ?hair1&~black)) (person (name ?name2&~?name1) (eye-color ?eyes2&~?eyes1) (hair-color ?hair2&red|?hair1)) => (printout t ?name1 " has "?eyes1 " eyes and " ?hair1 " hair."crlf) (printout t ?name2 " has "?eyes2 " eyes and " ?hair2 " hair."crlf))

© Franz J. Kurfess CLIPS 33 Using Templates (deftemplate student “a student record” (slot name (type STRING)) (slot age (type NUMBER) (default 18))) CLIPS> (assert (student (name fred))) (defrule print-a-student (student (name ?name) (age ?age)) => (printout t ?name “ is “ ?age) ) [Jackson 1999]

© Franz J. Kurfess CLIPS 34 An Example CLIPS Rule (defrule sunday “Things to do on Sunday” (salience 0); salience in the interval [-10000, 10000] (today is Sunday) (weather is sunny) => (assert (chore wash car)) (assert (chore chop wood)) ) [Jackson 1999]

© Franz J. Kurfess CLIPS 35 [Jackson 1999] Getting the Rules Started u The reset command creates a special fact CLIPS> (load “today.clp”) CLIPS> (facts) CLIPS> (reset) CLIPS> (facts) f-0 (initial-fact)... (defrule start (initial-fact) => (printout t “hello”) )

© Franz J. Kurfess CLIPS 36 Variables & Pattern Matching u Variables make rules more applicable (defrule pick-a-chore (today is ?day) (chore is ?job) => (assert (do ?job on ?day)) ) u if conditions are matched, then bindings are used [Jackson 1999]

© Franz J. Kurfess CLIPS 37 Retracting Facts from a Rule (defrule do-a-chore (today is ?day); ?day must have a consistent binding ?chore <- (do ?job on ?day) => (printout t ?job “ done”) (retract ?chore) ) u a variable must be assigned to the item for retraction [Jackson 1999]

© Franz J. Kurfess CLIPS 38 Pattern Matching Details u one-to-one matching (do ?job on ?day) (do washing on monday) u use of wild cards (do ? ? monday) (do ? on ?) (do ? ? ?day) (do $?) (do $? monday) (do ?chore $?when) [Jackson 1999]

© Franz J. Kurfess CLIPS 39 Defining Functions in CLIPS u Uses a LISP or Scheme-like syntax (deffunction function-name (arg... arg) action... action) (deffunction hypotenuse (?a ?b) (sqrt (+ (* ?a ?a) (* ?b ?b)))) (deffunction initialize () (clear) (assert (today is sunday))) [Jackson 1999]

© Franz J. Kurfess CLIPS 40 Defining Classes & Instances u defining the class CAR (defclass car (is-a user) (name) (made-by)) u defining an instance of CAR (make-instance corvette of car (made-by chevrolet)) [Jackson 1999]

© Franz J. Kurfess CLIPS 41 Concrete & Abstract Classes u some classes only exist for inheritance purposes Person ManWoman JackJill [Jackson 1999]

© Franz J. Kurfess CLIPS 42 Managing Instances u Commands to display instances CLIPS> (instances) [corvette] of car CLIPS> (send [corvette] print) [corvette] of car (made-by chevrolet) u Command to group instances (in a file) (definstances (corvette of car (made-by chevrolet)) (thunderbird of car (made-by ford))) [Jackson 1999]

© Franz J. Kurfess CLIPS 43 Clearing & Resetting Instances u deleting an instance CLIPS> (send [corvette] delete) u deleting all instances CLIPS> (unmake-instance *) u resetting creates an initial object CLIPS> (reset) CLIPS> (instances) [initial-object] of INITIAL-OBJECT [Jackson 1999]

© Franz J. Kurfess CLIPS 44 Manipulation of Constructs u show list of constructs (list-defrules), (list-deftemplates), (list-deffacts) v prints a list of the respective constructs u show text of constructs (ppdefrule ), (ppdeftemplate ), (ppdeffacts ) v displays the text of the construct (``pretty print'') u deleting constructs (undefrule ), (undeftemplate ), (undeffacts ) v deletes the construct (if it is not in use) u clearing the CLIPS environment (clear) v removes all constructs and adds the initial facts to the CLIPS environment

© Franz J. Kurfess CLIPS 45 Input / Output u print information (printout *) v logical device frequently is the standard output device t (terminal) u terminal input (read [ ]), (readline [ ]) v read an atom or string from a logical device v the logical device can be a file which must be open u open / close file (open [ ]), (close [ ]) v open /close file with as internal name u load / save constructs from / to file (load ), (save ) v backslash \ is a special character and must be ``quoted'' (preceded by a backslash \) v e.g. (load "B:\\clips\\example.clp")

© Franz J. Kurfess CLIPS 46 Program Execution u agenda u if all patterns of a rule match with facts, it is put on the agenda  (agenda) displays all activated rules u salience u indicates priority of rules u refraction u rules fire only once for a specific set of facts v prevents infinite loops  (refresh ) v reactivates rules

© Franz J. Kurfess CLIPS 47 Execution of a Program  (reset) prepares (re)start of a program: u all previous facts are deleted u initial facts are asserted u rules matching these facts are put on the agenda  (run [ ]) starts the execution u breakpoints  (set-break [ ]) v stops the execution before the rule fires,  continue with ( run ) u (remove-break [ ]) u (show-breaks)

© Franz J. Kurfess CLIPS 48 Watching u watching the execution  (watch ) prints messages about activities concerning a  (facts, rules, activations, statistics, compilation, focus, all)  (unwatch ) v turns the messages off

© Franz J. Kurfess CLIPS 49 Watching Facts, Rules and Activations u facts u assertions (add) and retractions (delete) u of facts u rules u message for each rule that is fired u activations u activated rules: matching antecedents u these rules are on the agenda

© Franz J. Kurfess CLIPS 50 More Watching... u statistics u information about the program execution u (number of rules fired, run time,... ) u compilation (default)  shows information for constructs loaded by (load) v Defining deftemplate:... v Defining defrule:... +j=j v +j, =j indicates the internal structure of the compiled rules »+jjoin added »=j join shared v important for the efficiency of the Rete pattern matching network u focus u used with modules u indicates which module is currently active

© Franz J. Kurfess CLIPS 51 User Interface u menu-based version u most relevant commands are available through windows and menus u command-line interface u all commands must be entered at the prompt u (don’t forget enclosing parentheses)

© Franz J. Kurfess CLIPS 52 Limitations of CLIPS u single level rule sets u in LOOPS, you could arrange rule sets in a hierarchy, embedding one rule set inside another, etc u loose coupling of rules and objects u rules can communicate with objects via message passing u rules cannot easily be embedded in objects, as in Centaur u CLIPS has no explicit agenda mechanism u the basic control flow is forward chaining u to implement other kinds of reasoning you have to manipulate tokens in working memory [Jackson 1999]

© Franz J. Kurfess CLIPS 53 Alternatives to CLIPS u JESS u see below u Eclipse u enhanced, commercial variant of CLIPS u has same syntax as CLIPS (both are based on ART) u supports goal-driven (i.e., backwards) reasoning u has a truth maintenance facility for checking consistency u can be integrated with C++ and dBase u new extension RETE++ can generate C++ header files u not related to the (newer) IBM Eclipse environment u NEXPERT OBJECT u another rule- and object-based system u has facilities for designing graphical interfaces u has a ‘script language’ for designing user front-end u written in C, runs on many platforms, highly portable [Jackson 1999]

© Franz J. Kurfess CLIPS 54 JESS u JESS stands for Java Expert System Shell u it uses the same syntax and a large majority of the features of CLIPS u tight integration with Java u can be invoked easily from Java programs u can utilize object-oriented aspects of Java u some incompatibilities with CLIPS u COOL replaced by Java classes u a few missing constructs v more and more added as new versions of JESS are released

© Franz J. Kurfess CLIPS 55 Post-Test

© Franz J. Kurfess CLIPS 56 Evaluation u Criteria

© Franz J. Kurfess CLIPS 57 CLIPS Summary u notation u similar to Lisp, regular expressions u facts  (deftemplate), (deffacts), assert / retract u rules  (defrule...), agenda u variables, operators, functions u advanced pattern matching u input/output  (printout...), (read...), (load...) u program execution  (reset), (run), breakpoints u user interface u command line or GUI

© Franz J. Kurfess CLIPS 58 Important Concepts and Terms u agenda u antecedent u assert u backward chaining u consequent u CLIPS u expert system shell u fact u field u forward chaining u function u inference u inference mechanism u instance u If-Then rules u JESS u knowledge base u knowledge representation u pattern matching u refraction u retract u rule u rule header u salience u template u variable u wild card

© Franz J. Kurfess CLIPS 59