:- dynamic(not/1). :- include(library(pfc_header_3_0)). :- dynamic(fly/1). % -*-Prolog-*- % here is an example which defines default facts and rules. Will it work? (default(P)/pfcAtom(P)) ==> (~not(P) ==> P). default((P ==> Q))/pfcAtom(Q) ==> (P, ~not(Q) ==> Q). % birds fly by default. ==> default((bird(X) ==> fly(X))). % here's one way to do an genlz hierarchy. % genlz = subclass. genlz(C1,C2) ==> {P1 =.. [C1,X], P2 =.. [C2,X], dynamic(C1/1),dynamic(C2/1)}, (P1 ==> P2). ==> genlz(canary,bird). ==> genlz(penguin,bird). % penguins do not fly. penguin(X) ==> not(fly(X)). % chilly is a penguin. ==> penguin(chilly). % tweety is a canary. ==> canary(tweety).