% % PFC is a language extension for prolog.. there is so much that can be done in this language extension to Prolog % % props(Obj,[height(ObjHt)]) == t(height,Obj,ObjHt) == rdf(Obj,height,ObjHt) == t(height(Obj,ObjHt)). % padd(Obj,[height(ObjHt)]) == prop_set(height,Obj,ObjHt,...) == ain(height(Obj,ObjHt)) % [pdel/pclr](Obj,[height(ObjHt)]) == [del/clr](height,Obj,ObjHt) == [del/clr]svo(Obj,height,ObjHt) == [del/clr](height(Obj,ObjHt)) % keraseall(AnyTerm). % % ANTECEEDANT CONSEQUENT % % P = test nesc true assert(P),retract(~P) , enable(P). % ~P = test nesc false assert(~P),retract(P), disable(P). % % ~ ~(P) = rewrite_to \+ ~(P) rewrite_to \+ ~(P) % ~ \+(P) = rewrite_to (P) rewrite_to (P) % \+ ~(P) = test impossiblity is unknown retract(~P). % \+(P) = test P is unknown retract(P) % % Dec 13, 2035 % Douglas Miles % was_module(sanity_birdt,[]). %# Tests Finin original defeasabilty system is working over 2nd order :- include(test_header). :- file_begin(pfc). (tType(COL)==>{kb_local(COL/2)},% functorDeclares(COL), (t(COL,ext,X)<==>instanceOf(X,COL))). tType(tFly). tType(tCanary). tType(tPenguin). tType(tBird). :- mpred_test(predicate_property(tBird(ext,_),dynamic)). subClassOf(C1,C2)==> (instanceOf(X,C1)==>instanceOf(X,C2)). subClassOf(tCanary,tBird). subClassOf(tPenguin,tBird). :- dmsg("chilly is a penguin."). tPenguin(ext,iChilly). :- mpred_test((tBird(ext,iChilly))). :- dmsg("tweety is a canary."). tCanary(ext,iTweety). :- mpred_test((tBird(ext,iTweety))). :- dmsg("birds fly by default."). mdefault(( tBird(ext,X) ==> tFly(ext,X) )). :- mpred_test((tBird(ext,iTweety))).