;;; Family relationship data for HW5. A form: ;;; ( x y) is interpretted as x is a of y. (setf *operational-predicates* '(married parent male female)) ;;; An all American family (no divorce, no illegitimate children) (index-facts '((male john)(male tom)(male fred)(male harry)(male jack) (male rich)(male mike)(male steve)(male scott) (female mary)(female alice)(female linda)(female jane) (female rachel)(female valerie)(female barbara)(female cindy) (female donna)(married john mary)(parent john tom)(parent mary tom) (parent john linda)(parent mary linda)(married tom alice) (married linda steve)(parent alice valerie)(parent tom valerie) (parent alice barbara)(parent tom barbara)(parent linda jack) (parent steve jack)(parent steve rich)(parent linda rich) (married barbara scott)(parent scott cindy)(parent barbara cindy) (parent jack mike)(married jack donna)(parent donna mike) (married valerie fred)(parent fred jane)(parent valerie jane) (married rich rachel)(parent rich harry)(parent rachel harry))) ;;; Rules for inferring family relationships (index-brules '((<- (father ?x ?y) (parent ?x ?y)(male ?x)) (<- (married ?x ?y)(married ?y ?x)) (<- (mother ?x ?y) (parent ?x ?y)(female ?x)) (<- (married ?x ?y) (married ?y ?x)) (<- (husband ?x ?y) (married ?x ?y)(male ?x)) (<- (wife ?x ?y) (married ?x ?y)(female ?x)) (<- (son ?x ?y) (parent ?y ?x) (male ?x)) (<- (daughter ?x ?y) (parent ?y ?x)(female ?x)) (<- (sibling ?x ?y)(father ?f ?x)(father ?f ?y) (mother ?m ?x)(mother ?m ?y)) (<- (brother ?x ?y) (sibling ?x ?y)(male ?x)) (<- (sister ?x ?y) (sibling ?x ?y)(female ?x)) (<- (sister-in-law ?x ?y)(brother ?b ?y)(married ?x ?b)) (<- (brother-in-law ?x ?y)(sister ?s ?y)(married ?x ?s)) (<- (mother-in-law ?x ?y)(mother ?x ?s)(married ?s ?y)) (<- (father-in-law ?x ?y)(father ?x ?s)(married ?s ?y)) (<- (uncle ?x ?y) (parent ?p ?y)(brother ?x ?p)) (<- (uncle ?x ?y) (parent ?p ?y)(sister ?s ?p)(husband ?x ?s)) (<- (aunt ?x ?y) (parent ?p ?y) (sister ?x ?p)) (<- (aunt ?x ?y) (parent ?p ?y)(brother ?b ?p)(wife ?x ?b)) (<- (cousin ?x ?y) (parent ?p ?x)(parent ?o ?y)(sibling ?p ?o)) (<- (grandmother ?x ?y) (parent ?p ?y)(mother ?x ?p)) (<- (grandfather ?x ?y) (parent ?p ?y)(father ?x ?p)) (<- (ancestor ?x ?y) (parent ?x ?y)) (<- (ancestor ?x ?y) (parent ?p ?y)(ancestor ?x ?p)) (<- (descendant ?x ?y) (ancestor ?y ?x)))) (setf questions '((grandfather john barbara)(uncle steve valerie)(brother tom linda) (sister valerie barbara)(brother jack rich)(sister linda tom) (sister-in-law donna rich)(mother-in-law mary steve) (uncle steve barbara)(sister-in-law alice linda)(mother-in-law linda donna) (aunt alice rich)(aunt alice jack)(grandfather john valerie) (ancestor john cindy)(ancestor mary mike)(cousin valerie jack) (cousin valerie rich)(mother-in-law alice scott)(uncle fred cindy) (aunt rachel mike)(sister-in-law rachel jack))) ;;; An adittional set of test questions which test the most "operationalizable" ;;; predicates (setf questions2 '((uncle steve valerie) (sister-in-law donna rich) (uncle steve barbara)(sister-in-law alice linda) (aunt alice rich)(aunt alice jack)(uncle fred cindy) (aunt rachel mike)(sister-in-law rachel jack)))