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

November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

Dec 16, 2015

Download

Documents

Grace Marshall
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 1

Artificial IntelligenceCLIPS Language Tutorial

Michael SchergerDepartment of Computer

ScienceKent State University

Page 2: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 9

Rules

• Syntax(defrule r-name “comment”

pattern-1…pattern-n

=>action-1…action-m)

Page 10: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 16

Firing Rules

Page 17: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 17

Firing Rules

Page 18: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 18

Firing Rules (Matching)

Page 19: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 19

Firing Rules (Matching)

Page 20: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 20

Wildcard Matching

• ? – matches one

• $? – matches any number

• $?name– match and bind

Page 21: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 21

Variables, Variables, Variables

• Variables start with a ?

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

Page 22: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 22

Variables, Variables, Variables

Page 23: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 24

Wildcard Matching

Page 25: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

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: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 29

Systematic Manner

Page 30: November 2, 2004AI: CLIPS Language Tutorial1 Artificial Intelligence CLIPS Language Tutorial Michael Scherger Department of Computer Science Kent State.

November 2, 2004 AI: CLIPS Language Tutorial 30

Templates