Class GenericFOQueryEvaluator<QD extends QueryableData>
java.lang.Object
fr.inria.rules.integraal.query_evaluation.generic.GenericFOQueryEvaluator<QD>
- Type Parameters:
QD- the queryable data type evaluated by this dispatcher
- All Implemented Interfaces:
FOQueryEvaluator<FOFormula, QD>, QueryEvaluator<FOQuery<? extends FOFormula>, QD>
public class GenericFOQueryEvaluator<QD extends QueryableData>
extends Object
implements FOQueryEvaluator<FOFormula, QD>
Evaluates a
FOQuery by dispatching it to the correct evaluator. This
is used to abstract the query evaluation when the exact query type is not
known such as during a compound query (conjunction or disjunction)
sub-queries evaluation.-
Constructor Summary
ConstructorsConstructorDescriptionCreates an evaluator without configured sub-evaluators. -
Method Summary
Modifier and TypeMethodDescriptionstatic <QD extends QueryableData>
GenericFOQueryEvaluator<QD> The default instance is used to give a default behavior to the evaluator when one doesn't want to configure it.defaultInstanceWithInfCompilation(RuleCompilation compilation) Creates a default evaluator whose atomic evaluation uses inf-homomorphism over a rule compilation.static <QD extends QueryableData>
GenericFOQueryEvaluator<QD> defaultInstanceWithUnfoldCompilation(RuleCompilation compilation) Creates a default evaluator whose atomic evaluation unfolds a rule compilation.evaluate(FOQuery<? extends FOFormula> query, QD queryableData, Collection<Variable> vars, Substitution preHomomorphism) //////////////////////////////////////////////PreparedFOQuery<? extends FOFormula, QD> prepareQuery(FOQuery<? extends FOFormula> query, QD queryableData, Collection<Variable> variablesThatMustBeMappedToGroundTerms) Creates a prepared first-order query bound to a data source and ground-term policy.setAtomicEvaluator(FOQueryEvaluator<Atom, QD> evaluator) Sets the evaluator for atomic queriessetConjunctionEvaluator(FOQueryEvaluator<FOFormulaConjunction, QD> evaluator) Sets the evaluator for conjunction of queriessetDisjunctionEvaluator(FOQueryEvaluator<FOFormulaDisjunction, QD> evaluator) Sets the evaluator for disjunction of queriessetNegationEvaluator(FOQueryEvaluator<FOFormulaNegation, QD> evaluator) Sets the evaluator for negation of queriesMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface FOQueryEvaluator
prepareQueryMethods inherited from interface QueryEvaluator
countAnswers, countHomomorphism, evaluate, evaluate, existAnswer, existAnswer, existHomomorphism, existHomomorphism, homomorphism, homomorphism, postprocessResult, postprocessResult
-
Constructor Details
-
GenericFOQueryEvaluator
public GenericFOQueryEvaluator()Creates an evaluator without configured sub-evaluators.
-
-
Method Details
-
defaultInstance
The default instance is used to give a default behavior to the evaluator when one doesn't want to configure it.- Type Parameters:
QD- the queryable data type evaluated by the instance- Returns:
- the default instance of the evaluator
-
defaultInstanceWithUnfoldCompilation
public static <QD extends QueryableData> GenericFOQueryEvaluator<QD> defaultInstanceWithUnfoldCompilation(RuleCompilation compilation) Creates a default evaluator whose atomic evaluation unfolds a rule compilation.- Type Parameters:
QD- the queryable data type evaluated by the instance- Parameters:
compilation- a compilation of rules- Returns:
- an instance of the evaluator using compilation with unfold evaluation strategy
-
defaultInstanceWithInfCompilation
public static GenericFOQueryEvaluator<MaterializedData> defaultInstanceWithInfCompilation(RuleCompilation compilation) Creates a default evaluator whose atomic evaluation uses inf-homomorphism over a rule compilation.- Parameters:
compilation- a compilation of rules- Returns:
- an instance of the evaluator using compilation with inf-homomorphism evaluation strategy
-
setAtomicEvaluator
Sets the evaluator for atomic queries- Parameters:
evaluator- the atomic query evaluator to use for recursive calls- Returns:
- this evaluator for successive calls
-
setConjunctionEvaluator
public GenericFOQueryEvaluator<QD> setConjunctionEvaluator(FOQueryEvaluator<FOFormulaConjunction, QD> evaluator) Sets the evaluator for conjunction of queries- Parameters:
evaluator- the conjunction evaluator to use for recursive calls- Returns:
- this evaluator for successive calls
-
setDisjunctionEvaluator
public GenericFOQueryEvaluator<QD> setDisjunctionEvaluator(FOQueryEvaluator<FOFormulaDisjunction, QD> evaluator) Sets the evaluator for disjunction of queries- Parameters:
evaluator- the disjunction evaluator to use for recursive calls- Returns:
- this evaluator for successive calls
-
setNegationEvaluator
public GenericFOQueryEvaluator<QD> setNegationEvaluator(FOQueryEvaluator<FOFormulaNegation, QD> evaluator) Sets the evaluator for negation of queries- Parameters:
evaluator- the negation evaluator to use for recursive calls- Returns:
- this evaluator for successive calls
-
evaluate
public Stream<Substitution> evaluate(FOQuery<? extends FOFormula> query, QD queryableData, Collection<Variable> vars, Substitution preHomomorphism) throws EvaluationException //////////////////////////////////////////////- Specified by:
evaluatein interfaceFOQueryEvaluator<FOFormula, QD extends QueryableData>- Specified by:
evaluatein interfaceQueryEvaluator<FOQuery<? extends FOFormula>, QD extends QueryableData>- Parameters:
query- the query to evaluatequeryableData- the data source against which the query is evaluatedvars- variables constrained to constant answerspreHomomorphism- a partial substitution to extend- Returns:
- a stream of substitutions answering the query
- Throws:
EvaluationException- if the evaluation cannot be completed
-
prepareQuery
public PreparedFOQuery<? extends FOFormula, QD> prepareQuery(FOQuery<? extends FOFormula> query, QD queryableData, Collection<Variable> variablesThatMustBeMappedToGroundTerms) Description copied from interface:FOQueryEvaluatorCreates a prepared first-order query bound to a data source and ground-term policy.- Specified by:
prepareQueryin interfaceFOQueryEvaluator<FOFormula, QD extends QueryableData>- Specified by:
prepareQueryin interfaceQueryEvaluator<FOQuery<? extends FOFormula>, QD extends QueryableData>- Parameters:
query- the query to preparequeryableData- the data source against which the query will runvariablesThatMustBeMappedToGroundTerms- variables constrained to ground answers- Returns:
- a prepared query wrapper
-