dlvhex
2.5.0
|
Stores meta information about a single dependency in the graph. More...
#include <include/dlvhex2/DependencyGraph.h>
Public Member Functions | |
DependencyInfo () | |
Constructor. | |
const DependencyInfo & | operator|= (const DependencyInfo &other) |
Merges another DependencyInfo into this one. | |
std::ostream & | print (std::ostream &o) const |
Data Fields | |
bool | positiveRegularRule |
bool | positiveConstraint |
bool | negativeRule |
bool | unifyingHead |
bool | disjunctive |
bool | positiveExternal |
bool | negativeExternal |
bool | externalConstantInput |
bool | externalPredicateInput |
bool | externalNonmonotonicPredicateInput |
Stores meta information about a single dependency in the graph.
* dependency A -> B where A is a regular rule and B is a regular rule: * one of A's positive body ordinary atom literals unifies with one of B's head atoms -> "positiveRegularRule" * one of A's negative body ordinary atom literals unifies with one of B's head atoms -> "negativeRule" * one of A's head atoms unifies with one of B's head atoms -> "unifyingHead" if A or B has a disjunctive head -> "disjunctive" * dependency A -> B where A is a constraint and B is a regular rule: * one of A's positive body ordinary atom literals unifies with one of B's head atoms -> "positiveConstraint" * one of A's negative body ordinary atom literals unifies with one of B's head atoms -> "negativeRule" * dependency A -> X where A is a rule and X is an external atom: * X is present in the positive body of A and X is monotonic -> "positiveExternal" * X is present in the positive body of A and X is nonmonotonic -> "positiveExternal" and "negativeExternal" * X is present in the negative body of A and X is monotonic -> "negativeExternal" * X is present in the negative body of A and X is nonmonotonic -> "positiveExternal" and "negativeExternal" * dependency X -> A where X is an external atom and A is a rule: * A is the auxiliary input rule providing input for X in rule/constraint B -> "externalConstantInput" * a predicate input of X matches one head of rule A -> "externalPredicateInput" * a nonmonotonic predicate input of X matches one head of rule A -> "externalPredicateInput" and "externalNonmonotonicPredicateInput".
Definition at line 128 of file DependencyGraph.h.
DependencyGraph::DependencyInfo::DependencyInfo | ( | ) | [inline] |
Constructor.
Reimplemented in ComponentGraph::DependencyInfo.
Definition at line 143 of file DependencyGraph.h.
DLVHEX_NAMESPACE_BEGIN const DependencyGraph::DependencyInfo & DependencyGraph::DependencyInfo::operator|= | ( | const DependencyInfo & | other | ) |
Merges another DependencyInfo into this one.
Note that this is already possible without ambiguity.
other | ComponentInfo to merge into this one. |
Definition at line 61 of file DependencyGraph.cpp.
References disjunctive, externalConstantInput, externalNonmonotonicPredicateInput, externalPredicateInput, negativeExternal, negativeRule, positiveConstraint, positiveExternal, positiveRegularRule, and unifyingHead.
std::ostream & DependencyGraph::DependencyInfo::print | ( | std::ostream & | o | ) | const |
Reimplemented in ComponentGraph::DependencyInfo.
Definition at line 84 of file DependencyGraph.cpp.
Definition at line 135 of file DependencyGraph.h.
Referenced by DependencyGraph::createHeadHeadUnifyingDependencies(), and operator|=().
Definition at line 138 of file DependencyGraph.h.
Referenced by DependencyGraph::createAuxiliaryRuleIfRequired(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 140 of file DependencyGraph.h.
Referenced by EvalHeuristicGreedy::build(), DependencyGraph::createExternalPredicateInputDependenciesForInput(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 139 of file DependencyGraph.h.
Referenced by DependencyGraph::createExternalPredicateInputDependenciesForInput(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 137 of file DependencyGraph.h.
Referenced by DependencyGraph::createNodesAndIntraRuleDependenciesForBody(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 133 of file DependencyGraph.h.
Referenced by ComponentGraph::computeCollapsedComponentInfos(), DependencyGraph::createHeadBodyUnifyingDependencies(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 132 of file DependencyGraph.h.
Referenced by DependencyGraph::createHeadBodyUnifyingDependencies(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 136 of file DependencyGraph.h.
Referenced by DependencyGraph::createNodesAndIntraRuleDependenciesForBody(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 131 of file DependencyGraph.h.
Referenced by DependencyGraph::createHeadBodyUnifyingDependencies(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().
Definition at line 134 of file DependencyGraph.h.
Referenced by DependencyGraph::createHeadHeadUnifyingDependencies(), operator|=(), ComponentGraph::writeGraphVizDependencyLabel(), and DependencyGraph::writeGraphVizDependencyLabel().