Artificial intelligence clips language tutorial
Download
1 / 30

- PowerPoint PPT Presentation


  • 315 Views
  • Updated On :

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - Jeffrey


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Artificial intelligence clips language tutorial l.jpg

Artificial IntelligenceCLIPS Language Tutorial

Michael Scherger

Department of Computer Science

Kent State University

AI: CLIPS Language Tutorial


Introduction l.jpg
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


Introduction3 l.jpg
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


Starting exiting clips l.jpg
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


Facts l.jpg
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


Facts6 l.jpg
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


Facts7 l.jpg
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


Facts8 l.jpg
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


Rules l.jpg
Rules

  • Syntax

    (defrule r-name “comment”

    pattern-1

    pattern-n

    =>

    action-1

    action-m)

AI: CLIPS Language Tutorial


Rules10 l.jpg
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


Rules11 l.jpg
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


Rules12 l.jpg
Rules

  • (pprule r-name) will pretty print out the rule

  • (excise r-name) will remove a rule from the system

AI: CLIPS Language Tutorial


Variables l.jpg
Variables

  • Variables start with a ?

    • E.g. ?age

    • Bindings are valid within a rule only

AI: CLIPS Language Tutorial


Fact base updates l.jpg
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


Fact base updates15 l.jpg

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


Firing rules l.jpg
Firing Rules

AI: CLIPS Language Tutorial


Firing rules17 l.jpg
Firing Rules

AI: CLIPS Language Tutorial


Firing rules matching l.jpg
Firing Rules (Matching)

AI: CLIPS Language Tutorial


Firing rules matching19 l.jpg
Firing Rules (Matching)

AI: CLIPS Language Tutorial


Wildcard matching l.jpg
Wildcard Matching

  • ?

    • matches one

  • $?

    • matches any number

  • $?name

    • match and bind

AI: CLIPS Language Tutorial


Variables variables variables l.jpg
Variables, Variables, Variables

  • Variables start with a ?

  • Examples

    ?x ?sensor ?color

    ?location ?room ?size

AI: CLIPS Language Tutorial


Variables variables variables22 l.jpg
Variables, Variables, Variables

AI: CLIPS Language Tutorial


Wildcard matching23 l.jpg
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


Wildcard matching24 l.jpg
Wildcard Matching

AI: CLIPS Language Tutorial


Field constraints l.jpg
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


Field constraints26 l.jpg
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


Field constraints27 l.jpg
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


Mathematical operators l.jpg
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


Systematic manner l.jpg
Systematic Manner

AI: CLIPS Language Tutorial


Templates l.jpg
Templates

AI: CLIPS Language Tutorial


ad