-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathblackboard_data.pl
More file actions
86 lines (64 loc) · 3.31 KB
/
blackboard_data.pl
File metadata and controls
86 lines (64 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
:- module(blackboard_data,
[
set_blackboard/3, set_source_result/1, set_nb_nodes/1, set_nb_tests/1,
get_problem/1, get_domain/1, get_actions/1, get_objects/1, get_constants/1,
get_source_result/1, get_configuration/1, get_nb_tests/1, get_nb_nodes/1,
update_nb_nodes/1, keep_generating/0,
get_rigid_relations/1, get_rigid_relation_names/1, get_static_fluent_names/1, get_static_fluent_numbers/1
]).
:- ensure_loaded(domain).
:- ensure_loaded(problem).
:- ensure_loaded(configuration).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% BLACKBOARD SETTERS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% set_blackboard(+Configuration, +Domain, +Problem).
set_blackboard(Configuration, Domain, Problem) :-
process_domain(Domain, RigidRelationNames, StaticFluentNames),
process_problem(Problem, RigidRelationNames, StaticFluentNames, RigidRelations, NumberForEachStaticFluent),
bb_put(rigid_relations, RigidRelations),
bb_put(rigid_relation_names, RigidRelationNames),
bb_put(static_fluent_names, StaticFluentNames),
bb_put(number_for_each_static_fluent, NumberForEachStaticFluent),
bb_put(configuration, Configuration),
configuration_nb_tests(Configuration, NumberOfTests),
bb_put(number_of_tests, NumberOfTests),
bb_put(number_of_nodes, 0),
bb_put(domain, Domain),
bb_put(source_problem, Problem),
domain_actions(Domain, Actions),
bb_put(actions, Actions),
domain_constants(Domain, Constants),
bb_put(constants, Constants),
problem_objects(Problem, Objects),
bb_put(objects, Objects).
set_source_result(SourceResult) :-
bb_put(source_result, SourceResult).
set_nb_tests(NumberOfTests) :-
bb_put(number_of_tests, NumberOfTests).
set_nb_nodes(NumberOfNodes) :-
bb_put(number_of_nodes, NumberOfNodes).
update_nb_nodes(N) :-
bb_get(number_of_nodes, NumberOfNodes),
UpdatedNbNodes is NumberOfNodes + N,
bb_put(number_of_nodes, UpdatedNbNodes).
keep_generating :-
bb_get(number_of_tests, NumberOfTests),
bb_get(number_of_nodes, NumberOfNodes),
NumberOfNodes =< NumberOfTests.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% BLACKBOARD GETTERS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
get_configuration(Configuration) :- bb_get(configuration, Configuration).
get_domain(Domain) :- bb_get(domain, Domain).
get_problem(Problem) :- bb_get(source_problem, Problem).
get_actions(Actions) :- bb_get(actions, Actions).
get_objects(Objects) :- bb_get(objects, Objects).
get_constants(Constants) :- bb_get(constants, Constants).
get_source_result(SourceResult) :- bb_get(source_result, SourceResult).
get_nb_tests(NumberOfTests) :- bb_get(number_of_tests, NumberOfTests).
get_nb_nodes(NumberOfNodes) :- bb_get(number_of_nodes, NumberOfNodes).
get_rigid_relation_names(RigidRelationNames) :- bb_get(rigid_relation_names, RigidRelationNames).
get_rigid_relations(RigidRelations) :- bb_get(rigid_relations, RigidRelations).
get_static_fluent_names(StaticFluentNames) :- bb_get(static_fluent_names, StaticFluentNames).
get_static_fluent_numbers(NumberForEachStaticFluent) :- bb_get(number_for_each_static_fluent, NumberForEachStaticFluent).