23:-
'$$compile'/4
use_system_module(
'$_boot', []).
25:-
'$do_error'/2
use_system_module(
'$_errors', []).
27:-
get_module_atts/2
put_module_atts/2
use_system_module( attributes, [,
45 (
fact(
Stream ),
fact
;
48'$input_lines'(
R, csv,
Lines )
:-
49 '$process_lines'(
R,
Lines,
_Type ),
57 '$current_module'(
M0),
59 dbload(
Fs,
M0,load_db(
Fs)),
66 '$do_error'(instantiation_error,
G).
67dbload([],
_,
_)
:- dbload.
68dbload([
F|Fs],
M0,
G)
:- dbload,
71dbload(
M:F,
_M0,
G)
:- dbload,
77 '$do_error'(type_error(atom,
F),
G).
79do_dbload(
F0,
M0,
G)
:-
80 '$full_filename'(
F0,
F,
G),
83 check_dbload_stream(
R,
M0),
87check_dbload_stream(
R,
M0)
:-
89 catch(read(
R,
T),
_, fail),
90 (
T = end_of_file
-> !
;
95dbload_count(
T0,
M0)
:-
96 get_module(
T0,
M0,
T,
M),
100 dbloading(
Na,
Arity,
M,
_,
NaAr,
_)
->
105 atomic_concat([
Na,
'__',
Arity,
'__',
M],
NaAr),
106 assert(dbloading(
Na,
Arity,
M,
T,
NaAr,
0)),
110get_module(
M1:T0,
_,
T,
M)
:- get_module,
111 get_module(
T0,
M1,
T ,
M).
119 retract(dbloading(
Na,
Arity,
M,
T,
NaAr,
_)),
121 dbload_get_space(
T,
M,
Size,
Handle),
122 assertz(dbloading(
Na,
Arity,
M,
T,
NaAr,
Handle)),
128 dbload_add_facts(
R,
M),
133dbload_add_facts(
R,
M)
:-
135 catch(read(
R,
T),
_, fail),
136 (
T = end_of_file
-> !
;
137 dbload_add_fact(
T,
M),
141dbload_add_fact(
T0,
M0)
:-
142 get_module(
T0,
M0,
T,
M),
144 dbloading(
Na,
Arity,
M,
_,
NaAr,
Handle),
148 dbassert(
T,
Handle,
I0).
151 retract(dbloading(
Na,
Arity,
M,
T,
NaAr,
_)),
153 exo_db_get_space(
T,
M,
Size,
Handle),
154 assertz(dbloading(
Na,
Arity,
M,
T,
NaAr,
Handle)),
160 exodb_add_facts(
R,
M),
165exodb_add_facts(
R,
M)
:-
167 catch(protected_exodb_add_fact(
R,
M),
_, fail),
170protected_exodb_add_fact(
R,
M)
:-
171 protected_exodb_add_fact,
173 (
T == end_of_file
-> !
;
174 exodb_add_fact(
T,
M),
178exodb_add_fact(
T0,
M0)
:-
179 get_module(
T0,
M0,
T,
M),
181 dbloading(
Na,
Arity,
M,
_,
NaAr,
Handle),
185 exoassert(
T,
Handle,
I0).
195catch( : Goal,+ Exception,+ Action)
stream_property( Stream, Prop )
nb_setval(+ Name,+ Value)
load_mega_clause( +Stream )
nb_getval(+ Name, - Value)
prolog_flag(? Flag,- OldValue,+ NewValue)