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
   60%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
   61
   62loadSplits:- expand_file_name('splits/*.llj',Xs),load_lljs(Xs).
   63
   64
   65%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
   66
   67
   68:- ensure_loaded('splits/allSplits').
   69
   70%%:- loadSplits.
   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
   96%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
   97
   98
   99/*
  100cycdataFile(('nocomment')),cycdataFile(('asserted')),cycdataFile(('withvars')),
  101:-init_cycdataFile(('real_big_kb')).
  102:-init_cycdataFile(('littlebetter')).
  103:-init_cycdataFile(('nonewlines')).
  104:-init_cycdataFile(('allp')).
  105:-init_cycdataFile(('hl_holds')).
  106:-init_cycdataFile(('el_holds')).
  107:-init_cycdataFile(('plassertions')).
  108:-init_cycdataFile(('plnarts')).
  109:-init_cycdataFile(('plconstants')).
  110
  111
  112*/

  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
  120%:-ensureCycCallsProlog.