% FILE: tribondv1.pro % IMPORT COMPARISON CODE :- consult('comparisons.pro'). % TRIBOND SOLVER tribond(A,B,C,CommonThing) :- simple_pure_tribond(A,B,C,CommonThing). tribond(A,B,C,CommonThing) :- simple_mixed_tribond(A,B,C,CommonThing). % SIMPLE PURE TRIBOND SOLVER simple_pure_tribond(A,B,C,CommonThing) :- simple_pure_isa_tribond(A,B,C,CommonThing). simple_pure_tribond(A,B,C,CommonThing) :- simple_pure_has_tribond(A,B,C,CommonThing). simple_pure_tribond(A,B,C,CommonThing) :- simple_pure_vip_tribond(A,B,C,CommonThing). % SIMPLE PURE ISA TRIBOND SOLVER simple_pure_isa_tribond(A,B,C,CommonThing) :- isa(A,CommonThing), isa(B,CommonThing), isa(C,CommonThing). % SIMPLE PURE HAS TRIBOND SOLVER simple_pure_has_tribond(A,B,C,CommonThing) :- has(A,CommonThing), has(B,CommonThing), has(C,CommonThing). % SIMPLE PURE VIP TRIBOND SOLVER simple_pure_vip_tribond(A,B,C,CommonThing) :- vip(A,CommonThing), vip(B,CommonThing), vip(C,CommonThing). % SIMPLE MIXED TRIBOND SOLVER simple_mixed_tribond(A,B,C,CommonThing) :- isa(A,CommonThing),has(B,CommonThing),vip(C,CommonThing). simple_mixed_tribond(A,B,C,CommonThing) :- isa(A,CommonThing),vip(B,CommonThing),has(C,CommonThing). simple_mixed_tribond(A,B,C,CommonThing) :- has(A,CommonThing),isa(B,CommonThing),vip(C,CommonThing). simple_mixed_tribond(A,B,C,CommonThing) :- has(A,CommonThing),vip(B,CommonThing),isa(C,CommonThing). simple_mixed_tribond(A,B,C,CommonThing) :- vip(A,CommonThing),isa(B,CommonThing),has(C,CommonThing). simple_mixed_tribond(A,B,C,CommonThing) :- vip(A,CommonThing),has(B,CommonThing),isa(C,CommonThing). % FIND ALL PROBLEMS problems :- concepts(SC1,SC2,SC3), distinct(SC1,SC2,SC3), ordered(SC1,SC2,SC3), write(problem(SC1,SC2,SC3)),nl, fail. problems. % FIND ALL TRIBONDS tribonds :- concepts(SC1,SC2,SC3), distinct(SC1,SC2,SC3), ordered(SC1,SC2,SC3), tribond(SC1,SC2,SC3,CC), write(tribond(SC1,SC2,SC3,CC)),nl, fail. tribonds. % UTILITIES concepts(A,B,C) :- concept(A),concept(B),concept(C). distinct(A,B,C) :- not(A=B),not(A=C),not(B=C). ordered(A,B,C) :- aless(A,B),aless(B,C).