1 / 20

PRAKTIKUM 0 4 SISTEM PAKAR

PRAKTIKUM 0 4 SISTEM PAKAR. 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. phone .CLP. (deftemplate person

dick
Download Presentation

PRAKTIKUM 0 4 SISTEM PAKAR

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 04SISTEM PAKAR 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. phone.CLP (deftemplate person (multislot name) (slot phone-number)) (deffacts orang (person (name dimpy adira ratu) (phone-number 12345)) (person (name fani vale rina) (phone-number 67890))) (defrule print-telephone-number (person (name ? ? ?) (phone-number ?phone)) => (printout t ?phone crlf))

  5. 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 ?band $?)) => (printout t "there is a band called " ?band crlf))

  6. 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))

  7. 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))

  8. VARIABEL

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

  10. 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))))

  11. Function Templates and Conditions

  12. 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))

  13. 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))

  14. 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))

  15. umbrella.CLP (deftemplate umbrella (slot weather)) (deffacts cuaca (umbrella (weather raining)) (umbrella (weather snowing)) (umbrella (weather sunny))) (defrule take-an-umbrella (or (umbrella (weather raining)) (umbrella (weather snowing))) => (printout t "Take an umbrella" crlf))

  16. 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))

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

  18. 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))

  19. 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))

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

More Related