; Simple facts (fact (parent abraham barack)) (fact (parent abraham clinton)) (fact (parent delano herbert)) (fact (parent fillmore abraham)) (fact (parent fillmore delano)) (fact (parent fillmore grover)) (fact (parent eisenhower fillmore)) ; Simple queries (query (parent abraham ?child)) ; Compound queries (query (parent ?who barack) (parent ?who clinton)) (query (parent ?who barack) (parent ?who herbert)) ; Compound facts (fact (child ?c ?p) (parent ?p ?c)) (query (child ?child fillmore)) (query (child herbert delano)) (query (child eisenhower ?parent)) ; Recursive facts (fact (ancestor ?a ?y) (parent ?a ?y)) (fact (ancestor ?a ?y) (parent ?a ?z) (ancestor ?z ?y)) (query (ancestor ?a herbert)) (query (ancestor ?a barack) (ancestor ?a herbert)) ; Hierarchical facts (fact (dog (name abraham) (color white))) (fact (dog (name barack) (color tan))) (fact (dog (name clinton) (color white))) (fact (dog (name delano) (color white))) (fact (dog (name eisenhower) (color tan))) (fact (dog (name fillmore) (color brown))) (fact (dog (name grover) (color tan))) (fact (dog (name herbert) (color brown))) (query (dog (name clinton) (color ?color))) (query (dog (name clinton) ?info)) (query (dog (name ?name) (color ?color)) (ancestor ?ancestor ?name) (dog (name ?ancestor) (color ?color))) (fact (pedigree ?name) (dog (name ?name) . ?details)) (fact (pedigree ?child ?parent . ?rest) (parent ?parent ?child) (pedigree ?parent . ?rest)) (query (pedigree barack . ?lineage)) (query (ancestor ?a clinton) (ancestor ?a ?brown-dog) (dog (name ?brown-dog) (color brown))) ; List manipulation (fact (car (?a . ?r) ?a)) (fact (cdr (?a . ?r) ?r)) (fact (append-to-form () ?x ?x)) (fact (append-to-form (?a . ?r) ?y (?a . ?z)) (append-to-form ?r ?y ?z)) (query (append-to-form (a b c) (d e) ?result)) (query (append-to-form ?left ?right (a b c d e)))