Class ArgumentTransferInnerJoinFDIQOptimizer.SelfJoinFDSimplifier
- java.lang.Object
-
- it.unibz.inf.ontop.iq.optimizer.impl.AbstractSelfJoinSimplifier<FunctionalDependency>
-
- it.unibz.inf.ontop.iq.optimizer.impl.ArgumentTransferInnerJoinFDIQOptimizer.SelfJoinFDSimplifier
-
- Enclosing class:
- ArgumentTransferInnerJoinFDIQOptimizer
protected static class ArgumentTransferInnerJoinFDIQOptimizer.SelfJoinFDSimplifier extends AbstractSelfJoinSimplifier<FunctionalDependency>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class it.unibz.inf.ontop.iq.optimizer.impl.AbstractSelfJoinSimplifier
AbstractSelfJoinSimplifier.DeterminantGroupEvaluation, AbstractSelfJoinSimplifier.NormalizationBeforeUnification, AbstractSelfJoinSimplifier.OptimizationState
-
-
Field Summary
-
Fields inherited from class it.unibz.inf.ontop.iq.optimizer.impl.AbstractSelfJoinSimplifier
iqFactory, substitutionFactory, termFactory, unificationTools
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSelfJoinFDSimplifier(CoreSingletons coreSingletons)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancanEliminateNodes()protected Optional<AbstractSelfJoinSimplifier.DeterminantGroupEvaluation>evaluateDeterminantGroup(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<VariableOrGroundTerm> determinants, Collection<ExtensionalDataNode> dataNodes, FunctionalDependency constraint)protected Stream<FunctionalDependency>extractConstraints(RelationDefinition relationDefinition)protected booleanhasConstraint(ExtensionalDataNode node)protected ExtensionalDataNodeselectTargetDataNode(Collection<ExtensionalDataNode> dataNodes, FunctionalDependency constraint)Selects as target the node with largest number of external arguments.-
Methods inherited from class it.unibz.inf.ontop.iq.optimizer.impl.AbstractSelfJoinSimplifier
normalizeDataNodes, optimizeExtensionalDataNodes, transformInnerJoin, unifyDataNodes
-
-
-
-
Constructor Detail
-
SelfJoinFDSimplifier
protected SelfJoinFDSimplifier(CoreSingletons coreSingletons)
-
-
Method Detail
-
canEliminateNodes
protected boolean canEliminateNodes()
- Specified by:
canEliminateNodesin classAbstractSelfJoinSimplifier<FunctionalDependency>
-
hasConstraint
protected boolean hasConstraint(ExtensionalDataNode node)
- Specified by:
hasConstraintin classAbstractSelfJoinSimplifier<FunctionalDependency>
-
extractConstraints
protected Stream<FunctionalDependency> extractConstraints(RelationDefinition relationDefinition)
- Specified by:
extractConstraintsin classAbstractSelfJoinSimplifier<FunctionalDependency>
-
evaluateDeterminantGroup
protected Optional<AbstractSelfJoinSimplifier.DeterminantGroupEvaluation> evaluateDeterminantGroup(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<VariableOrGroundTerm> determinants, Collection<ExtensionalDataNode> dataNodes, FunctionalDependency constraint)
- Specified by:
evaluateDeterminantGroupin classAbstractSelfJoinSimplifier<FunctionalDependency>
-
selectTargetDataNode
protected ExtensionalDataNode selectTargetDataNode(Collection<ExtensionalDataNode> dataNodes, FunctionalDependency constraint)
Selects as target the node with largest number of external arguments. Why? Partially arbitrary, but such a target is more likely that it cannot be eliminated by the optimization based on the same terms.
-
-