1 / 30

Artificial Intelligence CLIPS Language Tutorial

Artificial Intelligence CLIPS Language Tutorial. Michael Scherger Department of Computer Science Kent State University. 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

Jeffrey
Download Presentation

Artificial Intelligence CLIPS Language Tutorial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related