Added a user modifiable ground handler for ProbLog probabilistic facts
This commit is contained in:
parent
a278bda787
commit
94d6c3cebd
@ -408,7 +408,7 @@ set_strategy(_) :-
|
|||||||
set_strategy([]) :- problog_control(on,internal_strategy).
|
set_strategy([]) :- problog_control(on,internal_strategy).
|
||||||
set_strategy([Term|R]) :-
|
set_strategy([Term|R]) :-
|
||||||
strategy_entry(Term,LogProb,Decision),
|
strategy_entry(Term,LogProb,Decision),
|
||||||
(ground(Decision)->
|
(user:problog_user_ground(Decision)->
|
||||||
decision_fact(ID,Decision),
|
decision_fact(ID,Decision),
|
||||||
grounding_id(ID,Decision,ID2),
|
grounding_id(ID,Decision,ID2),
|
||||||
%format("Setting ~q/~q to ~q~n",[Decision,ID2,Prob]),
|
%format("Setting ~q/~q to ~q~n",[Decision,ID2,Prob]),
|
||||||
@ -427,7 +427,7 @@ unset_strategy([]) :-
|
|||||||
problog_control(off,internal_strategy).
|
problog_control(off,internal_strategy).
|
||||||
unset_strategy([Term|R]) :-
|
unset_strategy([Term|R]) :-
|
||||||
strategy_entry(Term,LogProb,Decision),
|
strategy_entry(Term,LogProb,Decision),
|
||||||
(ground(Decision)->
|
(user:problog_user_ground(Decision)->
|
||||||
decision_fact(ID,Decision),
|
decision_fact(ID,Decision),
|
||||||
grounding_id(ID,Decision,ID2),
|
grounding_id(ID,Decision,ID2),
|
||||||
%format("Unsetting ~q/~q to ~q~n",[Decision,ID2,Prob]),
|
%format("Unsetting ~q/~q to ~q~n",[Decision,ID2,Prob]),
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
%
|
%
|
||||||
% $Date: 2010-10-21 10:47:36 +0200 (Thu, 21 Oct 2010) $
|
% $Date: 2010-11-09 02:47:35 +0100 (Tue, 09 Nov 2010) $
|
||||||
% $Revision: 4970 $
|
% $Revision: 4991 $
|
||||||
%
|
%
|
||||||
% This file is part of ProbLog
|
% This file is part of ProbLog
|
||||||
% http://dtai.cs.kuleuven.be/problog
|
% http://dtai.cs.kuleuven.be/problog
|
||||||
@ -881,19 +881,21 @@ problog_predicate(Name, Arity, ProblogName,Mod) :-
|
|||||||
% non-ground probabilistic facts
|
% non-ground probabilistic facts
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
:- multifile(user:problog_user_ground/1).
|
||||||
|
user:problog_user_ground(Goal) :-
|
||||||
|
ground(Goal).
|
||||||
|
|
||||||
non_ground_fact_grounding_id(Goal,ID) :-
|
non_ground_fact_grounding_id(Goal,ID) :-
|
||||||
ground(Goal),
|
user:problog_user_ground(Goal), !,
|
||||||
!,
|
(grounding_is_known(Goal,ID) ->
|
||||||
(
|
true
|
||||||
grounding_is_known(Goal,ID)
|
;
|
||||||
->
|
(
|
||||||
true;
|
|
||||||
(
|
|
||||||
nb_getval(non_ground_fact_grounding_id_counter,ID),
|
nb_getval(non_ground_fact_grounding_id_counter,ID),
|
||||||
ID2 is ID+1,
|
ID2 is ID+1,
|
||||||
nb_setval(non_ground_fact_grounding_id_counter,ID2),
|
nb_setval(non_ground_fact_grounding_id_counter,ID2),
|
||||||
assertz(grounding_is_known(Goal,ID))
|
assertz(grounding_is_known(Goal,ID))
|
||||||
)
|
)
|
||||||
).
|
).
|
||||||
non_ground_fact_grounding_id(Goal,_) :-
|
non_ground_fact_grounding_id(Goal,_) :-
|
||||||
format(user_error,'The current program uses non-ground facts.~n', []),
|
format(user_error,'The current program uses non-ground facts.~n', []),
|
||||||
|
Reference in New Issue
Block a user