1 / 19

PRAKTIKUM _# 5 Expert System

PRAKTIKUM _# 5 Expert System . CLIPS [ lanjutan ] . WildCard Pattern. WildCard Pattern. Used to take the place of a symbol on the left hand side of a rule. ? -> match any one symbol $? -> match zero or more symbols ?name -> only match one symbols. bands.CLP.

hedy
Download Presentation

PRAKTIKUM _# 5 Expert System

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. PRAKTIKUM _#5Expert System CLIPS [lanjutan]

  2. WildCard Pattern

  3. WildCard Pattern • Used to take the place of a symbol on the left hand side of a rule. • ? -> match any one symbol • $? -> match zero or more symbols • ?name -> only match one symbols

  4. bands.CLP • (deftemplatemember_bands (multislot member-of)) • (deffactsnama_band (member_bands (member-of beatlesjohn_lennonpaul_mccartneygeorge_harrisonringo_starr)) (member_bands (member-of who roger_daltreypete_townsendkeith_moon)) (member_bands (member-of ebtgtracey_thornben_watt))) • (defrule bands (member_bands (member-of ?groupband ?member1 $?)) => (printout t "there is a band called " ?groupband “anggota1 adalah“ ?member1 crlf))

  5. bands_member.CLP • (deftemplatemember_bands (multislot member-of)) • (deffactsnama_band (member_bands (member-of beatlesjohn_lennonpaul_mccartneygeorge_harrisonringo_starr)) (member_bands (member-of who roger_daltreypete_townsendkeith_moon)) (member_bands (member-of ebtgtracey_thornben_watt))) • (defrule band-members (member_bands (member-of ?band $? ?member $?)) => (printout t ?member " is a member of " ?band crlf))

  6. multi_member.CLP • (deftemplatemember_bands (multislot member-of)) • (deffactsnama_band (member_bands (member-of beatlesjohn_lennonpaul_mccartneygeorge_harrisonringo_starr)) (member_bands (member-of who roger_daltreypete_townsendkeith_moon)) (member_bands (member-of ebtgtracey_thornben_watt))) • (defrule band-members (member_bands (member-of ?band $?members)) => (printout t "The members of " ?band " are " $?members crlf))

  7. VARIABEL

  8. variabel.CLP (deftemplate variabel (slot number)) (deftemplate jumlah (slot total)) (deffacts nilai (variabel (number 4)) (variabel (number 6))) (defrule addup (variabel (number ?x)) (variabel (number ?y)) => (bind ?total (+ ?x ?y)) (printout t ?x " + " ?y " = " ?total crlf) (assert (jumlah (total ?total))))

  9. defglobal.CLP (defglobal ?*var1* = 17 ?*oranges* = "seven") (deftemplate variabel (slot number)) (deftemplate jumlah (slot total)) (deffacts nilai (variabel (number 24))) (defrule addup (variabel (number ?x)) => (bind ?total (- ?x ?*var1*)) (printout t ?x " - " ?*var1* " = " ?total "(" ?*oranges* ")" crlf) (assert (jumlah (total ?total))))

  10. Function Templates and Conditions

  11. birthday.CLP (defrule birthday_is ?ulang_tahun <- (ultah (birthday ?name)) ?data-fact <- (personal-data (name ?name) (age ?age)) => (modify ?data-fact (age (+ ?age 1))) (retract ?ulang_tahun))

  12. tes_weight.CLP (deftemplate personal-data (slot name) (slot age) (slot weight) (slot height) (multislot blood-pressure)) (deffacts people (personal-data (name Andrew) (age 20) (weight 180) (height 188) (blood-pressure 130 80)) (personal-data (name Cyril) (age 63) (weight 70) (height 1678) (blood-pressure 180 90))) (defrule lardy-bugger (personal-data (name ?name) (weight ?weight)) (test (> ?weight 100)) => (printout t ?name " weighs " ?weight " kg - the fat sod." crlf))

  13. print_age.CLP (deftemplate personal-data (slot name)(slot age)(slot weight)(slot height)(multislot blood-pressure)) (deffacts people (personal-data (name Andrew) (age 120) (weight 80) (height 188) (blood-pressure 130 80)) (personal-data (name Cyril) (age 63) (weight 70) (height 1678) (blood-pressure 180 90))) (defrule print-ages (and (personal-data (name ?name) (age ?age)) (personal-data (name ?name) (weight ?weight))) => (printout t ?name " weighs " ?weight " at " ?age " years old." crlf))

  14. umbrella.CLP (deftemplate umbrella (slot weather)) (deffacts cuaca (umbrella (weather raining)) (umbrella (weather snowing)) ; mencobadihilangkanfaktaini (umbrella (weather sunny))) (defrule take-an-umbrella (or (umbrella (weather raining)) (umbrella (weather snowing))) => (printout t "Take an umbrella" crlf)) (defrulenotTake-an-umbrella (not (umbrella (weather sunny))) => (printout t “Not Take an umbrella" crlf))

  15. not_birthday.CLP (deftemplate personal-data (slot name) (slot age) (slot weight) (slot height) (multislot blood-pressure)) (deftemplate ultah (slot birthday)) (deffacts is_ultah (ultah (birthday Andrew))) (deffacts people (personal-data (name Andrew) (age 120) (weight 80) (height 188) (blood-pressure 130 80)) (personal-data (name Cyril) (age 63) (weight 70) (height 1678) (blood-pressure 180 90))) (defrule not-birthday (personal-data (name ?name) (weight ?weight)) (not (ultah (birthday ?name))) => (printout t "It's not " ?name "'s birthday" crlf))

  16. pointless.CLP (defrule pointless (test (> 6 5)) => (printout t "Six is indeed greater than five" crlf))

  17. exist_forall.CLP (deftemplate personal-data (slot name)(slot age)(slot weight)(slot height)(multislot blood-pressure)) (deffacts people (personal-data (name Andrew) (age 20) (weight 80) (height 188) (blood-pressure 130 80)) (personal-data (name Cyril) (age 63) (weight 70) (height 1678) (blood-pressure 180 90))) (defrule person-exists (personal-data (name ?name)) => (printout t "Rule person exists reports there is a person called " ?name crlf))

  18. Lanjutan...... (defrule are-there-people (exists (personal-data (name ?name))) => (printout t "Rule are-there-people reports there is at least one person" crlf)) (defrule check-each-person (forall (personal-data (name ?name) (age ?umur)) (personal-data (name ?name) (weight ?berat))) => (printout t "Rule check-each-person reports that all persons have a name" crlf))

  19. Summary • (deftemplate (slot slotname1) (slot slotname1)) • (and (predicate1) (predicate2)) • (or (predicate1) (predicate2)) • (not (predicate1)) • (test (predicate1)) • (exists (pattern)) • (forall (pattern1) (pattern2) )

More Related