public class RDFTermFunctionSymbolImpl extends FunctionSymbolImpl implements RDFTermFunctionSymbol
FunctionSymbol.FunctionalTermNullability| Modifier | Constructor and Description |
|---|---|
protected |
RDFTermFunctionSymbolImpl(TermType lexicalType,
MetaRDFTermType typeTermType) |
| Modifier and Type | Method and Description |
|---|---|
protected ImmutableTerm |
buildTermAfterEvaluation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<ImmutableTerm> newTerms,
TermFactory termFactory,
VariableNullability variableNullability)
By default, just build a new functional term.
|
boolean |
canBePostProcessed(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments)
1.
|
protected boolean |
canBeSafelyDecomposedIntoConjunction(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
VariableNullability variableNullability,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> otherTerms)
TODO: stop overriding (only use the top implementation)
|
IncrementalEvaluation |
evaluateIsNotNull(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
TermFactory termFactory,
VariableNullability variableNullability)
Overridden because, it officially "tolerates" NULLs, due to the requirement that either its arguments
are both null or both non-null.
|
IncrementalEvaluation |
evaluateStrictEq(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
ImmutableTerm otherTerm,
TermFactory termFactory,
VariableNullability variableNullability)
Default implementation, to be overridden to convert more cases
Incoming terms are not simplified as they are presumed to be already simplified
(so please simplify them before)
|
Optional<TermTypeInference> |
inferType(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms) |
boolean |
isAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms()
When the function symbol is, in the absence of non-injective functional sub-terms, sometimes but not always injective,
please override isInjective(...)
|
protected boolean |
mayReturnNullWithoutNullArguments()
Returns false when a functional term with this symbol:
1.
|
Stream<Variable> |
proposeProvenanceVariables(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms)
Looks at the lexical term for provenance variables
|
FunctionalTermSimplification |
simplifyAsGuaranteedToBeNonNull(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
TermFactory termFactory)
Overridden because RDF(...) officially "tolerates" NULLs
(so as to complain when only one argument is NULL, which should never happen)
|
protected boolean |
tolerateNulls()
E.g.
|
analyzeInjectivity, decomposeInjectiveTopFunctionalTerm, enableIfElseNullLifting, evaluateNullability, evaluateStrictEqWithFunctionalTerm, evaluateStrictEqWithNonNullConstant, getExpectedBaseType, getExpectedBaseTypes, isAggregation, isDeterministic, isInjective, isNullable, simplify, transformIntoRegularArguments, tryToLiftMagicNumbersequals, getArity, getName, hashCode, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitanalyzeInjectivity, evaluateNullability, getExpectedBaseType, isAggregation, isDeterministic, isNullable, simplifyprotected RDFTermFunctionSymbolImpl(TermType lexicalType, MetaRDFTermType typeTermType)
public boolean isAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms()
FunctionSymbolImplisAlwaysInjectiveInTheAbsenceOfNonInjectiveFunctionalTerms in class FunctionSymbolImplpublic Optional<TermTypeInference> inferType(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms)
inferType in interface FunctionSymbolprotected ImmutableTerm buildTermAfterEvaluation(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<ImmutableTerm> newTerms, TermFactory termFactory, VariableNullability variableNullability)
FunctionSymbolImplbuildTermAfterEvaluation in class FunctionSymbolImplpublic boolean canBePostProcessed(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> arguments)
FunctionSymbolcanBePostProcessed in interface FunctionSymbolprotected boolean mayReturnNullWithoutNullArguments()
FunctionSymbolImplmayReturnNullWithoutNullArguments in class FunctionSymbolImplprotected boolean tolerateNulls()
tolerateNulls in class FunctionSymbolImplpublic IncrementalEvaluation evaluateStrictEq(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, ImmutableTerm otherTerm, TermFactory termFactory, VariableNullability variableNullability)
FunctionSymbolImplevaluateStrictEq in interface FunctionSymbolevaluateStrictEq in class FunctionSymbolImplpublic IncrementalEvaluation evaluateIsNotNull(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, TermFactory termFactory, VariableNullability variableNullability)
evaluateIsNotNull in interface FunctionSymbolevaluateIsNotNull in class FunctionSymbolImplpublic Stream<Variable> proposeProvenanceVariables(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms)
proposeProvenanceVariables in interface FunctionSymbolproposeProvenanceVariables in class FunctionSymbolImplprotected boolean canBeSafelyDecomposedIntoConjunction(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, VariableNullability variableNullability, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> otherTerms)
canBeSafelyDecomposedIntoConjunction in class FunctionSymbolImplpublic FunctionalTermSimplification simplifyAsGuaranteedToBeNonNull(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, TermFactory termFactory)
simplifyAsGuaranteedToBeNonNull in interface FunctionSymbolsimplifyAsGuaranteedToBeNonNull in class FunctionSymbolImplCopyright © 2009–2021 Free University of Bozen-Bolzano. All rights reserved.