(defrule good (logical (a)) (logical (b)) => (assert (z)) )
(defrule bad (d) (logical (a)) (logical (b)) => (assert (z)) )
(defrule bad (logical (a)) (d) (logical (b)) => (assert (z)) )
(defrule bad (or (d) (logical (a))) (logical (b)) => (assert (z)) )
Code : cardiac_risk.zip
(deftemplate personal-data (slot name) (slot weight) (slot smoker) ) (deffacts people (personal-data (name Adam) (weight 60) (smoker no)) (personal-data (name Brenda) (weight 120) (smoker yes)) (personal-data (name Charles) (weight 120) (smoker yes)) ) (defrule cardiac-risk (logical (personal-data (name ?name) (smoker yes) (weight ?weight))) (logical (test (> ?weight 100))) => (assert (cardiac_risk ?name)) (printout t ?name " is in the group of high cardiac risk" crlf) )