dlvhex  2.5.0
DependencyGraph::DependencyInfo Struct Reference

Stores meta information about a single dependency in the graph. More...

#include <include/dlvhex2/DependencyGraph.h>

Inheritance diagram for DependencyGraph::DependencyInfo:
Collaboration diagram for DependencyGraph::DependencyInfo:

Public Member Functions

 DependencyInfo ()
 Constructor.
const DependencyInfooperator|= (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

Detailed Description

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.


Constructor & Destructor Documentation

Constructor.

Reimplemented in ComponentGraph::DependencyInfo.

Definition at line 143 of file DependencyGraph.h.


Member Function Documentation

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.

Parameters:
otherComponentInfo to merge into this one.
Returns:
Reference to this.

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.


Field Documentation


The documentation for this struct was generated from the following files: