% Copyright (C) 2013 Peter Schueller %schema1. schema2 :- not schema1. nom(g1,n1,drain). mod(g1,n2,clogged). mod(g1,n3,with). nom(g1,n4,hair). nom(g1,n5,entity). act(g1,n6,remove) :- schema1. act(g1,n6,clean) :- schema2. nom(g1,n7,agent). dep(g1,d1,n1,n2,@set(subj)). dep(g1,d2,n3,n2,@set(mod)). dep(g1,d3,n4,n3,@set(obj)). dep(g1,d4,n7,n6,@set(subj)). dep(g1,d5,n5,n6,@set(obj)). dep(g1,d6,d1,d4,@set((nonvolatile_cause,meta))). % A32 print("The drain is clogged with hair. It has to be removed.") :- schema1. print("The drain is clogged with hair. It has to be cleaned.") :- schema2. % either n1 = n5 or n4 = n5 required_equivalence(g1,eq1,n1,n5). required_equivalence(g1,eq1,n4,n5). correct_result(g1,n4,n5) :- schema1. correct_result(g1,n1,n5) :- schema2.