public class IntensionalDataNodeImpl extends DataNodeImpl<AtomPredicate> implements IntensionalDataNode
iqFactory| Modifier and Type | Method and Description |
|---|---|
IntensionalDataNode |
acceptNodeTransformer(HomogeneousQueryNodeTransformer transformer)
"Accept" method for the "Visitor" pattern.
|
IQTree |
acceptTransformer(IQTreeVisitingTransformer transformer) |
<T> T |
acceptVisitor(IQVisitor<T> visitor) |
void |
acceptVisitor(QueryNodeVisitor visitor)
"Accept" method for the "Visitor" pattern.
|
IQTree |
applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
Applies the descending substitution WITHOUT applying any additional optimization.
|
IQTree |
applyFreshRenaming(InjectiveVar2VarSubstitution freshRenamingSubstitution)
Particular type of descending substitution: only renaming some variables by external ones.
|
IQTree |
applyFreshRenamingToAllVariables(InjectiveVar2VarSubstitution freshRenamingSubstitution)
Identical to applyFreshRenaming, but also applies to non projected variables
|
IntensionalDataNode |
clone()
See https://stackoverflow.com/questions/6837362/
|
com.google.common.collect.ImmutableSet<Variable> |
getNotInternallyRequiredVariables()
All the variables are required, because an intensional data node cannot be sparse.
|
com.google.common.collect.ImmutableSet<Variable> |
getRequiredVariables(IntermediateQuery query)
Set of variables which, individually, must be provided by at least one child,
INDEPENDENTLY OF THE REQUIREMENTS OF THIS NODE'S ANCESTORS.
|
VariableNullability |
getVariableNullability() |
com.google.common.collect.ImmutableSet<com.google.common.collect.ImmutableSet<Variable>> |
inferUniqueConstraints()
NOT guaranteed to return all the unique constraints (MAY BE INCOMPLETE)
Set of sets of determinants.
|
boolean |
isDistinct()
Intensional data nodes are assumed to correspond to triple/quad patterns, which are distinct by definition
|
boolean |
isEquivalentTo(QueryNode queryNode)
Is syntactically equivalent
|
boolean |
isSyntacticallyEquivalentTo(QueryNode node)
TODO: explain
|
boolean |
isVariableNullable(IntermediateQuery query,
Variable variable)
We assume all the variables are non-null.
|
IntensionalDataNode |
newAtom(DataAtom newAtom) |
String |
toString() |
void |
validate() |
getKnownVariables, getLocallyDefinedVariables, getLocallyRequiredVariables, getLocalVariables, getProjectionAtom, getVariables, isDeclaredAsEmptyapplyDescendingSubstitution, getChildren, getPossibleVariableDefinitions, getRootNode, isConstructed, isEquivalentTo, liftIncompatibleDefinitions, normalizeForOptimization, propagateDownConstraint, removeDistincts, replaceSubTreeequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetProjectionAtomgetRootNodeapplyDescendingSubstitution, getChildren, getKnownVariables, getPossibleVariableDefinitions, getVariables, isConstructed, isDeclaredAsEmpty, isEquivalentTo, isLeaf, liftIncompatibleDefinitions, normalizeForOptimization, propagateDownConstraint, removeDistincts, replaceSubTreegetVariablesgetLocallyDefinedVariables, getLocallyRequiredVariables, getLocalVariablespublic void acceptVisitor(QueryNodeVisitor visitor)
QueryNodeacceptVisitor in interface QueryNodepublic IntensionalDataNode clone()
QueryNodeImplclone in interface IntensionalDataNodeclone in interface QueryNodeclone in class QueryNodeImplpublic IntensionalDataNode acceptNodeTransformer(HomogeneousQueryNodeTransformer transformer) throws QueryNodeTransformationException
QueryNodeacceptNodeTransformer in interface LeafIQTreeacceptNodeTransformer in interface IntensionalDataNodeacceptNodeTransformer in interface QueryNodeQueryNodeTransformationExceptionpublic boolean isVariableNullable(IntermediateQuery query, Variable variable)
isVariableNullable in interface QueryNodepublic IQTree acceptTransformer(IQTreeVisitingTransformer transformer)
acceptTransformer in interface IQTreepublic boolean isDistinct()
isDistinct in interface IQTreepublic <T> T acceptVisitor(IQVisitor<T> visitor)
acceptVisitor in interface IQTreepublic IQTree applyFreshRenaming(InjectiveVar2VarSubstitution freshRenamingSubstitution)
IQTreeapplyFreshRenaming in interface IQTreepublic IQTree applyFreshRenamingToAllVariables(InjectiveVar2VarSubstitution freshRenamingSubstitution)
IQTreeapplyFreshRenamingToAllVariables in interface IQTreepublic VariableNullability getVariableNullability()
getVariableNullability in interface IQTreepublic void validate()
throws InvalidIntermediateQueryException
validate in interface IQTreeInvalidIntermediateQueryExceptionpublic com.google.common.collect.ImmutableSet<com.google.common.collect.ImmutableSet<Variable>> inferUniqueConstraints()
IQTreeinferUniqueConstraints in interface IQTreepublic boolean isSyntacticallyEquivalentTo(QueryNode node)
QueryNodeisSyntacticallyEquivalentTo in interface QueryNodepublic com.google.common.collect.ImmutableSet<Variable> getRequiredVariables(IntermediateQuery query)
QueryNodegetRequiredVariables in interface QueryNodegetRequiredVariables in class DataNodeImpl<AtomPredicate>public boolean isEquivalentTo(QueryNode queryNode)
QueryNodeisEquivalentTo in interface QueryNodepublic IntensionalDataNode newAtom(DataAtom newAtom)
newAtom in interface IntensionalDataNodepublic IQTree applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
IQTreeapplyDescendingSubstitutionWithoutOptimizing in interface IQTreepublic com.google.common.collect.ImmutableSet<Variable> getNotInternallyRequiredVariables()
getNotInternallyRequiredVariables in interface IQTreeCopyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.