23 #ifndef _OPENCOG_PATTERN_LINK_H
24 #define _OPENCOG_PATTERN_LINK_H
26 #include <unordered_map>
107 const std::vector<Handle> &component);
113 std::set<Handle>& black_clauses);
161 const std::set<Handle>& optionals);
188 #define createPatternLink std::make_shared<PatternLink>
193 #endif // _OPENCOG_PATTERN_LINK_H
void unbundle_virtual(const std::set< Handle > &vars, const HandleSeq &clauses, HandleSeq &concrete_clauses, HandleSeq &virtual_clauses, std::set< Handle > &black_clauses)
std::shared_ptr< PatternTerm > PatternTermPtr
std::vector< Handle > HandleSeq
a list of handles
void debug_print(void) const
std::shared_ptr< Atom > AtomPtr
std::map< Handle, const std::set< Type > > VariableTypeMap
void check_connectivity(const std::vector< HandleSeq > &)
PatternLink(Type, const HandleSeq &, TruthValuePtr tv=TruthValue::DEFAULT_TV(), AttentionValuePtr av=AttentionValue::DEFAULT_AV())
std::shared_ptr< TruthValue > TruthValuePtr
const Handle & get_body(void) const
const Variables & get_variables(void) const
std::shared_ptr< AttentionValue > AttentionValuePtr
virtual std::string toShortString(std::string indent="")=0
void trace_connectives(const std::set< Type > &, const HandleSeq &clauses)
void validate_clauses(std::set< Handle > &vars, HandleSeq &clauses)
void make_term_tree_recursive(const Handle &, const Handle &, PatternTermPtr &)
HandleSeq _component_patterns
void setup_components(void)
The second half of the common initialization sequence.
std::vector< std::set< Handle > > _component_vars
bool satisfy(PatternMatchCallback &) const
void unbundle_clauses(const Handle &body)
static TruthValuePtr DEFAULT_TV()
std::vector< HandleSeq > _components
static PatternLinkPtr PatternLinkCast(const Handle &h)
const Pattern & get_pattern(void)
void make_connectivity_map(const HandleSeq &)
static AttentionValuePtr DEFAULT_AV()
to be used as default attention value
static void prt(const Handle &h)
std::shared_ptr< PatternLink > PatternLinkPtr
void extract_variables(const HandleSeq &oset)
void init_scoped_variables(const Handle &hvar)
unsigned short Type
type of Atoms, represented as short integer (16 bits)
void extract_optionals(const std::set< Handle > &vars, const std::vector< Handle > &component)
void make_map_recursive(const Handle &, const Handle &)