(deffacts rudenii ; (parinte ) (parinte vasile m gheorghe ileana) (parinte sandu m simion zaraza) (parinte dan m vasile maria) (parinte mioara f vasile maria) (parinte crina f vasile maria) (parinte maria f sandu georgiana) (parinte sonia f sandu georgiana) (parinte mircea m sandu georgiana) (parinte ovidiu m dumitru sonia) (parinte dumitru m lica smaranda) ) (defrule gaseste-sora-input (declare (salience 10)) => (printout t "Sora cui? ") (bind ?x (read)) (assert (ce-sora ?x)) ) (defrule gaseste-sora ?a <- (ce-sora ?x) (parinte ?x ? ?tata ?mama) (parinte ?y&:(neq ?x ?y) f ?tata ?mama) => (printout t "sora lui " ?x " este " ?y crlf) ) (defrule gaseste-strabunica-input (declare (salience 10)) => (printout t "Strabunica cui? ") (bind ?x (read)) (assert (ce-strabunica ?x)) ) (defrule gaseste-strabunica-1 ?a <- (ce-strabunica ?x) (parinte ?x ? ?tata ?) (parinte ?tata ? ?bunic ?) (parinte ?bunic ? ? ?strabuna) => (printout t "strabunica lui " ?x " este " ?strabuna crlf) ) (defrule gaseste-strabunica-2 ?a <- (ce-strabunica ?x) (parinte ?x ? ? ?mama) (parinte ?mama ? ?bunic ?) (parinte ?bunic ? ? ?strabuna) => (printout t "strabunica lui " ?x " este " ?strabuna crlf) ) (defrule gaseste-strabunica-3 ?a <- (ce-strabunica ?x) (parinte ?x ? ?tata ?) (parinte ?tata ? ? ?bunica) (parinte ?bunica ? ? ?strabuna) => (printout t "strabunica lui " ?x " este " ?strabuna crlf) ) (defrule gaseste-strabunica-4 ?a <- (ce-strabunica ?x) (parinte ?x ? ? ?mama) (parinte ?mama ? ? ?bunica) (parinte ?bunica ? ? ?strabuna) => (printout t "strabunica lui " ?x " este " ?strabuna crlf) )