org.eclipse.rdf4j.query.algebra.evaluation

## Interface EvaluationStrategy

- All Superinterfaces:
    FederatedServiceResolver
  All Known Implementing Classes:
    EvaluationStrategyImpl, ExtendedEvaluationStrategy, FederationEvalStrategy, FederationStrategy, LimitedSizeEvaluationStrategy, SailFederationEvalStrategy, SimpleEvaluationStrategy, SparqlFederationEvalStrategy, StrictEvaluationStrategy, TupleFunctionEvaluationStrategy

      public interface EvaluationStrategy
      extends FederatedServiceResolver

  Evaluates `TupleExpr`s and `ValueExpr`s.
  Author:
    Arjohn Kampman, James Leigh

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `CloseableIteration<BindingSet,QueryEvaluationException>` | `evaluate(Service expr, String serviceUri, CloseableIteration<BindingSet,QueryEvaluationException> bindings)` Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
    `CloseableIteration<BindingSet,QueryEvaluationException>` | `evaluate(TupleExpr expr, BindingSet bindings)` Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
    `Value` | `evaluate(ValueExpr expr, BindingSet bindings)` Gets the value of this expression.
    `FederatedService` | `getService(String serviceUrl)` Retrieve the `FederatedService` registered for serviceUrl.
    `boolean` | `isTrue(ValueExpr expr, BindingSet bindings)` Evaluates the boolean expression on the supplied TripleSource object.
    `TupleExpr` | `optimize(TupleExpr expr, EvaluationStatistics evaluationStatistics, BindingSet bindings)` Execute the `QueryOptimizerPipeline` on the given `TupleExpr` to optimize its execution plan.
    `void` | `setOptimizerPipeline(QueryOptimizerPipeline pipeline)` Set the `QueryOptimizerPipeline` to use for optimizing any incoming queries.
    `default void` | `setTrackResultSize(boolean trackResultSize)` Enable or disable results size tracking for the query plan.
    `default void` | `setTrackTime(boolean trackTime)` Enable or disable time tracking for the query plan.

- - ### Method Detail

    - #### getService

          FederatedService getService(String serviceUrl)
                               throws QueryEvaluationException

      Retrieve the `FederatedService` registered for serviceUrl. If there is no service registered for serviceUrl, a new `SPARQLFederatedService` is created and registered.
      Specified by:
        `getService` in interface `FederatedServiceResolver`
      Parameters:
        `serviceUrl` - URL of the service.
      Returns:
        the `FederatedService` registered for the serviceUrl.
      Throws:
        `QueryEvaluationException`
      See Also:
        `FederatedServiceResolver.getService(java.lang.String)`

    - #### setOptimizerPipeline

          void setOptimizerPipeline(QueryOptimizerPipeline pipeline)

      Set the `QueryOptimizerPipeline` to use for optimizing any incoming queries.
      Parameters:
        `pipeline` - the `QueryOptimizerPipeline`.
      Since:
        3.0
      See Also:
        `optimize(TupleExpr, EvaluationStatistics, BindingSet)`

    - #### optimize

          TupleExpr optimize(TupleExpr expr,
                             EvaluationStatistics evaluationStatistics,
                             BindingSet bindings)

      Execute the `QueryOptimizerPipeline` on the given `TupleExpr` to optimize its execution plan.
      Parameters:
        `expr` - the `TupleExpr` to optimize.
        `evaluationStatistics` - the `EvaluationStatistics` of the data source, to be used for query planning.
        `bindings` - a-priori bindings supplied for the query, which can potentially be inlined.
      Returns:
        the optimized `TupleExpr`.
      Since:
        3.0
      See Also:
        `setOptimizerPipeline(QueryOptimizerPipeline)`

    - #### evaluate

          CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Service expr,
                                                                           String serviceUri,
                                                                           CloseableIteration<BindingSet,QueryEvaluationException> bindings)
                                                                    throws QueryEvaluationException

      Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
      Parameters:
        `expr` - The Service Expression to evaluate
        `serviceUri` - TODO
        `bindings` - The variables bindings iterator to use for evaluating the expression, if applicable.
      Returns:
        A closeable iterator over all of variable binding sets that match the tuple expression.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          CloseableIteration<BindingSet,QueryEvaluationException> evaluate(TupleExpr expr,
                                                                           BindingSet bindings)
                                                                    throws QueryEvaluationException

      Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
      Parameters:
        `expr` - The Tuple Expression to evaluate
        `bindings` - The variables bindings to use for evaluating the expression, if applicable.
      Returns:
        A closeable iterator over the variable binding sets that match the tuple expression.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          Value evaluate(ValueExpr expr,
                         BindingSet bindings)
                  throws ValueExprEvaluationException,
                         QueryEvaluationException

      Gets the value of this expression.
      Parameters:
        `expr` -
        `bindings` - The variables bindings to use for evaluating the expression, if applicable.
      Returns:
        The Value that this expression evaluates to, or `null` if the expression could not be evaluated.
      Throws:
        `ValueExprEvaluationException`
        `QueryEvaluationException`

    - #### isTrue

          boolean isTrue(ValueExpr expr,
                         BindingSet bindings)
                  throws ValueExprEvaluationException,
                         QueryEvaluationException

      Evaluates the boolean expression on the supplied TripleSource object.
      Parameters:
        `expr` -
        `bindings` - The variables bindings to use for evaluating the expression, if applicable.
      Returns:
        The result of the evaluation.
      Throws:
        `ValueExprEvaluationException` - If the value expression could not be evaluated, for example when comparing two incompatible operands. When thrown, the result of the boolean expression is neither `true` nor `false` , but unknown.
        `QueryEvaluationException`

    - #### setTrackResultSize

          @Experimental
          default void setTrackResultSize(boolean trackResultSize)

      Enable or disable results size tracking for the query plan. Useful to determine which parts of a query plan generated the most data.
      Parameters:
        `trackResultSize` - true to enable tracking.

    - #### setTrackTime

          @Experimental
          default void setTrackTime(boolean trackTime)

      Enable or disable time tracking for the query plan. Useful to determine which parts of a query plan take the most time to evaluate.
      Parameters:
        `trackTime` - true to enable tracking.

Copyright © 2015-2021 Eclipse Foundation. All Rights Reserved.