26 using namespace opencog;
51 if (soltype == VARIABLE_NODE &&
_ext_vars->get_variables().varset.count(nsoln_h) == 1)
54 if (
_ext_vars->get_variables().typemap.count(nsoln_h) == 0
55 ||
_int_vars->get_variables().typemap.count(npat_h) == 0)
59 if (
_int_vars->get_variables().typemap.at(npat_h)
60 ==
_ext_vars->get_variables().typemap.at(nsoln_h))
70 const std::map<Handle, Handle> &pred_soln)
72 std::map<Handle, Handle> true_var_soln;
75 for (
auto& p : var_soln)
77 if (
_int_vars->get_variables().varset.count(p.first) == 1)
83 true_var_soln[p.second] = p.first;
85 true_var_soln[p.first] = p.second;
virtual bool variable_match(const Handle &, const Handle &)
std::shared_ptr< VariableList > VariableListPtr
std::vector< std::map< Handle, Handle > > var_solns_
VariableListPtr _ext_vars
UnifyPMCB(AtomSpace *, VariableListPtr, VariableListPtr)
const VariableTypeMap * _type_restrictions
virtual bool grounding(const std::map< Handle, Handle > &var_soln, const std::map< Handle, Handle > &pred_soln)
unsigned short Type
type of Atoms, represented as short integer (16 bits)
virtual bool variable_match(const Handle &, const Handle &)
std::vector< std::map< Handle, Handle > > pred_solns_
VariableListPtr _int_vars