Ai Clips Tutorial

30
November 2, 2004 AI: CLIPS Language Tutori al 1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State University

Transcript of Ai Clips Tutorial

Page 1: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 1

Artificial IntelligenceCLIPS Language Tutorial

Michael SchergerDepartment of Computer

ScienceKent State University

Page 2: Ai Clips Tutorial

November 2, 2004 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

Page 3: Ai Clips Tutorial

November 2, 2004 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

Page 4: Ai Clips Tutorial

November 2, 2004 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.

Page 5: Ai Clips Tutorial

November 2, 2004 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

Page 6: Ai Clips Tutorial

November 2, 2004 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

Page 7: Ai Clips Tutorial

November 2, 2004 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)

Page 8: Ai Clips Tutorial

November 2, 2004 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)

Page 9: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 9

Rules

• Syntax(defrule r-name “comment”

pattern-1…pattern-n

=>action-1…action-m)

Page 10: Ai Clips Tutorial

November 2, 2004 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

Page 11: Ai Clips Tutorial

November 2, 2004 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

Page 12: Ai Clips Tutorial

November 2, 2004 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

Page 13: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 13

Variables

• Variables start with a ?– E.g. ?age– Bindings are valid within a rule only

Page 14: Ai Clips Tutorial

November 2, 2004 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

Page 15: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 15

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

Page 16: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 16

Firing Rules

Page 17: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 17

Firing Rules

Page 18: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 18

Firing Rules (Matching)

Page 19: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 19

Firing Rules (Matching)

Page 20: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 20

Wildcard Matching

• ? – matches one

• $? – matches any number

• $?name– match and bind

Page 21: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 21

Variables, Variables, Variables

• Variables start with a ?

• Examples?x ?sensor ?color?location ?room ?size

Page 22: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 22

Variables, Variables, Variables

Page 23: Ai Clips Tutorial

November 2, 2004 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

Page 24: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 24

Wildcard Matching

Page 25: Ai Clips Tutorial

November 2, 2004 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))

Page 26: Ai Clips Tutorial

November 2, 2004 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))

Page 27: Ai Clips Tutorial

November 2, 2004 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)

Page 28: Ai Clips Tutorial

November 2, 2004 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

Page 29: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 29

Systematic Manner

Page 30: Ai Clips Tutorial

November 2, 2004 AI: CLIPS Language Tutorial 30

Templates