3:-dynamic(asserted/4).
4:-dynamic(assertion/13).
5
6cyc_system_intern_magic.
7
8current_file(FileBase,Dir):-current_stream(File,read,_Stream),atom(File),is_absolute_file_name(File),
9 file_directory_name(File,Dir),file_base_name(File,FilePart),once(FileBase=FilePart;file_name_extension(FileBase,_Ext,FilePart)).
10
11asserta_if_new(A):-retract(A),fail.
12asserta_if_new(A):-asserta(A),!.
13
14:-source_file(cyc_system_intern_magic,F),current_file(cyc_system_intern,Dir),writeq(current_file(F,Dir)),nl,!,
15 asserta_if_new(user:file_search_path(cyc_api, Dir)),asserta_if_new(library_directory(Dir)).
16
17:-use_module(library(cyc)).
18
19
20ensure_qlf_loaded(Name):-!,ensure_loaded(Name).
21ensure_qlf_loaded(Name):- file_name_extension(FileStem,_,Name),file_name_extension(FileStem,'qlf',QLF),
22 catch((load_files(FileStem,[qcompile(auto)]),(ensure_loaded(Name))),_,(qcompile(FileStem),ensure_loaded(QLF))),!.
23
24
25load_lljs([]):-!.
26load_lljs([X|Xs]):-load_llj(X),!,load_lljs(Xs).
27load_llj(X):-[X].
28
29:-dynamic(nd_cyc_meta_predicate/3).
30:-multifile(nd_cyc_meta_predicate/3).
31cyc_meta_predicate(X):-var(X),!,nd_cyc_meta_predicate(F,A,_LA),X=F/A.
32cyc_meta_predicate([X|L]):-cyc_meta_predicate(X),cyc_meta_predicate(L),!.
33cyc_meta_predicate(X):-functor(X,F,A),F \= '/', !, cyc_meta_predicate(F/A).
34cyc_meta_predicate(X):-X = F/A, nd_cyc_meta_predicate(F,A,A),!.
35cyc_meta_predicate(X):-X = F/A, asserta(nd_cyc_meta_predicate(F,A,A)),!,dynamic(X),multifile(X),style_check(-singleton).
36
37:-dynamic(nd_cyc_predicate/3).
38:-multifile(nd_cyc_predicate/3).
39cyc_predicate(X):-var(X),!,nd_cyc_predicate(X).
40cyc_predicate([X|L]):-cyc_predicate(X),cyc_predicate(L),!.
41cyc_predicate(X):-functor(X,F,A),F \= '/', !, cyc_predicate(F/A).
42cyc_predicate(X):-X = F/A, nd_cyc_predicate(F,A,A),!.
43cyc_predicate(X):-X = F/A, asserta(nd_cyc_predicate(F,A,A)),dynamic(X),multifile(X),style_check(-singleton).
44
45
46:-use_module('cyc.pl').
47
48some_data_file(File,Filename):-
49 absolute_file_name(library(File),[extensions(['.pl','.qlf',''])],Filename),exists_file(Filename),!.
50some_data_file(File,Filename):-
51 absolute_file_name(cyc_api(File),[extensions(['.pl','.qlf',''])],Filename),exists_file(Filename),!.
52some_data_file(Filename,Filename).
53
54cycdataFile(File):-some_data_file(File,Filename),exists_file(Filename),debugFmt(ensure_qlf_loaded(Filename)),ensure_qlf_loaded(Filename).
55
56cycdataFile(File,File):-cycdataFile(File).
57
58init_cycdataFile(F):-initialization(cycdataFile(F)).
59
61
62loadSplits:- expand_file_name('splits/*.llj',Xs),load_lljs(Xs).
63
64
66
67
68:- ensure_loaded('splits/allSplits').
69
71
72:- ignore((savedStubs(_, F, A), dynamic(F/A) , multifile(F/A),fail)).
73:- ignore((nd_cyc_meta_predicate(F, A,_), dynamic(F/A) , multifile(F/A),fail)).
74:- ignore((nd_cyc_predicate(F, A,_), dynamic(F/A) , multifile(F/A),fail)).
75
76:- qcompile('splits/allSplits').
77
78:-dynamic(holds/5).
79holdsMt(Reln,A1,A2,A3,A4,Mt):- ':TRUE-MON'(Reln,A1,A2,A3,A4,Mt,_Id).
80holdsMt(Reln,A1,A2,A3,A4,Mt):- ':TRUE-DEF'(Reln,A1,A2,A3,A4,Mt,_Id).
81
82holds(Reln,A1,A2,A3,A4):-holdsMt(Reln,A1,A2,A3,A4,_Mt).
83
84:-dynamic(holds/4).
85holdsMt(Reln,A1,A2,A3,Mt):- ':TRUE-MON'(Reln,A1,A2,A3,Mt,_Id).
86holdsMt(Reln,A1,A2,A3,Mt):- ':TRUE-DEF'(Reln,A1,A2,A3,Mt,_Id).
87
88holds(Reln,A1,A2,A3):-holdsMt(Reln,A1,A2,A3,_Mt).
89
90:-dynamic(holds/3).
91holdsMt(Reln,A1,A2,Mt):- ':TRUE-MON'(Reln,A1,A2,Mt,_Id).
92holdsMt(Reln,A1,A2,Mt):- ':TRUE-DEF'(Reln,A1,A2,Mt,_Id).
93
94holds(Reln,A1,A2):-holdsMt(Reln,A1,A2,_Mt).
95
97
98
113
114file_name_no_extension(File,Base):-file_name_extension(Base,_,File).
115load_cyc_data_file(ZZZ):-debugFmt(ZZZ),maplist(cycdataFile,ZZZ,_).
116
117loadRestOfStages:-expand_file_name('./stage*/*.pl',X),expand_file_name('./stage*/*.qlf',Y),append(X,Y,Z),maplist(file_name_no_extension,Z,ZZ),sort(ZZ,ZZZ),load_cyc_data_file(ZZZ).
118
119