34 using namespace opencog;
38 static bool is_init =
false;
55 scm_c_use_module(
"opencog rule-engine");
86 throw RuntimeException(TRACE_INFO,
87 "InferenceSCM::do_forward_chaining - invalid rulebase!");
113 return as->
add_link(LIST_LINK, result);
122 throw RuntimeException(TRACE_INFO,
123 "InferenceSCM::do_backward_chaining - invalid rulebase!");
131 logger().debug(
"[BackwardChainer] Before do_chain");
135 logger().debug(
"[BackwardChainer] After do_chain");
139 for (
auto it = soln.begin(); it != soln.end(); ++it) {
141 hs.push_back(it->first);
142 hs.insert(hs.end(), it->second.begin(), it->second.end());
144 soln_list_link.push_back(as->
add_link(LIST_LINK, hs));
147 return as->
add_link(LIST_LINK, soln_list_link);
void set_target(Handle init_target)
std::vector< Handle > HandleSeq
a list of handles
Handle do_forward_chaining(Handle h, Handle rbs)
const VarMultimap & get_chaining_result()
static const Handle UNDEFINED
static void * init_in_guile(void *)
static void init_in_module(void *)
Handle do_backward_chaining(Handle h, Handle rbs)
void opencog_ruleengine_init(void)
Handle add_link(Type t, const HandleSeq &outgoing, bool async=false)
HandleSeq get_chaining_result(void)
static AtomSpace * ss_get_env_as(const char *)
const HandleSeq & get_outgoing(Handle h) const
void do_chain(ForwardChainerCallBack &fcb, Handle hsource=Handle::UNDEFINED)