; Dogs (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)) (query (parent abraham ?child)) (fact (child ?c ?p) (parent ?p ?c)) (query (child ?child fillmore)) (query (child herbert delano)) (query (child eisenhower ?parent)) (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)) (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))) ; Append (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)))