current_prdicate/2
r Please enter the commit message for your changes. Lines starting
This commit is contained in:
parent
32a5158c6b
commit
9378622d42
@ -521,7 +521,12 @@ every 5th iteration only.
|
|||||||
atom_concat(PD0, '../../bin', PD),
|
atom_concat(PD0, '../../bin', PD),
|
||||||
set_problog_path(PD).
|
set_problog_path(PD).
|
||||||
|
|
||||||
:- PD = '/usr/local/bin',
|
:- yap_flag(executable, Bin),
|
||||||
|
file_directory_name(Bin, PD),
|
||||||
|
set_problog_path(PD).
|
||||||
|
|
||||||
|
|
||||||
|
:- PD = '/usxor/local/bin',
|
||||||
set_problog_path(PD).
|
set_problog_path(PD).
|
||||||
|
|
||||||
|
|
||||||
|
@ -507,7 +507,7 @@ init_learning :-
|
|||||||
%========================================================================
|
%========================================================================
|
||||||
%= Updates all values of query_probability/2 and query_gradient/4
|
%= Updates all values of query_probability/2 and query_gradient/4
|
||||||
%= should be called always before these predicates are accessed
|
%= should be called always before these predicates are accessed
|
||||||
%= if the old values are still valid, nothing happens
|
%= if the old values are still valid, nothing happensv
|
||||||
%========================================================================
|
%========================================================================
|
||||||
|
|
||||||
update_values :-
|
update_values :-
|
||||||
@ -518,8 +518,6 @@ update_values :-
|
|||||||
retractall(query_gradient_intern(_,_,_,_)).
|
retractall(query_gradient_intern(_,_,_,_)).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
% Check, if continuous facts are used.
|
% Check, if continuous facts are used.
|
||||||
% if yes, switch to problog_exact
|
% if yes, switch to problog_exact
|
||||||
@ -573,7 +571,7 @@ empty_bdd_directory.
|
|||||||
init_queries :-
|
init_queries :-
|
||||||
empty_bdd_directory,
|
empty_bdd_directory,
|
||||||
format_learning(2,'Build BDDs for examples~n',[]),
|
format_learning(2,'Build BDDs for examples~n',[]),
|
||||||
forall(user:test_example(ID,Query,_Prob,_),init_one_query(ID,Query,test)),
|
forall(user:test_example(ID,Query,_Prob,_),init_one_query(ID,Query,test)),
|
||||||
forall(user:example(ID,Query,_Prob,_),init_one_query(ID,Query,training)).
|
forall(user:example(ID,Query,_Prob,_),init_one_query(ID,Query,training)).
|
||||||
|
|
||||||
bdd_input_file(Filename) :-
|
bdd_input_file(Filename) :-
|
||||||
@ -581,63 +579,70 @@ bdd_input_file(Filename) :-
|
|||||||
concat_path_with_filename(Dir,'input.txt',Filename).
|
concat_path_with_filename(Dir,'input.txt',Filename).
|
||||||
|
|
||||||
init_one_query(QueryID,Query,_Type) :-
|
init_one_query(QueryID,Query,_Type) :-
|
||||||
% format_learning(3,' ~q example ~q: ~q~n',[Type,QueryID,Query]),
|
% format_learning(3,' ~q example ~q: ~q~n',[Type,QueryID,Query]),
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
% if BDD file does not exist, call ProbLog
|
% if BDD file does not exist, call ProbLog
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
(
|
|
||||||
recorded(QueryID, _, _)
|
|
||||||
->
|
|
||||||
format_learning(3,' Reuse existing BDD ~q~n~n',[QueryID])
|
|
||||||
;
|
|
||||||
b_setval(problog_required_keep_ground_ids,false),
|
b_setval(problog_required_keep_ground_ids,false),
|
||||||
(QueryID mod 100 =:= 0 -> writeln(QueryID) ; true),
|
(QueryID mod 100 =:= 0 -> writeln(QueryID) ; true),
|
||||||
problog_flag(init_method,(Query,N,Bdd,graph2bdd(X,Y,N,Bdd))),
|
Query =.. [_|Args],
|
||||||
Query =.. [_,X,Y]
|
% problog_flag(init_method,(Query,N,Bdd,M:graph2bdd(Args,N,Bdd))),
|
||||||
->
|
Bdd = bdd(Dir, Tree,
|
||||||
Bdd = bdd(Dir, Tree, MapList),
|
|
||||||
(
|
|
||||||
graph2bdd(X,Y,N,Bdd)
|
|
||||||
->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
u3777777777/....777;;;;;;;;;;;;;;;;;;;666666666MapList),
|
||||||
|
user:graph2bdd(Args,N,Bdd),
|
||||||
rb_new(H0),
|
rb_new(H0),
|
||||||
maplist_to_hash(MapList, H0, Hash),
|
maplist_to_hash(MapList, H0, Hash),
|
||||||
tree_to_grad(Tree, Hash, [], Grad)
|
tree_to_grad(Tree, Hash, [], Grad),
|
||||||
% ;
|
% ;
|
||||||
% Bdd = bdd(-1,[],[]),
|
% Bdd = bdd(-1,[],[]),
|
||||||
% Grad=[]
|
% Grad=[]
|
||||||
),
|
|
||||||
write('.'),
|
write('.'),
|
||||||
recordz(QueryID,bdd(Dir, Grad, MapList),_)
|
recordz(QueryID,bdd(Dir, Grad, MapList),_).
|
||||||
;
|
|
||||||
problog_flag(init_method,(Query,NOf,Bdd,problog_kbest_as_bdd(Call,NOf,Bdd))) ->
|
|
||||||
b_setval(problog_required_keep_ground_ids,false),
|
|
||||||
rb_new(H0),
|
|
||||||
strip_module(Call,_,Goal),
|
|
||||||
!,
|
|
||||||
Bdd = bdd(Dir, Tree, MapList),
|
|
||||||
% trace,
|
|
||||||
problog:problog_kbest_as_bdd(Goal,NOf,Bdd),
|
|
||||||
maplist_to_hash(MapList, H0, Hash),
|
|
||||||
Tree \= [],
|
|
||||||
%put_code(0'.),
|
|
||||||
tree_to_grad(Tree, Hash, [], Grad),
|
|
||||||
recordz(QueryID,bdd(Dir, Grad, MapList),_)
|
|
||||||
;
|
|
||||||
problog_flag(init_method,(Query,NOf,Bdd,Call)) ->
|
|
||||||
b_setval(problog_required_keep_ground_ids,false),
|
|
||||||
rb_new(H0),
|
|
||||||
Bdd = bdd(Dir, Tree, MapList),
|
|
||||||
% trace,
|
|
||||||
problog:Call,
|
|
||||||
maplist_to_hash(MapList, H0, Hash),
|
|
||||||
Tree \= [],
|
|
||||||
%put_code(0'.),
|
|
||||||
tree_to_grad(Tree, Hash, [], Grad),
|
|
||||||
recordz(QueryID,bdd(Dir, Grad, MapList),_)
|
|
||||||
).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%========================================================================
|
%========================================================================
|
||||||
@ -1010,7 +1015,7 @@ user:progress(FX,X,_G,X_Norm,G_Norm,Step,_N,_Iteration,Ls,0) :-
|
|||||||
%========================================================================
|
%========================================================================
|
||||||
|
|
||||||
init_flags :-
|
init_flags :-
|
||||||
prolog_file_name(queries,Queries_Folder), % get absolute file name for './queries'
|
% prolog_file_name(queries,Queries_Folder), % get absolute file name for './queries'
|
||||||
prolog_file_name(output,Output_Folder), % get absolute file name for './output'
|
prolog_file_name(output,Output_Folder), % get absolute file name for './output'
|
||||||
problog_define_flag(bdd_directory, problog_flag_validate_directory, 'directory for BDD scripts', Queries_Folder,learning_general),
|
problog_define_flag(bdd_directory, problog_flag_validate_directory, 'directory for BDD scripts', Queries_Folder,learning_general),
|
||||||
problog_define_flag(output_directory, problog_flag_validate_directory, 'directory for logfiles etc', Output_Folder,learning_general,flags:learning_output_dir_handler),
|
problog_define_flag(output_directory, problog_flag_validate_directory, 'directory for logfiles etc', Output_Folder,learning_general,flags:learning_output_dir_handler),
|
||||||
|
33
pl/preds.yap
33
pl/preds.yap
@ -473,27 +473,26 @@ predicate_erased_statistics(P0,NCls,Sz,ISz) :-
|
|||||||
|
|
||||||
Defines the relation: _P_ is a currently defined predicate whose name is the atom _A_.
|
Defines the relation: _P_ is a currently defined predicate whose name is the atom _A_.
|
||||||
*/
|
*/
|
||||||
current_predicate(A,T0) :-
|
current_predicate(A0,T0) :-
|
||||||
'$yap_strip_module'(T0, M, T),
|
|
||||||
( var(M)
|
( nonvar(T0) -> '$yap_strip_module'(T0, M, T) ; T0 = T ),
|
||||||
->
|
( nonvar(A0) -> '$yap_strip_module'(A0, MA0, A) ; A0 = A ),
|
||||||
'$all_current_modules'(M)
|
M = MA0,
|
||||||
;
|
|
||||||
true
|
|
||||||
),
|
|
||||||
(nonvar(T) -> functor(T, A, _) ; true ),
|
|
||||||
(
|
(
|
||||||
'$current_predicate'(A,M, T, user)
|
var(M)
|
||||||
;
|
|
||||||
(nonvar(T)
|
|
||||||
->
|
->
|
||||||
'$imported_predicate'(M:T, M1:T1)
|
true
|
||||||
;
|
;
|
||||||
'$imported_predicate'(M:T, M1:T1)
|
'$all_current_modules'(M)
|
||||||
),
|
),
|
||||||
functor(T1, A, _),
|
% M is bound
|
||||||
\+ '$is_system_predicate'(T1,M1)
|
(
|
||||||
).
|
'$current_predicate'(A,M,T,user)
|
||||||
|
;
|
||||||
|
'$imported_predicate'(M:T, M1T1), M1T1 \= M:T
|
||||||
|
),
|
||||||
|
functor(T, A, _).
|
||||||
|
|
||||||
|
|
||||||
/** @pred system_predicate( ?_P_ )
|
/** @pred system_predicate( ?_P_ )
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user