| Modifier and Type | Method and Description |
|---|---|
VariableGenerator |
IQ.getVariableGenerator() |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
IQTree.liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator)
Tries to lift unions when they have incompatible definitions
for a variable.
|
IQTree |
IQTree.normalizeForOptimization(VariableGenerator variableGenerator) |
| Modifier and Type | Method and Description |
|---|---|
VariableGenerator |
IQImpl.getVariableGenerator() |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
BinaryNonCommutativeIQTreeImpl.liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator) |
IQTree |
NaryIQTreeImpl.liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator)
TODO: use the properties for optimization purposes?
|
IQTree |
UnaryIQTreeImpl.liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator) |
IQTree |
BinaryNonCommutativeIQTreeImpl.normalizeForOptimization(VariableGenerator variableGenerator) |
IQTree |
NaryIQTreeImpl.normalizeForOptimization(VariableGenerator variableGenerator) |
IQTree |
UnaryIQTreeImpl.normalizeForOptimization(VariableGenerator variableGenerator) |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
NaryOperatorNode.liftIncompatibleDefinitions(Variable variable,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator)
Deprecated.
|
IQTree |
BinaryOrderedOperatorNode.liftIncompatibleDefinitions(Variable variable,
IQTree leftChild,
IQTree rightChild,
VariableGenerator variableGenerator) |
IQTree |
UnaryOperatorNode.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator)
Deprecated.
|
IQTree |
NaryOperatorNode.normalizeForOptimization(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
BinaryOrderedOperatorNode.normalizeForOptimization(IQTree leftChild,
IQTree rightChild,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
UnaryOperatorNode.normalizeForOptimization(IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
UnionNodeImpl.liftIncompatibleDefinitions(Variable variable,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator)
TODO: make it compatible definitions together (requires a VariableGenerator so as to lift bindings)
|
IQTree |
InnerJoinNodeImpl.liftIncompatibleDefinitions(Variable variable,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator) |
IQTree |
LeftJoinNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree leftChild,
IQTree rightChild,
VariableGenerator variableGenerator) |
IQTree |
SliceNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator)
Does not lift unions, blocks them
|
IQTree |
OrderByNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator) |
IQTree |
FilterNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator) |
IQTree |
DistinctNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator)
TODO: implement it seriously! (is currently blocking)
|
IQTree |
AggregationNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator)
By default does not lift.
|
IQTree |
ConstructionNodeImpl.liftIncompatibleDefinitions(Variable variable,
IQTree child,
VariableGenerator variableGenerator) |
IQTree |
LeafIQTreeImpl.liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator) |
IQTree |
UnionNodeImpl.normalizeForOptimization(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
TODO: refactor
|
IQTree |
InnerJoinNodeImpl.normalizeForOptimization(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
TODO: refactor
|
IQTree |
LeftJoinNodeImpl.normalizeForOptimization(IQTree initialLeftChild,
IQTree initialRightChild,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
SliceNodeImpl.normalizeForOptimization(IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
OrderByNodeImpl.normalizeForOptimization(IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
FilterNodeImpl.normalizeForOptimization(IQTree initialChild,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
TODO: Optimization: lift direct construction and filter nodes before normalizing them
(so as to reduce the recursive pressure)
|
IQTree |
DistinctNodeImpl.normalizeForOptimization(IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
AggregationNodeImpl.normalizeForOptimization(IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
ConstructionNodeImpl.normalizeForOptimization(IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
- Merges with a child construction
- Removes itself if useless
|
IQTree |
LeafIQTreeImpl.normalizeForOptimization(VariableGenerator variableGenerator) |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
AggregationNormalizer.normalizeForOptimization(AggregationNode aggregationNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
DistinctNormalizer.normalizeForOptimization(DistinctNode distinctNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
FilterNormalizer.normalizeForOptimization(FilterNode filterNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
InnerJoinNormalizer.normalizeForOptimization(InnerJoinNode innerJoinNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
LeftJoinNormalizer.normalizeForOptimization(LeftJoinNode ljNode,
IQTree initialLeftChild,
IQTree initialRightChild,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
OrderByNormalizer.normalizeForOptimization(OrderByNode orderByNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
NotRequiredVariableRemover.optimize(IQTree tree,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> requiredVariables,
VariableGenerator variableGenerator) |
| Modifier and Type | Field and Description |
|---|---|
protected VariableGenerator |
NotRequiredVariableRemoverImpl.VariableRemoverTransformer.variableGenerator |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
DistinctNormalizerImpl.createNormalizedTree(InjectiveBindingLiftState state,
IQProperties currentIQProperties,
VariableGenerator variableGenerator) |
IQTree |
FilterNormalizerImpl.State.createNormalizedTree(VariableGenerator variableGenerator,
IQProperties currentIQProperties)
Returns a tree in which the "filter-level" sub-tree is declared as normalized.
|
<R> R |
JoinLikeChildBindingLifter.liftRegularChildBinding(ConstructionNode selectedChildConstructionNode,
int selectedChildPosition,
IQTree selectedGrandChild,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonLiftableVariables,
Optional<ImmutableExpression> initialJoiningCondition,
VariableGenerator variableGenerator,
VariableNullability variableNullability,
JoinLikeChildBindingLifter.BindingLiftConverter<R> bindingLiftConverter)
For children of a commutative join or for the left child of a LJ
|
FilterNormalizerImpl.State |
FilterNormalizerImpl.State.normalizeChild(VariableGenerator variableGenerator) |
IQTree |
AggregationNormalizerImpl.normalizeForOptimization(AggregationNode aggregationNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
Blocks distinct.
|
IQTree |
DistinctNormalizerImpl.normalizeForOptimization(DistinctNode distinctNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
FilterNormalizerImpl.normalizeForOptimization(FilterNode initialFilterNode,
IQTree initialChild,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
TODO: Optimization: lift direct construction and filter nodes before normalizing them
(so as to reduce the recursive pressure)
|
IQTree |
InnerJoinNormalizerImpl.normalizeForOptimization(InnerJoinNode innerJoinNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
LeftJoinNormalizerImpl.normalizeForOptimization(LeftJoinNode ljNode,
IQTree initialLeftChild,
IQTree initialRightChild,
VariableGenerator variableGenerator,
IQProperties currentIQProperties) |
IQTree |
OrderByNormalizerImpl.normalizeForOptimization(OrderByNode orderByNode,
IQTree child,
VariableGenerator variableGenerator,
IQProperties currentIQProperties)
NB: the loop is due to the lifting of both distinct and construction nodes
|
RightProvenanceNormalizer.RightProvenance |
RightProvenanceNormalizer.normalizeRightProvenance(IQTree rightTree,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> leftVariables,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> rightRequiredVariables,
VariableGenerator variableGenerator) |
RightProvenanceNormalizer.RightProvenance |
RightProvenanceNormalizer.normalizeRightProvenance(IQTree rightTree,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> leftVariables,
Optional<ImmutableExpression> leftJoinExpression,
VariableGenerator variableGenerator) |
IQTree |
NotRequiredVariableRemoverImpl.optimize(IQTree tree,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> requiredVariables,
VariableGenerator variableGenerator) |
protected IQTree |
NotRequiredVariableRemoverImpl.removeNonRequiredVariables(IQTree tree,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> variablesToRemove,
VariableGenerator variableGenerator) |
| Constructor and Description |
|---|
AggregationNormalizationState(AggregationNode aggregationNode,
ConstructionNode childConstructionNode,
IQTree grandChild,
VariableGenerator variableGenerator)
Initial state
|
FreshVariableTransformer(CoreSingletons coreSingletons,
VariableGenerator variableGenerator) |
InjectiveBindingLiftState(ConstructionNode childConstructionNode,
IQTree grandChildTree,
VariableGenerator variableGenerator,
CoreSingletons coreSingletons)
Initial state
|
VariableRemoverTransformer(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> variablesToRemove,
VariableGenerator variableGenerator,
CoreSingletons coreSingletons) |
| Modifier and Type | Method and Description |
|---|---|
ProjectionDecomposer.ProjectionDecomposition |
ProjectionDecomposer.decomposeSubstitution(ImmutableSubstitution<? extends ImmutableTerm> substitution,
VariableGenerator variableGenerator) |
| Modifier and Type | Method and Description |
|---|---|
ProjectionDecomposer.ProjectionDecomposition |
ProjectionDecomposerImpl.decomposeSubstitution(ImmutableSubstitution<? extends ImmutableTerm> substitution,
VariableGenerator variableGenerator) |
| Modifier and Type | Method and Description |
|---|---|
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
ImmutableFunctionalTerm.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator)
Returns an empty optional when no decomposition is possible
In the decomposition, the liftable term is injective.
|
| Modifier and Type | Method and Description |
|---|---|
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
FunctionSymbol.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
Optional<SPARQLAggregationFunctionSymbol.AggregationSimplification> |
SPARQLAggregationFunctionSymbol.decomposeIntoDBAggregation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType>> possibleRDFTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
| Modifier and Type | Method and Description |
|---|---|
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
AbstractDBConcatFunctionSymbol.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
DefaultDBIfElseNullFunctionSymbol.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
| Modifier and Type | Method and Description |
|---|---|
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
ConcatSPARQLFunctionSymbolImpl.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
FunctionSymbolImpl.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory)
To be overridden when is sometimes but not always injective in the absence of non-injective functional terms
|
protected ImmutableFunctionalTerm.FunctionalTermDecomposition |
FunctionSymbolImpl.decomposeInjectiveTopFunctionalTerm(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory)
Only when injectivity of the top function symbol is proved!
|
Optional<SPARQLAggregationFunctionSymbol.AggregationSimplification> |
MinOrMaxSPARQLFunctionSymbolImpl.decomposeIntoDBAggregation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType>> possibleRDFTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory)
TODO: put it into common in an abstract class
|
Optional<SPARQLAggregationFunctionSymbol.AggregationSimplification> |
CountSPARQLFunctionSymbolImpl.decomposeIntoDBAggregation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType>> possibleRDFTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory)
Simplifies itself without needing the call of this method.
|
Optional<SPARQLAggregationFunctionSymbol.AggregationSimplification> |
UnaryNumericSPARQLAggregationFunctionSymbolImpl.decomposeIntoDBAggregation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType>> possibleRDFTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
Optional<SPARQLAggregationFunctionSymbol.AggregationSimplification> |
GroupConcatSPARQLFunctionSymbolImpl.decomposeIntoDBAggregation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> subTerms,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType>> possibleRDFTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
protected SPARQLAggregationFunctionSymbol.AggregationSimplification |
SumLikeSPARQLAggregationFunctionSymbolImpl.decomposeMultityped(ImmutableTerm subTerm,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType> subTermPossibleTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
protected abstract SPARQLAggregationFunctionSymbol.AggregationSimplification |
UnaryNumericSPARQLAggregationFunctionSymbolImpl.decomposeMultityped(ImmutableTerm subTerm,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType> subTermPossibleTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
protected SPARQLAggregationFunctionSymbol.AggregationSimplification |
AvgSPARQLFunctionSymbolImpl.decomposeMultityped(ImmutableTerm subTerm,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<RDFTermType> subTermPossibleTypes,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory)
Here the aggregated value will be a DB decimal
(we ignore the distinction between decimal, float and double)
3 possible XSD datatypes are possible for the output: DECIMAL, FLOAT and DOUBLE
|
protected SPARQLAggregationFunctionSymbol.AggregationSimplification |
UnaryNumericSPARQLAggregationFunctionSymbolImpl.decomposeUnityped(ImmutableTerm subTerm,
RDFTermType subTermType,
boolean hasGroupBy,
VariableNullability variableNullability,
VariableGenerator variableGenerator,
TermFactory termFactory) |
| Modifier and Type | Method and Description |
|---|---|
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
ImmutableFunctionalTermImpl.analyzeInjectivity(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator) |
| Modifier and Type | Method and Description |
|---|---|
InjectiveVar2VarSubstitution |
SubstitutionFactory.generateNotConflictingRenaming(VariableGenerator variableGenerator,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> variables) |
| Modifier and Type | Method and Description |
|---|---|
InjectiveVar2VarSubstitution |
SubstitutionFactoryImpl.generateNotConflictingRenaming(VariableGenerator variableGenerator,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> variables)
Non-conflicting variable:
- initial variable of the variable set not known by the generator
- or a fresh variable generated by the generator NOT PRESENT in the variable set
|
| Modifier and Type | Method and Description |
|---|---|
VariableGenerator |
VariableGenerator.createSnapshot()
Instant snapshot of variable it knows.
|
VariableGenerator |
CoreUtilsFactory.createVariableGenerator(Collection<Variable> knownVariables) |
| Modifier and Type | Class and Description |
|---|---|
class |
LegacyVariableGenerator
Old-style variable generator
TODO: remove it!
|
class |
VariableGeneratorImpl
Beware: not thread-safe!
See CoreUtilsFactory for building new instances
|
| Modifier and Type | Method and Description |
|---|---|
VariableGenerator |
LegacyVariableGenerator.createSnapshot() |
VariableGenerator |
VariableGeneratorImpl.createSnapshot() |
Copyright © 2009–2021 Free University of Bozen-Bolzano. All rights reserved.