2:- set_module(class(development)). 3:- '$set_source_module'(baseKB). 4:- use_module(library(pfc_lib)). 5:- mpred_unload_file. 6:- ensure_abox(baseKB). 7:- set_fileAssertMt(baseKB). 9:- prolog_load_context(file,F), ain(mpred_unload_option(F,never)).
46:- system:op(1199,fx,('==>')). 47:- system:op(1190,xfx,('::::')). 48:- system:op(1180,xfx,('==>')). 49:- system:op(1170,xfx,('<==>')). 50:- system:op(1160,xfx,('<-')). 51
52:- system:op(1150,xfx,('=>')). 53:- system:op(1140,xfx,('<=')). 54:- system:op(1130,xfx,('<=>')). 55
56
57:- system:op(600,yfx,('&')). 58:- system:op(600,yfx,('v')). 59:- system:op(350,xfx,('xor')). 60:- system:op(300,fx,('~')). 61:- system:op(300,fx,('-')). 62
64:- mpred_unload_file. 65:- style_check(-discontiguous). 66
67:- kb_shared(startup_option/2). 68
69:- meta_predicate(without_depth_limit(0)). 70without_depth_limit(G):- call_with_depth_limit(G,72057594037927935,Result),sanity(Result\==depth_limit_exceeded).
71
79
80
82:- mpred_unload_file. 83:- begin_pfc. 86
87:- ensure_abox(baseKB). 88
89
90
91
92completelyAssertedCollection(tInferInstanceFromArgType).
93completelyAssertedCollection(ttNotTemporalType).
101prologNegByFailure(prologNegByFailure).
102prologNegByFailure(quotedIsa/3).
103~prologNegByFailure(isa/2).
104
105% :- listing( ~ / 1).
106
107
108/*
109==>(someTimesBuggy2ndOrder,
110((someTimesBuggy2ndOrder,genlPreds(C1,C2),arity(C1,2)) ==>
111 {P1 =.. [C1,X,Y],
112 P2 =.. [C2,X,Y]},
113 clif(P1 => P2))).
114
115someTimesBuggy2ndOrder ==>
116((genlPreds(C1,C2),arity(C1,3)) ==>
117 {P1 =.. [C1,X,Y,Z],
118 P2 =.. [C2,X,Y,Z]},
119 clif(P1 => P2)).
120
121*/
122% tSet(C)/(atom(C),TCI=..[C,I]) ==> (arity(C,1),mpred_univ(C,I,TCI), ... )
123
124
125% :- prolog.
126% tPred
127
128
129==> completelyAssertedCollection(isEach(tCol,tPred,pfcControlled)).
130
131ttRelationType(C)==>completelyAssertedCollection(C).
132
134
135:- dynamic(baseKB:mudWielding/2). 136
137prologMultiValued(P)==> \+ prologSingleValued(P).
138prologSingleValued(P)==> \+ prologMultiValued(P).
139
140~(ttExpressionType(prologEquality)).
141ttRelationType(prologEquality).
142prologEquality(mudEquals/2).
143prologEquality(('=')/2).
144prologEquality(('==')/2).
145
146arity(',',2).
147
148:- nortrace. 149
150
151~(isa((','), prologEquality)).
152
153==>tSet(isEach(tCol,tPred,pfcControlled)).
154
155rtArgsVerbatum(meta_argtypes).
156rtArgsVerbatum(functorIsMacro).
157rtArgsVerbatum(functorDeclares).
158
159pfcControlled(genlPreds).
160pfcControlled(isa).
161pfcControlled(argIsa).
162
163
164%tCol(X) ==> isa(X,tCol).
165%tCol(X) ==> ruleRewrite(t(X,I),isa(I,X)).
166
167==>( specialized_conflict_tests ==> (( ~tCol(T),tCol(T)) ==> conflict(~tCol(T)))).
168
171
172:- sanity(get_lang(pfc)). 173
174% tCol(C)/(\+ never_isa_syntax(C))==>{decl_as_isa(C)}.
175
176%underkill - Though it is making bad things happen
177ttExpressionType(C)==> \+ completelyAssertedCollection(C).
178
179 % :- mpred_trace_exec.
180 ==> prologHybrid(isLoaded(tMicrotheory),pfcControlled).
181 tSet(isLoaded).
182 :- mpred_notrace_exec. 183
184==> prologHybrid(isLoadedType(ttModuleType),pfcControlled).
185
186
187:- kb_shared((onSpawn)/1).
195:- kb_shared((onSpawn)/1). 196
197rtArgsVerbatum(onSpawn).
198
199onSpawn(When==>State)/nonvar(State) ==> ( When ==> onSpawn(State)).
200onSpawn(State)/mpred_literal(State) ==> {doSpawn(State)}.
201
202
203%:-ain(((ttModuleType(ModType),isa(Thing,ModType),isLoaded(Thing), \+ ttExpressionType(ModType) ==> isLoadedType(ModType)))).
204%==>(((onSpawn(Idea)==> ((isLoadedType(tSourceData),isRuntime) ==> {ain_expanded(Idea,())})))).
205
206onStart(Idea)/definitional(Idea) ==> Idea.
207
208((onStart(Idea)/ ( \+ definitional(Idea))) ==>
209 (isRuntime ==> {get_startup_uu(UU),ain_expanded(Idea,UU)})).
210
211==>pfcControlled(prologArity(tRelation,ftInt)).
212==>pfcControlled(isa(ftTerm,tCol)).
213
214tSet(tSet).
215tSet(tCol).
216tFixedArityRelation(tSet).
217tFixedArityRelation(tCol).
218ttRelationType(prologHybrid).
219
220:- check_clause_counts. 221
224
225
226
227prologHybrid(mudToCyc(ftTerm,ftTerm)).
228
229:- sanity(arity(mudToCyc,2)). 230
231% col_as_isa(X)==>tFixedArityRelation(X),arity(X,1).
232col_as_unary(X)==>tFixedArityRelation(X),arity(X,1).
233
234:- kb_shared(ttExpressionType/1). 235
236tSet(ttExpressionType).
237tSet(completelyAssertedCollection).
238
239ttExpressionType(C) ==> ( \+ completelyAssertedCollection(C), \+ tSet(C), ~ tSet(C), tCol(C)).
240
241
242:- sanity(get_lang(pfc)). 248
275
276
286
287
318
320
321tSet(tKnownID).
325
326:- mpred_notrace_exec. 327
329
331
332prologSideEffects(write/1).
333prologSideEffects(resolveConflict/1).
334
335
336
351
352
353arity(functorIsMacro,1).
354
355functorIsMacro(functorIsMacro).
356ttRelationType(X)==>functorDeclares(X).
360functorIsMacro(pddlSomethingIsa/2).
361tPred(pddlSomethingIsa(ftTerm,ftListFn(tCol))).
362
363/*
364prologBuiltin(A) :- cwc,head_to_functor_name(A, B),prologBuiltin(B).
365prologBuiltin(P) :- cwc,is_ftCompound(P),!,get_functor(P,F,A),functor(C,F,A),(predicate_property(C,built_in)). % predicate_property(P,static)).
366ttRelationType(PT)==> {atom(PT),H=..[PT,I]}, (H:-cwc,head_to_functor_name(I,F),call_u(call(PT,F))).
367*/
368
369
370tCol(iExplorer4)==>{trace_or_throw(never_tCol(iExplorer4))}.
371
372==> isa(pddlSomethingIsa/2, prologHybrid).
373
374arity(argIsa,3).
375
376
377% prologHybrid(F/A)/(atom(F),number(A)) ==> arity(F,A),{must(dynamic_safe(F/A))}.
378
379%:-mpred_trace_exec.
380
381% Functions
382hardCodedExpansion ==> ((tFunction(ArgTypes)/is_declarations(ArgTypes)) ==> meta_argtypes(ArgTypes),{get_functor(ArgTypes,F)}, tFunction(F)).
383% FormatTypes
384hardCodedExpansion ==> (ttExpressionType(ArgTypes)/is_declarations(ArgTypes) ==> meta_argtypes(ArgTypes)).
385
386argIsa(completeExtentAsserted,1,tPred).
387
388((meta_argtypes(ArgTypes)/sanity(is_ftCompound(ArgTypes))) ==>
389 ({get_functor(ArgTypes,F,A),A>1},arity(F,A),{arg(N,ArgTypes,Type)},argIsa(F,N,Type))).
390
391
392meta_argtypes(argIsa(tRelation,ftInt,tCol)).
393
394:- mpred_run. 395:- mpred_notrace_exec. 396
423
424:- sanity(tSet(ttAgentType)). 425
426tCol(tWorld).
427completelyAssertedCollection(tInferInstanceFromArgType).
428completelyAssertedCollection(ttNotTemporalType).
429
430
454
455completelyAssertedCollection(completeExtentAsserted).
456completeExtentAsserted(completelyAssertedCollection).
457completelyAssertedCollection(completelyAssertedCollection).
458completeExtentAsserted(functorDeclares).
459completeExtentAsserted(completeExtentAsserted).
460arity(completeExtentAsserted,1).
461
463argIsa(completeExtentAsserted,1,tPred).
464meta_argtypes(genlPreds(tPred,tPred)).
465:- must_det(argIsa(genlPreds,2,_)). 466completeExtentAsserted(defnSufficient).
467
468
469:- kb_shared(ttNotTemporalType/1). 470ttNotTemporalType(ftInt).
472ttNotTemporalType(tCol).
473ttNotTemporalType(ttExpressionType).
474ttNotTemporalType(ttValueType).
475
476==>ttNotTemporalType(tCol).
477ttNotTemporalType(T)==>tCol(T).
478==>ttTemporalType(tTemporalThing).
479ttTemporalType(T)==>tCol(T).
480
481arity(argQuoted,1).
482
483
484
485
486
487
488
489(ttExpressionType(FT),{is_ftCompound(FT)})==>meta_argtypes(FT).
490
491tSet(vtDirection).
492
493:- sanity(get_lang(pfc)). 494
495disjointWith(tPred,tFunction).
496
497disjointWith(ttTemporalType,ttAbstractType).
498
499
500prologSideEffects(P)==>rtNotForUnboundPredicates(P).
501
502isa(tRelation,ttAbstractType).
503
504
505
506
507:- if(baseKB:startup_option(datalog,sanity);baseKB:startup_option(clif,sanity)). 508
509:- reconsult(pack(logicmoo_base/t/examples/pfc/'neg_sanity.pfc')). 510
511
512:- endif. 513
514
517
518
519
520
523
525
528
529tSet(completelyAssertedCollection).
530rtArgsVerbatum(completeIsaAsserted).
546
548
550
551
555tSet(ttExpressionType).
556
557
558
559%assumed genls(ttSpatialType,ttTemporalType).
560%assumed genls(tSpatialThing,tTemporalThing).
561
562
563
564
565% remove conflicts early
566% (~(P)/mpred_non_neg_literal(P) ==> ( {mpred_remove(P)}, (\+P ))).
567
568==>tCol(rtAvoidForwardChain, comment("rtAvoidForwardChain means that backchain is required for subclasses
569 to gain membership TODO: Give example "
570 )).
571
572tCol('tThing').
573arity('tThing',1).
575isa('tThing',rtAvoidForwardChain).
576
577
579prologHybrid(quotedIsa(ftTerm,ttExpressionType)).
580
581:- kb_shared(quotedIsa/2). 582
583isa_or_type(X,Y):- cwc, quotedIsa(X,Y).
584isa_or_type(X,Y):- cwc, isa(X,Y).
585
591:- kb_shared(mainClass/2). 592
593mainClass(I,C)==>isa(I,C).
594
595not_isa(I,C):- cwc, mainClass(I,MC),disjointWith(MC,DC),genls(C,DC).
596
603
604isa([tIndividual(tSack)],C):-C==ftListFn(ftAskable),!.
605isa(iExplorer2,C):- C==rtArgsVerbatum,!,fail.
606:- asserta((isa(I,C):- ground(I:C),not_isa(I,C),!,fail)). 609
610quotedIsa(_,C):- nonvar(C), tSet(C),!,fail.
611quotedIsa(I,C):- cwc, loop_check(term_is_ft(I,C)).
612
613dif_in_arg(P,N,Q):- cwc, ground(P),P=..[F|ARGS],arg(N,P,B),Q=..[F|ARGS],nb_setarg(N,Q,A),dif(A,B).
614
615tSet(ttSpatialType).
616tSet(tSpatialThing).
617completelyAssertedCollection(tCol).
618
619
620
621:- kb_shared(isa/2). 622
624
625:- forall(between(1,12,N),kb_shared(proven_holds_t/N)). 626:- forall(between(1,12,N),kb_shared(proven_not_holds_t/N)). 627:- forall(between(1,12,N),kb_shared(proven_poss_t/N)). 628:- forall(between(1,12,N),kb_shared(proven_not_poss_t/N)). 629
633
635
637
638
640
641
650
651disjointWith(tCol,tIndividual).
652% :- noguitracer.
653%:- rtrace.
654/*
655codeTooSlow ==>
656(( arity(F,A)/(atom(F),\+ is_sentence_functor(F),number(A),A>1,A<10,functor(P,F,A),\+ rtLogicalConnective(F)),
657 \+ meta_argtypes_guessed(P),
658 (argIsa(F,A,NOTFT)/NOTFT\==ftTerm),
659 (argIsa(F,1,NOTFT2)/NOTFT2\==ftTerm),
660 {generateArgVars(P, argIsa(F), '='(_))}
661==> meta_argtypes_guessed(P))).
662*/
663meta_argtypes_guessed(P)==>meta_argtypes(P).
664
665:- if(baseKB:startup_option(datalog,sanity);baseKB:startup_option(clif,sanity)). 666
667
669
671
672
674
679
680
681:- endif. 682
683:- meta_predicate(~(0)). 684:- kb_shared(~(0)). 685
688
689
690:- kb_shared(argIsa/3). 691
692
700
703
704
706tSet(tPred).
707
708:- sanity(assert_argIsa(tPred,1,tPred)). 709:- sanity(ain(argIsa(tPred,1,tPred))). 710
711
720
721:- dynamic(either/2). 722% is this how to define constraints?
723% either(P,Q) ==> (~(P) ==> Q), (~(Q) ==> P).
724(either(P,Q) ==> ((~(P) <==> Q), (~(Q) <==> P))).
726
727
728:- export(member/2). 729:- export(arg/3). 732:- export(integer/1). 735:- export(number/1). 736:- export(string/1). 737:- export(var/1). 738
739
740
741tSet(completeExtentAsserted).
742tSet(ttExpressionType).
743
744rtArgsVerbatum(functorIsMacro).
745rtArgsVerbatum(functorDeclares).
746
747%((prologHybrid(C),{get_functor(C,F,A),C\=F}) ==> arity(F,A)).
748==>prologHybrid(typeProps/2).
749
750==>typeProps(Type,List)/(member(isa(Super),List),nonvar(Super))==>genls(Type,Super).
751
752arity(typeProps,2).
753
755
756
757:- ignore(show_failure(why,arity(typeProps,2))). 758:- sanity(call_u(arity(typeProps,2))). 759
763:- assert_hasInstance(tCol,tCol). 764:- file_begin(pfc). 765
766
767% FIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx
768% FIXX
769==> prologHybrid(isEach( tCol/1, disjointWith/2, genls/2,genlPreds/2, meta_argtypes/1)).
770% FIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx
771
772% FIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx
773% FIXX
774==> prologHybrid(isEach( ttNotTemporalType/1,ttTemporalType/1 )).
777prologIsFlag(tDeleted(ftID)).
778% FIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx
779
780==>prologHybrid(genlInverse/2).
781==>prologHybrid(genlPreds/2).
782==>prologHybrid(argIsa/3).
783==>prologHybrid(predProxyAssert,2).
784==>prologHybrid(predProxyQuery, 2).
785==>prologHybrid(predProxyRetract, 2).
786
787%assumed prologHybrid(disjointWith/2).
788==>prologHybrid(instTypeProps/3).
789==>prologHybrid(predTypeMax/3).
790==>prologHybrid(resultIsa/2).
791%assumed prologHybrid(isa/2).
792==>prologDynamic(arg/3).
793~tSet(meta_argtypes).
794tSet(tInferInstanceFromArgType).
797
798tSet(ttValueType).
799
800ttExpressionType(ftString).
801ttExpressionType(ftVar).
802
803
804ttExpressionType(ftCallable).
805ttExpressionType(ftPercent).
806
807
808:- dynamic(vtColor/1). 810isa(vRed,vtColor).
811
812completelyAssertedCollection(vtValue).
813
814
815isa(vtColor,ttValueType).
816
817isa(X,ttValueType) ==> genls(X,vtValue).
818isa(X,ttValueType) ==> completelyAssertedCollection(X).
819
820isa(vtValue,ttValueType).
821
822
823% :- sanity((vtColor(vRed))).
824
825
826%argIsa(Prop,N,Type) :- cwc,number(N),loop_check(argIsa_known(Prop,N,Type)),must(ground(argIsa(Prop,N,Type))).
827%argIsa(Prop,N,Type) <- {cwc,number(N),argIsa_known(Prop,N,Type),must(ground(argIsa(Prop,N,Type)))}.
828
829ttExpressionType(Type) ==> (argIsa(Prop,N,Type),{number(N)} ==> argQuotedIsa(Prop,N,Type)).
830
831:- discontiguous(prologSingleValued/1). 832
833
834:- do_gc. 835
836:- kb_shared(mudLabelTypeProps/3). 840:- nortrace. 842
861prologHybrid(isEach(argIsa/3, formatted_resultIsa/2, localityOfObject/2, subFormat/2, isa/2,
862 genls/2, pddlSomethingIsa/2, resultIsa/2, subFormat/2, tCol/1, tRegion/1,
863 completelyAssertedCollection/1, ttExpressionType/1, typeProps/2)).
864
865
866:- ain(isa(ttExpressionType,ttAbstractType)). 867:- discontiguous(subFormat/2). 868:- kb_shared(tChannel/1). 869
871
874subFormat(ftVoprop,ftSpec).
875
876%==> tFunction(opQuote(isEach(ftRest(ftTerm)))).
877==> tFunction(isRandom(tSet)).
878==> tFunction(isAnd(ftListFn(ftSpec))).
879==> tFunction(isMost(ftListFn(ftSpec))).
880==> tFunction(isOneOf(ftListFn(ftSpec))).
881==> tFunction(isNot(ftSpec)).
882==> tFunction(isOptional(ftSpec,ftTerm)).
883==> tFunction(isOptionalStr(ftString)).
884==> tFunction(exactStr(ftString)).
885
886resultIsa(ftDeplictsFn,ftSpec).
887
888==> prologHybrid(quotedDefnIff/2).
889
890
891isa(argIsa,prologHybrid).
892isa(determinerString/2, prologMultiValued).
893isa(quotedDefnIff, completeExtentAsserted).
894isa(ftInt,ttExpressionType).
895isa(ftNumber,ttExpressionType).
896isa(ftString,ttExpressionType).
897isa(isInstFn,tFunction).
898isa(isKappaFn,tFunction).
899isa(prologMultiValued, tCol).
900arity(ftListFn,1).
901arity(isLikeFn,2).
902arity(ftDeplictsFn,1).
903
904arity(tFunction,1).
905==> tFunction(ftDiceFn(ftInt,ftInt,ftInt)).
906==> tFunction(ftListFn(tCol)).
907==> tFunction(ftDeplictsFn).
908
909completelyAssertedCollection(rtAvoidForwardChain).
910completelyAssertedCollection('SententialOperator').
911
912
913tSet(rtAvoidForwardChain).
914tSet('SententialOperator').
916
917cycBetween(A,B,N):-
918 (number(A) ->
919 ((number(B);number(N)),system_between(A,B,N));
920 ((number(B),number(N))->system_between(A,B,N))).
921
922
923
924:- multifile(equals/2). 925:- dynamic(equals/2). 926:- export(equals/2). 927arity(equals,2).
928equals(X,Y):-equals_call(X,Y).
929:- must((arity_no_bc(equals,_))). 930
931arity(termOfUnit,2).
932arity(trueSentence,1).
933arity(evaluate,2).
934arity(different,2).
935:- forall(system_between(1,11,A),kb_shared(holds/A)). 936
937
938==>rtAvoidForwardChain(isEach(equals,different,evaluate,trueSentence,'TINYKB-ASSERTION',termOfUnit)).
939
948
949genls('rtSententialRelation','rtSententialOperator').
950genls('rtSententialOperator',rtAvoidForwardChain).
951genls('rtVariableArityRelation',rtAvoidForwardChain).
952genls('rtCommutativeRelation',rtAvoidForwardChain).
953genls('tFunction',rtAvoidForwardChain).
954genls('rtEvaluatableRelation',rtAvoidForwardChain).
955
956tSet('rtCommutativeRelation').
957tSet('rtEvaluatableRelation').
958tSet('rtSententialRelation').
959tSet('rtVariableArityRelation').
960
961
962rtArgsVerbatum(completeIsaAsserted).
964completeExtentAsserted(formatted_resultIsa).
965completeExtentAsserted(quotedDefnIff).
966completelyAssertedCollection(completelyAssertedCollection).
967
968ttExpressionType(ftVar).
969ttExpressionType(ftVoprop).
970
971
972ttStringType('CharacterString').
973ttStringType('SubLString').
974ttStringType('ControlCharacterFreeString').
975ttStringType('SubLListOfStrings').
977
978
981
986
987
989
990prologHybrid(argIsa(tRelation,ftInt,tCol)).
991prologHybrid(formatted_resultIsa(ttExpressionType,tCol)).
992
993:- sanity(argIsa(genlPreds,2,_)). 994
995tCol(vtVerb).
996:- sanity(tCol(vtVerb)). 997:- sanity(isa(vtVerb,tCol)). 998:- sanity(t(tCol,vtVerb)). 999
1000
1001
1002prologHybrid(quotedDefnIff(ttExpressionType,ftTerm)).
1003prologHybrid(defnNecessary(ttExpressionType,ftTerm)).
1004prologHybrid(quotedDefnIff(ttExpressionType,ftTerm)).
1005
1006
1007tFuncton(isLikeFn(tPred,tCol)).
1008tRelation('==>'(ftAskable,ftAssertable)).
1009prologHybrid(subFormat(ttExpressionType,ttExpressionType)).
1010prologMultiValued(comment(ftTerm,ftString)).
1011prologMultiValued(genlInverse(tPred,tPred)).
1012prologMultiValued(genlPreds(tPred,tPred)).
1013prologMultiValued(predProxyAssert(prologMultiValued,ftTerm)).
1014prologMultiValued(predProxyQuery(prologMultiValued,ftTerm)).
1015
1016genlInverse(P1,P2) ==> ( t(P1,A,B) ==> t(P2,B,A)).
1017
1022
1023:- if(true). 1024==> prologHybrid(instTypeProps(ftID,tCol,ftRest(ftVoprop))).
1025==> functorIsMacro(macroSomethingDescription(ftTerm,ftListFn(ftString))).
1026==> functorIsMacro(pddlObjects(tCol,ftListFn(ftID))).
1027==> functorIsMacro(pddlDescription(ftID,ftListFn(ftString))).
1028==> functorIsMacro(pddlPredicates(ftListFn(ftVoprop))).
1029==> functorIsMacro(pddlSorts(tCol,ftListFn(tCol))).
1030==> functorIsMacro(pddlTypes(ftListFn(tCol))).
1031:- endif. 1032
1033
1035prologMultiValued('<-'(ftAssertable,ftAskable)).
1036prologMultiValued('==>'(ftAskable,ftAssertable)).
1037prologNegByFailure(predArgMulti(prologMultiValued,ftInt)).
1038prologNegByFailure(tDeleted(ftID)).
1039
1046prologSingleValued(predInstMax(ftID,prologSingleValued,ftInt),prologHybrid).
1047prologSingleValued(predTypeMax(prologSingleValued,tCol,ftInt),prologHybrid).
1048resultIsa(txtFormatFn,ftText).
1051subFormat(ftAtom,ftTerm).
1052subFormat(ftCallable,ftProlog).
1053resultIsa(ftDiceFn,ftInt).
1055subFormat(ftInt,ftNumber).
1056subFormat(ftInteger,ftNumber).
1057subFormat(ftNumber,ftPercent).
1058subFormat(ftPercent,ftNumber).
1059subFormat(ftString,ftTerm). 1060subFormat(ftString,ftText). 1061subFormat(ftTerm,ftProlog).
1062subFormat(ftText,ftTerm). 1063subFormat(ftVar,ftProlog).
1064==> subFormat(ftVoprop,ftRest(ftVoprop)).
1065subFormat(ftVoprop,ftTerm).
1066
1067%ttExpressionType(C) ==> {cls,wdmsg(ttExpressionTypeB1(C)),dumpST,wdmsg(ttExpressionTypeC1(C)),break}.
1068%ttExpressionType(C) ==> {wdmsg(ttExpressionType3(C))}.
1069subFormat(_,COL)/(atom(COL))==>ttExpressionType(COL).
1070%:- break.
1071subFormat(COL,_)/(atom(COL))==>ttExpressionType(COL).
1074
1078
1079
1080:- sanity(ttRelationType(prologMultiValued)). 1081
1082
1083tSet(tNewlyCreated).
1084
1085:- dynamic(tNewlyCreated/1). 1086tNewlyCreated(W)==>{guess_types(W)}.
1087
1088
1089:-kb_shared(rtUnaryPredicate/1). 1090:-kb_shared(ttSpatialType/1). 1091
1092ttUnverifiableType(ftID).
1096
1097ttUnverifiableType(ftDice).
1098ttUnverifiableType(ftString).
1099ttUnverifiableType(ftTerm).
1100ttUnverifiableType(ftText).
1101ttUnverifiableType(ftVoprop).
1102
1103ttUnverifiableType(tCol).
1104ttUnverifiableType(tFunction).
1105ttUnverifiableType(tPred).
1106ttUnverifiableType(ttExpressionType).
1107ttUnverifiableType(vtDirection).
1108
1109
1112
1113:- set_prolog_flag(report_error,true),set_prolog_flag(debug_on_error,true),set_prolog_flag(debug, true). 1114
1115
1123
1124
1125disjointWith(ttTemporalType,ttAbstractType).
1126
1127prologHybrid(dividesBetween(tCol,tCol,tCol)).
1128
1129quotedDefnIff(X,_)==>ttExpressionType(X).
1130
1131
1132quotedDefnIff(ftInt,integer).
1133quotedDefnIff(ftFloat,float).
1134quotedDefnIff(ftAtom,atom).
1135quotedDefnIff(ftString,is_ftString2).
1137quotedDefnIff(ftSimpleString,string).
1138quotedDefnIff(ftCallable,is_callable).
1139quotedDefnIff(ftCompound,is_ftCompound).
1140quotedDefnIff(ftGround,ground).
1141quotedDefnIff(ftID,is_id).
1142quotedDefnIff(ftTerm,is_ftNonvar).
1143quotedDefnIff(ftVar,is_ftVar).
1144quotedDefnIff(ftNonvar,is_ftNonvar).
1145quotedDefnIff(ftNumber,number).
1146quotedDefnIff(ftList,is_list).
1148quotedDefnIff(ftBoolean,is_boolean).
1149quotedDefnIff(ftText,is_ftText).
1150
1151==> ((
1152 (quotedDefnIff(ftRest(Type),is_rest_of(Type)):- cwc, is_ftNonvar(Type)),
1153 (quotedDefnIff(ftListFn(Type),is_list_of(Type)):- cwc, is_ftNonvar(Type)),
1154 (quotedDefnIff(ftCodeIs(SomeCode),SomeCode):- cwc, is_ftNonvar(SomeCode)))).
1156
1157:- kb_global(baseKB:ftText/1). 1158
1159((ttExpressionType(FT)/(append_term(FT,Arg,Head),
1160 (predicate_property(Head,undefined);predicate_property(Head,number_of_clauses(0)))
1161 )) ==>
1162 ({OO = (Head:- !, term_is_ft(Arg,FT))},OO)).
1163
1165
1166
1169
1170tSet(rtBinaryPredicate).
1171ttRelationType(rtBinaryPredicate).
1172
1173
1175
1176ttRelationType('rtUnaryPredicate').
1177
1178isa(arity,rtBinaryPredicate).
1179
1180
1181
1182specialFunctor('\\+').
1183specialFunctor('/').
1184
1185
1186:- if(baseKB:startup_option(datalog,sanity);baseKB:startup_option(clif,sanity)). 1192:- endif. 1193
1194arity(Pred,2),tPred(Pred) <==> rtBinaryPredicate(Pred).
1195
1198
1199completelyAssertedCollection(rtBinaryPredicate).
1200
1201
1204
1205 1206
1220:- mpred_notrace_exec. 1221rtReflexiveBinaryPredicate(TB)==>genlPreds(equals,TB).
1222
1224
1225ttExpressionType(ftAction).
1226{type_prefix(_Prefix,Type),atom(Type),atom_concat(ft,_,Type)}==>ttExpressionType(Type).
1227{type_suffix(_Suffix,Type),atom(Type),atom_concat(ft,_,Type)}==>ttExpressionType(Type).
1228
1229
1230{type_prefix(_Prefix,Type)}==>tCol(Type).
1231{type_suffix(_Suffix,Type)}==>tCol(Type).
1232
1233((tCol(C)/( \+ ttExpressionType(C))) ==> tSet(C)).
1234
1235
1236
1237tSet(tPred).
1238prologHybrid(isa/2).
1239
1241
1243tSet(prologIsFlag).
1244tSet(prologDynamic).
1245prologHybrid(formatted_resultIsa/2).
1246
1247:- sanity(argIsa(genlPreds,2,_)). 1248:- sanity(tCol(vtVerb)). 1249:- sanity(t(tCol,vtVerb)). 1250:- sanity(isa(vtVerb,tCol)). 1251
1252
1253ttAgentType(mobPhilosopher).
1254
1255:- sanity(genls(mobPhilosopher,tAgent)). 1256
1257
1259isa(iPlato7,mobPhilosopher).
1260
1261:-must(isa(iPlato7,mobPhilosopher)). 1262
1263:- if((current_prolog_flag(runtime_debug,D),D>2)). 1264:- mpred_test(\+ isa(iPlato7,ftAtom)). 1265
1268:- sanity(mpred_test(quotedIsa(iPlato7,ftAtom))). 1269:- mpred_notrace_all. 1270:- endif. 1271
1272tCol(ttAbstractType).
1273
1274
1275
1277
1278genlsFwd(tItem,'tArtifact').
1279genlsFwd(tRegion,'tPlace').
1280
1281:- set_prolog_flag(do_renames,restore). 1282
1283meta_argtypes(knows(tAgent,ftAskable)).
1284meta_argtypes(beliefs(tAgent,ftAskable)).
1285meta_argtypes(loves(tAgent,tTemporalThing))
system_common
% ============================================= % File 'system_common.pfc' % Purpose: Agent Reactivity for SWI-Prolog % Maintainer: Douglas Miles % Contact: $Author: dmiles $@users.sourceforge.net ; % Version: 'interface' 1.0.0 % Revision: $Revision: 1.9 $ % Revised At: $Date: 2002/06/27 14:13:20 $ % ============================================= % % 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))
. %pain(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 trueassert(P)
,retract(~P)
,enable(P)
. % ~ P = test nesc falseassert(~P)
,retract(P)
,disable(P)
% % ~ ~(P) = test possible (via not impossible)retract( ~(P))
,enable(P)
. % \+ ~(P) = test impossiblity is unknownretract( ~(P))
% ~ \+(P) = same as P same as P % \+(P) = testnaf(P)
retract(P)
% % Dec 13, 2035 % Douglas Miles */