(load-function Query) (deftemplate male "" (declare (ordered TRUE))) (deftemplate female "" (declare (ordered TRUE))) (deftemplate parent "" (declare (ordered TRUE))) (deftemplate related "" (declare (ordered TRUE))) (deffacts initial-facts (female annie) (female mary) (female sue) (female kerry) (female alice) (female carol) (female peggy) (parent annie mary) (parent annie sue) (parent mary kerry) (parent kerry alice) (parent kerry carol) (parent alice peggy) ) (defrule related1 (or (and (parent ?z ?x) (parent ?z ?y) ) (parent ?x ?y) (parent ?y ?x) ) (test (neq ?x ?y)) => (assert (related1 ?x ?y)) ) (defrule related2 (or (parent ?x ?y) (parent ?y ?x) (and (parent ?z ?x) (parent ?z ?y) ) (and (parent ?p ?y) (parent ?p ?x) ) ) (test (neq ?x ?y)) => (assert (related2 ?x ?y)) ) (defrule related3 (or (parent ?x ?y) (parent ?y ?x) (and (parent ?z ?x) (parent ?z ?y) ) ) (test (neq ?x ?y)) => (assert (related3 ?x ?y)) ) (defrule related4 (or (and (parent ?z ?x) (parent ?z ?y) (test (neq ?x ?y)) ) (parent ?x ?y) (parent ?y ?x) ) => (assert (related4 ?x ?y)) ) (reset) (run) ;;(facts) (query related1) (query related2) (query related3) (query related4) /* (related1) (related1 peggy peggy) (related1 alice peggy) (related1 peggy alice) (related1 carol carol) (related1 alice carol) (related1 carol alice) (related1 kerry carol) (related1 carol kerry) (related1 alice alice) (related1 kerry alice) (related1 alice kerry) (related1 kerry kerry) (related1 kerry mary) (related1 mary kerry) (related1 sue sue) (related1 sue mary) (related1 mary sue) (related1 annie sue) (related1 sue annie) (related1 mary mary) (related1 annie mary) (related1 mary annie) (related2) (related2 peggy peggy) (related2 alice peggy) (related2 peggy alice) (related2 carol carol) (related2 alice carol) (related2 carol alice) (related2 carol kerry) (related2 kerry carol) (related2 alice alice) (related2 kerry alice) (related2 alice kerry) (related2 kerry kerry) (related2 mary kerry) (related2 kerry mary) (related2 sue sue) (related2 mary sue) (related2 sue mary) (related2 annie sue) (related2 sue annie) (related2 mary mary) (related2 mary annie) (related2 annie mary) (related3) (related3 peggy alice) (related3 alice peggy) (related3 carol alice) (related3 alice carol) (related3 carol kerry) (related3 kerry carol) (related3 kerry alice) (related3 alice kerry) (related3 mary kerry) (related3 kerry mary) (related3 sue mary) (related3 mary sue) (related3 annie sue) (related3 sue annie) (related3 annie mary) (related3 mary annie) (related4) (related4 peggy alice) (related4 alice peggy) (related4 carol alice) (related4 alice carol) (related4 kerry carol) (related4 carol kerry) (related4 kerry alice) (related4 alice kerry) (related4 kerry mary) (related4 mary kerry) (related4 sue mary) (related4 mary sue) (related4 annie sue) (related4 sue annie) (related4 mary annie) (related4 annie mary) */