Download
artificial intelligence clips language tutorial n.
Skip this Video
Loading SlideShow in 5 Seconds..
Artificial Intelligence CLIPS Language Tutorial PowerPoint Presentation
Download Presentation
Artificial Intelligence CLIPS Language Tutorial

Artificial Intelligence CLIPS Language Tutorial

381 Views Download Presentation
Download Presentation

Artificial Intelligence CLIPS Language Tutorial

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Artificial IntelligenceCLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State University AI: CLIPS Language Tutorial

  2. Introduction • CLIPS is a tool for building expert systems • Originally developed by the Software Technology Branch (STB) at NASA Johnson Space Center • First release in 1986 • Web location • http://www.ghg.net/clips/CLIPS.html AI: CLIPS Language Tutorial

  3. Introduction • CLIPS was designed to facilitate the development of software to model human knowledge • Facts • Rules • Deffunctions and generic functions • Object oriented programming AI: CLIPS Language Tutorial

  4. Starting / Exiting CLIPS • To start CLIPS (Windows)…just double click the CLIPSWin.exe icon • To exit CLIPS type (exit) at the CLIPS> prompt. AI: CLIPS Language Tutorial

  5. Facts • Fact Assertion • (assert (play Ivan tennis)) • (assert (duck)) • (assert (chair red)) • As facts are entered into the KB, they are assigned a Fact Index • (retract 1) • Removes fact 1 from the KB • (clear) • Removes all facts from the fact base and KB AI: CLIPS Language Tutorial

  6. Facts • Fact Assertion • (facts) • Dump the “fact base” • Fact identifier – “time tag” • f-0 • f-1 • Special fact • (initial-fact) • Is always F0 and is used to match the first/start rules AI: CLIPS Language Tutorial

  7. Facts • deffacts is a way of initializing the fact base (group of facts) • Example: (deffacts tennis-players “people who play tennis” (athelete Ivan very-good) (play Ivan tennis) (athelete Martina very-good) (play Martina tennis)) • Will cause the fact base to be initialized with the facts + (initial-fact) AI: CLIPS Language Tutorial

  8. Facts • When (reset) is entered, the result is… f-0 (initial-fact) f-1 (athelete Ivan very-good) f-2 (play Ivan tennis) f-3 (athelete Martina very-good) f-4 (play Martina tennis) AI: CLIPS Language Tutorial

  9. Rules • Syntax (defrule r-name “comment” pattern-1 … pattern-n => action-1 … action-m) AI: CLIPS Language Tutorial

  10. Rules • r-name is the rule name • comment must be surrounded by quotes • pattern-i is the antecedent pattern • action-j is the consequent pattern AI: CLIPS Language Tutorial

  11. Rules • The agenda is the list of rules that have been matched and are waiting execution • (agenda) will print out the rules • The agenda is prioritized by salience value • Salience is specified by the programmer and is from -10000 to 10000 • Default is 0 if (declare (salience 25)) is not in rule e.g. • Rules are selected for firing by salience • Two rules of same salience use LIFO to fire AI: CLIPS Language Tutorial

  12. Rules • (pprule r-name) will pretty print out the rule • (excise r-name) will remove a rule from the system AI: CLIPS Language Tutorial

  13. Variables • Variables start with a ? • E.g. ?age • Bindings are valid within a rule only AI: CLIPS Language Tutorial

  14. Fact Base Updates • (retract fact-id) • requires “fact” to be the index number which is sometime difficult to determine • Therefore use • variable with <- notation which binds the fact index number to the variable AI: CLIPS Language Tutorial

  15. Example (defrule become-adult ?child <- (child harry) (birthday harry August-15) ?age <- (age harry 17) (date today August-15) => (assert (adult harry)) (retract ?child) (retract ?age) (assert (age harry 18)) (printout t “harry is now an adult” crlf)) What facts are retracted? What facts are kept? What facts are generated? Changing harry to ?person and August-15 to ?date will generalize this rule Fact Base Updates AI: CLIPS Language Tutorial

  16. Firing Rules AI: CLIPS Language Tutorial

  17. Firing Rules AI: CLIPS Language Tutorial

  18. Firing Rules (Matching) AI: CLIPS Language Tutorial

  19. Firing Rules (Matching) AI: CLIPS Language Tutorial

  20. Wildcard Matching • ? • matches one • $? • matches any number • $?name • match and bind AI: CLIPS Language Tutorial

  21. Variables, Variables, Variables • Variables start with a ? • Examples ?x ?sensor ?color ?location ?room ?size AI: CLIPS Language Tutorial

  22. Variables, Variables, Variables AI: CLIPS Language Tutorial

  23. Wildcard Matching • Example • (name ? ?Kennedy) • will match • (name John Fitzgerald Kennedy) • (name ? $? SMITH) • will match • (name John SMITH) • (name Suzie Jane SMITH) • (name John James Jones SMITH) • but would not match • (name SMITH) • (name John Jones SMITH Rogers) • $?name is the same as the previous but the matches are bound to $?name AI: CLIPS Language Tutorial

  24. Wildcard Matching AI: CLIPS Language Tutorial

  25. Field Constraints • Negation ~ (defrule apply-heat (temperature water ~boil) => (adjust heat maximum); a function call (printout t “Turn the heat to the maximum setting” crlf)) AI: CLIPS Language Tutorial

  26. Field Constraints • OR | (defrule apply-heat (temperature water cold|cool|warm) => (adjust heat maximum); a function call (printout t “Turn the heat to a medium setting” crlf)) AI: CLIPS Language Tutorial

  27. Field Constraints • AND & • (temperature water ?temp&hot|boil) • will match either of the following facts • (temperature water hot) • (temperature water boil) AI: CLIPS Language Tutorial

  28. Mathematical Operators • Uses prefix notation as in Lisp (+ 3 4) (+ (* 3 4) (* 5 6)) • Use = as assignment for fact assertion on left hand side • (assert (answer = ( * 3 4 ) ) ) • put • (answer 12) • in the fact list AI: CLIPS Language Tutorial

  29. Systematic Manner AI: CLIPS Language Tutorial

  30. Templates AI: CLIPS Language Tutorial