;; ;; Rete network example ;; ;; initialization (clear) (reset) ;; ;; define template ;; (deftemplate x (slot a)) (deftemplate y (slot b)) (deftemplate z (slot c)) ;; ;; define rules ;; (defrule rule-1-2 (x (a ?v1)) (y (b ?v1)) => (printout t "rule 1.2: x.a =" ?v1 " is equal to y.b=" ?v1 crlf) (assert (z (c ?v1))) (printout t "change value of z to " ?v1 crlf) ) (defrule rule-2-2 (x (a ?v2)) (y (b ?v2)) (z (c ?v2)) => (printout t "reule 2.2: x.a=y.b=z.c=" ?v2 crlf) ) ;; ;; facts ;; (assert (x (a 12)) (y (b 12)) (z (c 37)) ) ;; (printout t "===Rete Chaining Test===" crlf) (run)