Download presentation
Presentation is loading. Please wait.
Published byGrace Marshall Modified over 9 years ago
1
November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State University
2
November 2, 2004AI: CLIPS Language Tutorial2 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.htmlhttp://www.ghg.net/clips/CLIPS.html
3
November 2, 2004AI: CLIPS Language Tutorial3 Introduction CLIPS was designed to facilitate the development of software to model human knowledge –Facts –Rules –Deffunctions and generic functions –Object oriented programming
4
November 2, 2004AI: CLIPS Language Tutorial4 Starting / Exiting CLIPS To start CLIPS (Windows)…just double click the CLIPSWin.exe icon To exit CLIPS type (exit) at the CLIPS> prompt.
5
November 2, 2004AI: CLIPS Language Tutorial5 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
6
November 2, 2004AI: CLIPS Language Tutorial6 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
7
November 2, 2004AI: CLIPS Language Tutorial7 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)
8
November 2, 2004AI: CLIPS Language Tutorial8 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)
9
November 2, 2004AI: CLIPS Language Tutorial9 Rules Syntax (defruler-name“comment” pattern-1 … pattern-n => action-1 … action-m)
10
November 2, 2004AI: CLIPS Language Tutorial10 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
11
November 2, 2004AI: CLIPS Language Tutorial11 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
12
November 2, 2004AI: CLIPS Language Tutorial12 Rules (pprule r-name) will pretty print out the rule (excise r-name) will remove a rule from the system
13
November 2, 2004AI: CLIPS Language Tutorial13 Variables Variables start with a ? –E.g. ?age –Bindings are valid within a rule only
14
November 2, 2004AI: CLIPS Language Tutorial14 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
15
November 2, 2004AI: CLIPS Language Tutorial15 Fact Base Updates 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
16
November 2, 2004AI: CLIPS Language Tutorial16 Firing Rules
17
November 2, 2004AI: CLIPS Language Tutorial17 Firing Rules
18
November 2, 2004AI: CLIPS Language Tutorial18 Firing Rules (Matching)
19
November 2, 2004AI: CLIPS Language Tutorial19 Firing Rules (Matching)
20
November 2, 2004AI: CLIPS Language Tutorial20 Wildcard Matching ? –matches one $? –matches any number $?name –match and bind
21
November 2, 2004AI: CLIPS Language Tutorial21 Variables, Variables, Variables Variables start with a ? Examples ?x?sensor?color ?location?room?size
22
November 2, 2004AI: CLIPS Language Tutorial22 Variables, Variables, Variables
23
November 2, 2004AI: CLIPS Language Tutorial23 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
24
November 2, 2004AI: CLIPS Language Tutorial24 Wildcard Matching
25
November 2, 2004AI: CLIPS Language Tutorial25 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))
26
November 2, 2004AI: CLIPS Language Tutorial26 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))
27
November 2, 2004AI: CLIPS Language Tutorial27 Field Constraints AND & (temperature water ?temp&hot|boil) –will match either of the following facts (temperature water hot) (temperature water boil)
28
November 2, 2004AI: CLIPS Language Tutorial28 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
29
November 2, 2004AI: CLIPS Language Tutorial29 Systematic Manner
30
November 2, 2004AI: CLIPS Language Tutorial30 Templates
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.