public abstract class AbstractSelfJoinSimplifier<C extends FunctionalDependency> extends Object
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractSelfJoinSimplifier.DeterminantGroupEvaluation |
protected static class |
AbstractSelfJoinSimplifier.NormalizationBeforeUnification |
protected static class |
AbstractSelfJoinSimplifier.OptimizationState
If extensional data nodes are empty, insert an EmptyNode
|
| Modifier and Type | Field and Description |
|---|---|
protected IntermediateQueryFactory |
iqFactory |
protected SubstitutionFactory |
substitutionFactory |
protected TermFactory |
termFactory |
protected ImmutableUnificationTools |
unificationTools |
| Constructor and Description |
|---|
AbstractSelfJoinSimplifier(CoreSingletons coreSingletons) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract boolean |
canEliminateNodes() |
protected abstract Optional<AbstractSelfJoinSimplifier.DeterminantGroupEvaluation> |
evaluateDeterminantGroup(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<VariableOrGroundTerm> determinants,
Collection<ExtensionalDataNode> dataNodes,
C constraint) |
protected abstract Stream<C> |
extractConstraints(RelationDefinition relationDefinition) |
protected abstract boolean |
hasConstraint(ExtensionalDataNode node) |
protected AbstractSelfJoinSimplifier.NormalizationBeforeUnification |
normalizeDataNodes(Collection<ExtensionalDataNode> dataNodes,
C constraint)
TODO: we don't need to remove the functional terms for the determinants
|
protected AbstractSelfJoinSimplifier.OptimizationState |
optimizeExtensionalDataNodes(RelationDefinition relationDefinition,
Collection<ExtensionalDataNode> dataNodes) |
Optional<IQTree> |
transformInnerJoin(InnerJoinNode rootNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> projectedVariables)
Returns an empty result to indicate that no optimization has been applied
|
protected Optional<ImmutableUnificationTools.ArgumentMapUnification> |
unifyDataNodes(Stream<ExtensionalDataNode> dataNodes,
Function<ExtensionalDataNode,it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm>> argumentMapSelector) |
protected final IntermediateQueryFactory iqFactory
protected final TermFactory termFactory
protected final ImmutableUnificationTools unificationTools
protected final SubstitutionFactory substitutionFactory
public AbstractSelfJoinSimplifier(CoreSingletons coreSingletons)
public Optional<IQTree> transformInnerJoin(InnerJoinNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children, it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> projectedVariables)
protected abstract boolean canEliminateNodes()
protected abstract boolean hasConstraint(ExtensionalDataNode node)
protected AbstractSelfJoinSimplifier.OptimizationState optimizeExtensionalDataNodes(RelationDefinition relationDefinition, Collection<ExtensionalDataNode> dataNodes)
protected abstract Stream<C> extractConstraints(RelationDefinition relationDefinition)
protected abstract Optional<AbstractSelfJoinSimplifier.DeterminantGroupEvaluation> evaluateDeterminantGroup(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<VariableOrGroundTerm> determinants, Collection<ExtensionalDataNode> dataNodes, C constraint)
protected Optional<ImmutableUnificationTools.ArgumentMapUnification> unifyDataNodes(Stream<ExtensionalDataNode> dataNodes, Function<ExtensionalDataNode,it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm>> argumentMapSelector)
protected AbstractSelfJoinSimplifier.NormalizationBeforeUnification normalizeDataNodes(Collection<ExtensionalDataNode> dataNodes, C constraint)
Copyright © 2009–2021 Free University of Bozen-Bolzano. All rights reserved.