1 #ifndef __MODULELOCAL_H__ 2 #define __MODULELOCAL_H__ 4 #include "ModuleGeneric.h" 6 #include "Constraints.h" 12 #include <unordered_map> 37 std::vector<Domain*> *_domains,
38 std::vector<Relation*> *_relations,
39 std::vector<Rule*> *_rules,
40 std::vector<Fact*> *_facts);
47 virtual std::vector<Domain*> *
get_domains()
const override;
49 std::vector<Rule*> *get_rules()
const;
50 std::vector<Fact*> *get_facts()
const;
54 void generate_facts();
112 void generate_unknown_facts(
Relation * relation);
113 void initialize_database();
114 int database_fingerprint(Inter4ql::database db);
116 bool add_to_variable_space(std::string module, std::string relation, std::vector<Value*> val);
117 void generate_domain_facts(
bool should_initialize =
true);
119 void print_database();
123 std::vector<Domain *> *domains;
124 std::vector<Relation *> *relations;
125 std::vector<Fact *> *facts;
126 std::vector<Rule*> *rules;
128 mutable bool disable_constraints;
130 std::vector<Domain *> *domainsToDelete;
133 Inter4ql::database database_;
bool check_constraints_local(bool check_rigid, bool check_flexible) const override
allows for disabling constraints check
Definition: ModuleLocal.cc:287
virtual std::vector< Domain * > * get_domains() const override
getter for domains
Definition: ModuleLocal.cc:115
module_type::type get_module_type() const
getter for module type
Definition: ModuleLocal.cc:156
void add_domain(Domain *d)
method adds Domain into Domain vector
Definition: ModuleLocal.cc:164
type
Enumeration type for four-valued logic.
Definition: Types.h:45
class that implements a fact
Definition: Fact.h:14
void reason_with_rules(std::vector< Rule *> *rules)
performs reasing with additional Rules added
Definition: ModuleLocal.cc:184
Result ask_for_result(Fact *term) const
provides valuations matching given Fact
Definition: ModuleLocal.cc:307
Relation * get_relation(std::string s) const
getter for a relation
Definition: ModuleLocal.cc:100
std::string print()
function that returns string with module information
Definition: ModuleLocal.cc:123
virtual database * get_wsm_database()
fetches a database of facts from well-supported model (for summing purposes)
Definition: ModuleLocal.h:93
Definition: Application.cc:37
~ModuleLocal()
destructor
Definition: ModuleLocal.cc:48
bool constraints_violated() override
checks whether constraints are violated
Definition: ModuleLocal.cc:682
Domain class - class that points to a data type.
Definition: Domain.h:12
void reason()
performs reasoning
Definition: ModuleLocal.cc:194
void set_disable_constraints(bool value) const override
allows for disabling constraints check
Definition: ModuleLocal.h:103
Generic class of module (only virtual methods)
Definition: ModuleGeneric.h:21
ModuleLocal(std::string a_name, Constraints *_constraints, std::vector< Domain *> *_domains, std::vector< Relation *> *_relations, std::vector< Rule *> *_rules, std::vector< Fact *> *_facts)
constructor
Definition: ModuleLocal.cc:21
Implementation of ModuleGeneric for modules with reasoning.
Definition: ModuleLocal.h:24
void add_relation(Relation *r)
method adds Relation into Relation vector
Definition: ModuleLocal.cc:169
class that handles rules in ModuleLocal
Definition: Rule.h:14
std::vector< Relation * > * get_relations() const
getter for module relations
Definition: ModuleLocal.cc:107
Constraints * get_constraints() const override
getter for constraints
Definition: ModuleLocal.h:88
void add_fact(Fact *r)
method adds Fact into Fact vector
Definition: ModuleLocal.cc:174
Output class handles standard output of interpreter.
Definition: Constraints.h:68
std::string get_name() const
getter for a name of module
Definition: ModuleLocal.cc:119
type
Enumeration type for types of values.
Definition: Types.h:26
void add_rule(Rule *r)
method adds Rule into Rule vector
Definition: ModuleLocal.cc:179
variable_type::type get_domain_type(std::string name)
method gives type of a domain inside module
Definition: ModuleLocal.cc:85
class that handles relation instance inside modules
Definition: Relation.h:13