#include "py_knowledge_base.h"
using namespace boost::python;
/////////////////////////////////////////////////////////////////////////////////////////
// export_knowledge_base
//
/////////////////////////////////////////////////////////////////////////////////////////
void
export_knowledge_base()
{
class_<rule::knowledge_base, rule::knowledge_base_ptr_type>("knowledge_base",init<rdf::rdf_graph_ptr_type const&>())
.def("get_meta_graph", &rule::knowledge_base::get_meta_graph)
.def("get_psearch_db", &rule::knowledge_base::get_psearch_db_ptr)
.def("get_max_rule_visit", &rule::knowledge_base::get_max_rule_visit)
.def("set_max_rule_visit", &rule::knowledge_base::set_max_rule_visit)
.def("has_explain_info", &rule::knowledge_base::has_explain_info)
.def("set_has_explain_info", &rule::knowledge_base::set_has_explain_info)
.def("get_optimization_flag", &rule::knowledge_base::get_optimization_flag)
.def("set_optimization_flag", &rule::knowledge_base::set_lookup_index_flag)
.def("get_lookup_index_flag", &rule::knowledge_base::get_lookup_index_flag)
.def("set_lookup_index_flag", &rule::knowledge_base::set_lookup_index_flag)
.def("get_knowledge_term", &rule::knowledge_base::get_knowledge_term_ptr)
.def("get_knowledge_rule", &rule::knowledge_base::get_knowledge_rule_ptr)
.def("get_query_rule", &rule::knowledge_base::get_query_rule)
.def("get_knowledge_rules_iterator", &rule::knowledge_base::get_knowledge_rules_iterator)
.def("create_knowledge_rule", &rule::knowledge_base::create_knowledge_rule, create_knowledge_rule_overloads())
.def("create_query_rule", &rule::knowledge_base::create_query_rule)
.def("activate_knowledge_rules", &rule::knowledge_base::activate_knowledge_rules)
.def("create_query_rule", &rule::knowledge_base::create_query_rule)
.def("create_query_rule", &rule::knowledge_base::create_query_rule)
.def("create_query_rule", &rule::knowledge_base::create_query_rule)
;
};
/////////////////////////////////////////////////////////////////////////////////////////
// export_knowledge_rules_iterator
//
/////////////////////////////////////////////////////////////////////////////////////////
void
export_knowledge_rules_iterator()
{
typedef rule::knowledge_base::knowledge_rule_ptr_top_const_iterator top_iterator;
// rule::knowledge_rule_ptr_type const& (top_iterator::*get_value_x1)() const = &top_iterator::get_value;
class_<top_iterator>("knowledge_rule_iterator", no_init)
.def("is_end", &top_iterator::is_end)
.def("next_internal", &top_iterator::next)
.def("get_value", &top_iterator::get_value_by_value)
// .def("get_value", get_value_x1, return_internal_reference<1>())
;
};
/////////////////////////////////////////////////////////////////////////////////////////
// export_knowledge_rule
//
/////////////////////////////////////////////////////////////////////////////////////////
void
export_knowledge_rule()
{
enum_<rule::rule_type>("rule_type")
.value("query_rule", rule::query_rule)
.value("forward_chaining_rule", rule::forward_chaining_rule)
.value("backward_chaining_rule", rule::backward_chaining_rule)
;
class_<rule::knowledge_rule, rule::knowledge_rule_ptr_type>("knowledge_rule", no_init)
.def("get_dependency_graph_vertex", &rule::knowledge_rule::get_dependency_graph_vertex)
.def("get_rule_type", &rule::knowledge_rule::get_rule_type)
.def("get_rule_name", &rule::knowledge_rule::get_rule_name, return_value_policy<copy_const_reference>())
.def("set_rule_text", &rule::knowledge_rule::set_rule_text)
.def("get_rule_text", &rule::knowledge_rule::get_rule_text, return_value_policy<copy_const_reference>())
.def("set_rule_salience", &rule::knowledge_rule::set_rule_salience)
.def("get_rule_salience", &rule::knowledge_rule::get_rule_salience)
.def("keep_explain_info", &rule::knowledge_rule::keep_explain_info)
.def("has_explain_info", &rule::knowledge_rule::has_explain_info)
.def("set_optimization_flag", &rule::knowledge_rule::set_optimization_flag)
.def("get_optimization_flag", &rule::knowledge_rule::get_optimization_flag)
.def("set_head_term", set_head_term_str)
.def("set_head_term", set_head_term_idx)
.def("set_head_term", set_head_term_xpr)
.def("add_rule_term", add_rule_term_x1)
.def("add_rule_term", add_rule_term_x2)
.def("add_rule_term", add_rule_term_x3)
.def("add_rule_term", add_rule_term_x4)
.def("add_rule_term", add_rule_term_x5)
.def("add_rule_term", add_rule_term_x6)
.def("add_rule_term", add_rule_term_x7)
.def("add_negated_rule_term", add_negated_rule_term_x1)
.def("add_negated_rule_term", add_negated_rule_term_x2)
.def("add_negated_rule_term", add_negated_rule_term_x3)
.def("add_negated_rule_term", add_negated_rule_term_x4)
.def("add_negated_rule_term", add_negated_rule_term_x5)
.def("add_negated_rule_term", add_negated_rule_term_x6)
.def("add_negated_rule_term", add_negated_rule_term_x7)
.def("add_consequent_term", add_consequent_term_x1)
.def("add_consequent_term", add_consequent_term_x2)
.def("add_consequent_term", add_consequent_term_x3)
.def("add_consequent_term", add_consequent_term_x4)
.def("add_consequent_term", add_consequent_term_x5)
.def("add_consequent_term", add_consequent_term_x6)
.def("add_consequent_term", add_consequent_term_x7)
.def("add_consequent_term", add_consequent_term_x8)
.def("add_consequent_term", add_consequent_term_x9)
.def("add_consequent_term", add_consequent_term_x10)
.def("add_consequent_term", add_consequent_term_x11)
.def("create_binary_term", create_binary_term_x1)
.def("create_binary_term", create_binary_term_x2)
.def("create_binary_term", create_binary_term_x3)
.def("create_binary_term", create_binary_term_x4)
.def("create_binary_term", create_binary_term_x5)
.def("create_binary_term", create_binary_term_x6)
.def("create_binary_term", create_binary_term_x7)
.def("create_binary_term", create_binary_term_x8)
.def("create_binary_term", create_binary_term_x9)
.def("create_unary_term", create_unary_term_x1)
.def("create_unary_term", create_unary_term_x2)
.def("create_unary_term", create_unary_term_x3)
.def("set_filter", &rule::knowledge_rule::set_filter)
.def("add_select_variable", &rule::knowledge_rule::add_select_variable)
.def("get_select_var_mapping", &rule::knowledge_rule::get_select_var_mapping)
.def(self_ns::str(self))
;
};
/////////////////////////////////////////////////////////////////////////////////////////
// export_knowledge_term
//
/////////////////////////////////////////////////////////////////////////////////////////
void
export_knowledge_term()
{
class_<rule::internal::knowledge_term, rule::kterm_ptr_type, boost::noncopyable>("knowledge_term", no_init)
.def("get_rule_vertex", &rule::internal::knowledge_term::get_rule_vertex)
.def("get_name", &rule::internal::knowledge_term::get_name, return_value_policy<copy_const_reference>())
.def("is_consequent", &rule::internal::knowledge_term::is_consequent)
.def("has_filter", &rule::internal::knowledge_term::has_filter)
.def("get_filter", &rule::internal::knowledge_term::get_filter)
.def(self_ns::str(self))
;
/////////////////////////////////////////////////////////////////////////////////////////
// class expression_base
//
/////////////////////////////////////////////////////////////////////////////////////////
class_<rule::internal::expression_base, rule::internal::expression_term_ptr_type, boost::noncopyable>("expression", no_init)
.def(self_ns::str(self))
;
};
/////////////////////////////////////////////////////////////////////////////////////////
// export_load_kb
//
/////////////////////////////////////////////////////////////////////////////////////////
void
export_load_kb()
{
//
// rule::create_empty_knowledge_base
//
def("create_empty_knowledge_base", create_empty_knowledge_base_x1);
def("create_empty_knowledge_base", create_empty_knowledge_base_x2);
//
// load knowledge base from configuration file
//
def("load_knowledge_base", load_knowledge_base_x1);
def("load_knowledge_base", load_knowledge_base_x2);
def("load_knowledge_base", load_knowledge_base_x3);
def("load_knowledge_base", load_knowledge_base_x4);
def("load_knowledge_base", load_knowledge_base_x5);
//
// load knowledge base from buffer (posted data)
//
def("load_knowledge_base_from_buffer", load_knowledge_base_from_buffer_x1);
def("load_knowledge_base_from_buffer", load_knowledge_base_from_buffer_x2);
def("load_knowledge_base_from_buffer", load_knowledge_base_from_buffer_x3);
def("load_knowledge_base_from_buffer", load_knowledge_base_from_buffer_x4);
def("load_knowledge_base_from_buffer", load_knowledge_base_from_buffer_x5);
//
// import owl model from owl/rdf file
//
def("import_owl_model", import_owl_model_x1);
def("import_owl_model", import_owl_model_x2);
def("import_owl_model", import_owl_model_x3);
def("import_owl_model", import_owl_model_x4);
//
// import owl model from owl/rdf from memory buffer
//
def("import_owl_model_membuffer", import_owl_model_membuffer_x1);
def("import_owl_model_membuffer", import_owl_model_membuffer_x2);
def("import_owl_model_membuffer", import_owl_model_membuffer_x3);
def("import_owl_model_membuffer", import_owl_model_membuffer_x4);
};