Package org.eclipse.rdf4j.query.algebra.evaluation.impl

## Class StrictEvaluationStrategy

- java.lang.Object
- - org.eclipse.rdf4j.query.algebra.evaluation.impl.StrictEvaluationStrategy

- All Implemented Interfaces:
    `EvaluationStrategy`, `FederatedServiceResolver`, `FederatedServiceResolverClient`, `UUIDable`
  Direct Known Subclasses:
    `EvaluationStrategyImpl`, `FederationEvalStrategy`, `LimitedSizeEvaluationStrategy`, `SimpleEvaluationStrategy`, `TupleFunctionEvaluationStrategy`

      public class StrictEvaluationStrategy
      extends Object
      implements EvaluationStrategy, FederatedServiceResolverClient, UUIDable

  Minimally-conforming SPARQL 1.1 Query Evaluation strategy, to evaluate one `TupleExpr` on the given `TripleSource`, optionally using the given `Dataset`.
  Author:
    Jeen Broekstra, James Leigh, Arjohn Kampman, David Huynh, Andreas Schwarte
  See Also:
    `ExtendedEvaluationStrategy`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Dataset` | `dataset` |
    `protected FederatedServiceResolver` | `serviceResolver` |
    `protected TripleSource` | `tripleSource` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StrictEvaluationStrategy​(TripleSource tripleSource, FederatedServiceResolver serviceResolver)` |
    `StrictEvaluationStrategy​(TripleSource tripleSource, Dataset dataset, FederatedServiceResolver serviceResolver)` |
    `StrictEvaluationStrategy​(TripleSource tripleSource, Dataset dataset, FederatedServiceResolver serviceResolver, long iterationCacheSyncTreshold, EvaluationStatistics evaluationStatistics)` |
    `StrictEvaluationStrategy​(TripleSource tripleSource, Dataset dataset, FederatedServiceResolver serviceResolver, long iterationCacheSyncTreshold, EvaluationStatistics evaluationStatistics, boolean trackResultSize)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Value` | `evaluate​(And node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(ArbitraryLengthPath alp, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(BinaryTupleOperator expr, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(BindingSetAssignment bsa, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(BNodeGenerator node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Bound node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Coalesce node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(CompareAll node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(CompareAny node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Compare node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Datatype node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(DescribeOperator operator, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Difference difference, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Distinct distinct, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(EmptySet emptySet, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Now node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Exists node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Extension extension, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Filter filter, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(FunctionCall node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Group node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(If node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(In node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Intersection intersection, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `IRI` | `evaluate​(IRIFunction node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(IsBNode node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(IsLiteral node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(IsNumeric node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(IsResource node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(IsURI node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Join join, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Label node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(LangMatches node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Lang node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(LeftJoin leftJoin, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Like node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(ListMemberOperator node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(LocalName node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(MathExpr node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(MultiProjection multiProjection, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Namespace node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Not node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Order node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Or node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Projection projection, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Reduced reduced, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Regex node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(SameTerm node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Service service, String serviceUri, CloseableIteration<BindingSet,​QueryEvaluationException> bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Service service, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(SingletonSet singletonSet, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Slice slice, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(StatementPattern statementPattern, BindingSet bindings)` |
    `Value` | `evaluate​(Str node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(TripleRef ref, BindingSet bindings)` | evaluates a TripleRef node returning bindingsets from the matched Triple nodes in the dataset (or explore standard reification)
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(TupleExpr expr, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(UnaryTupleOperator expr, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Union union, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(ValueConstant valueConstant, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(ValueExpr expr, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(ValueExprTripleRef node, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `Value` | `evaluate​(Var var, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(ZeroLengthPath zlp, BindingSet bindings)` | Deprecated, for removal: This API element is subject to removal in a future version.
    `protected long` | `getLimit​(QueryModelNode node)` | Returns the limit of the current variable bindings before any further projection.
    `FederatedService` | `getService​(String serviceUrl)` | Retrieve the `FederatedService` registered for serviceUrl.
    `UUID` | `getUUID()` | Deprecated, for removal: This API element is subject to removal in a future version.
    `static Value` | `getVarValue​(Var var, BindingSet bindings)` |
    `protected boolean` | `isReducedOrDistinct​(QueryModelNode node)` |
    `boolean` | `isTrue​(QueryValueEvaluationStep expr, BindingSet bindings)` |
    `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.
    `QueryEvaluationStep` | `precompile​(TupleExpr expr)` | Prepare a QueryEvaluationStep that tries to do as much work once per query avoiding repeated calls to the same code as much as possible.
    `QueryEvaluationStep` | `precompile​(TupleExpr expr, QueryEvaluationContext context)` |
    `QueryValueEvaluationStep` | `precompile​(ValueExpr expr, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(ArbitraryLengthPath alp, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(BinaryTupleOperator expr, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(BindingSetAssignment node, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(Compare node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(DescribeOperator node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Difference node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Distinct node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(EmptySet emptySet, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(Now node, QueryEvaluationContext context)` | During the execution of a single query NOW() should always return the same result and is in practical terms a constant during evaluation.
    `protected QueryEvaluationStep` | `prepare​(Extension node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Filter node, QueryEvaluationContext context)` |
    `QueryValueEvaluationStep` | `prepare​(FunctionCall node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Group node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Intersection node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Join node, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(LangMatches node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(LeftJoin node, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(MathExpr node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(MultiProjection node, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(Not node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Order node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Projection node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(QueryRoot node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Reduced node, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(Regex node, QueryEvaluationContext context)` | Determines whether the two operands match according to the `regex` operator.
    `protected QueryValueEvaluationStep` | `prepare​(SameTerm node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Service service, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(SingletonSet singletonSet, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Slice node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(StatementPattern node, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(TripleRef ref, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(UnaryTupleOperator expr, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(Union node, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(ValueConstant valueConstant, QueryEvaluationContext context)` |
    `protected QueryValueEvaluationStep` | `prepare​(Var var, QueryEvaluationContext context)` |
    `protected QueryEvaluationStep` | `prepare​(ZeroLengthPath zlp, QueryEvaluationContext context)` |
    `void` | `setFederatedServiceResolver​(FederatedServiceResolver resolver)` | Sets the `FederatedServiceResolver` to use for this client.
    `void` | `setOptimizerPipeline​(QueryOptimizerPipeline pipeline)` | Set the `QueryOptimizerPipeline` to use for optimizing any incoming queries.
    `void` | `setTrackResultSize​(boolean trackResultSize)` | Enable or disable results size tracking for the query plan.
    `void` | `setTrackTime​(boolean trackTime)` | Enable or disable time tracking for the query plan.
    `protected QueryValueEvaluationStep` | `supplyBinaryValueEvaluation​(BinaryValueOperator node, BiFunction<Value,​Value,​Value> operation, QueryEvaluationContext context)` | Supply a QueryValueEvalationStep that will invoke the function (operator passed in).
    `protected QueryValueEvaluationStep` | `supplyUnaryValueEvaluation​(UnaryValueOperator node, Function<Value,​Value> operation, QueryEvaluationContext context)` | Return a QueryEvaluationStep that applies constant propegation.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.rdf4j.query.algebra.evaluation.EvaluationStrategy

      `makeQueue, makeSet`

- - ### Field Detail

    - #### tripleSource

          protected final TripleSource tripleSource

    - #### dataset

          protected final Dataset dataset

    - #### serviceResolver

          protected FederatedServiceResolver serviceResolver

  - ### Constructor Detail

    - #### StrictEvaluationStrategy

          public StrictEvaluationStrategy​(TripleSource tripleSource,
                                          FederatedServiceResolver serviceResolver)

    - #### StrictEvaluationStrategy

          public StrictEvaluationStrategy​(TripleSource tripleSource,
                                          Dataset dataset,
                                          FederatedServiceResolver serviceResolver)

    - #### StrictEvaluationStrategy

          public StrictEvaluationStrategy​(TripleSource tripleSource,
                                          Dataset dataset,
                                          FederatedServiceResolver serviceResolver,
                                          long iterationCacheSyncTreshold,
                                          EvaluationStatistics evaluationStatistics)

    - #### StrictEvaluationStrategy

          public StrictEvaluationStrategy​(TripleSource tripleSource,
                                          Dataset dataset,
                                          FederatedServiceResolver serviceResolver,
                                          long iterationCacheSyncTreshold,
                                          EvaluationStatistics evaluationStatistics,
                                          boolean trackResultSize)

  - ### Method Detail

    - #### getUUID

          @Deprecated(forRemoval=true,
                      since="4.0.0")
          public UUID getUUID()

      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: `UUIDable`
      Returns the UUID of this object.
      Specified by:
        `getUUID` in interface `UUIDable`
      Returns:
        a non-null UUID.

    - #### setFederatedServiceResolver

          public void setFederatedServiceResolver​(FederatedServiceResolver resolver)

      Description copied from interface: `FederatedServiceResolverClient`
      Sets the `FederatedServiceResolver` to use for this client.
      Specified by:
        `setFederatedServiceResolver` in interface `FederatedServiceResolverClient`
      Parameters:
        `resolver` - The resolver to use.

    - #### getService

          public FederatedService getService​(String serviceUrl)
                                      throws QueryEvaluationException

      Description copied from interface: `EvaluationStrategy`
      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 `EvaluationStrategy`
      Specified by:
        `getService` in interface `FederatedServiceResolver`
      Parameters:
        `serviceUrl` - URL of the service.
      Returns:
        the `FederatedService` registered for the serviceUrl.
      Throws:
        `QueryEvaluationException` - If there was an exception generated while retrieving the service.
      See Also:
        `FederatedServiceResolver.getService(java.lang.String)`

    - #### setOptimizerPipeline

          public void setOptimizerPipeline​(QueryOptimizerPipeline pipeline)

      Description copied from interface: `EvaluationStrategy`
      Set the `QueryOptimizerPipeline` to use for optimizing any incoming queries.
      Specified by:
        `setOptimizerPipeline` in interface `EvaluationStrategy`
      Parameters:
        `pipeline` - the `QueryOptimizerPipeline`.
      See Also:
        `EvaluationStrategy.optimize(TupleExpr, EvaluationStatistics, BindingSet)`

    - #### optimize

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

      Execute the `QueryOptimizerPipeline` on the given `TupleExpr` to optimize its execution plan.
      Specified by:
        `optimize` in interface `EvaluationStrategy`
      Parameters:
        `expr` - the `TupleExpr` to optimize.
        `evaluationStatistics` - this param is ignored!
        `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

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(TupleExpr expr,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: `EvaluationStrategy`
      Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
      Specified by:
        `evaluate` in interface `EvaluationStrategy`
      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`

    - #### precompile

          public QueryEvaluationStep precompile​(TupleExpr expr)

      Description copied from interface: `EvaluationStrategy`
      Prepare a QueryEvaluationStep that tries to do as much work once per query avoiding repeated calls to the same code as much as possible. This depends on java invoke dynamic for performance.
      Specified by:
        `precompile` in interface `EvaluationStrategy`
      Parameters:
        `expr` - that is to be evaluated later
      Returns:
        a QueryEvaluationStep that may avoid doing repeating the same work over and over.

    - #### precompile

          public QueryEvaluationStep precompile​(TupleExpr expr,
                                                QueryEvaluationContext context)

      Specified by:
        `precompile` in interface `EvaluationStrategy`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(ArbitraryLengthPath alp,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(ArbitraryLengthPath alp,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(ZeroLengthPath zlp,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(ZeroLengthPath zlp,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Service service,
                                                                                        String serviceUri,
                                                                                        CloseableIteration<BindingSet,​QueryEvaluationException> bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: `EvaluationStrategy`
      Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
      Specified by:
        `evaluate` in interface `EvaluationStrategy`
      Parameters:
        `service` - 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

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Service service,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Difference node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Group node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Intersection node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Join node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(LeftJoin node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(MultiProjection node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Projection node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(QueryRoot node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(StatementPattern node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Union node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Slice node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Extension node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Service service,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Filter node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Order node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(BindingSetAssignment node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(DescribeOperator node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Distinct node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(Reduced node,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(DescribeOperator operator,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(StatementPattern statementPattern,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### getVarValue

          public static Value getVarValue​(Var var,
                                          BindingSet bindings)

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(UnaryTupleOperator expr,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(UnaryTupleOperator expr,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(BindingSetAssignment bsa,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Projection projection,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(MultiProjection multiProjection,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Filter filter,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Slice slice,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Extension extension,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Distinct distinct,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Reduced reduced,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Group node,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Order node,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(BinaryTupleOperator expr,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(BinaryTupleOperator expr,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Join join,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(LeftJoin leftJoin,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Union union,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Intersection intersection,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Difference difference,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(SingletonSet singletonSet,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(SingletonSet singletonSet,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(EmptySet emptySet,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryEvaluationStep prepare​(EmptySet emptySet,
                                                QueryEvaluationContext context)
                                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### precompile

          public QueryValueEvaluationStep precompile​(ValueExpr expr,
                                                     QueryEvaluationContext context)
                                              throws QueryEvaluationException

      Specified by:
        `precompile` in interface `EvaluationStrategy`
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(ValueExpr expr,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: `EvaluationStrategy`
      Gets the value of this expression.
      Specified by:
        `evaluate` in interface `EvaluationStrategy`
        `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:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Var var,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(Var var,
                                                     QueryEvaluationContext context)
                                              throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(ValueConstant valueConstant,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(ValueConstant valueConstant,
                                                     QueryEvaluationContext context)
                                              throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(BNodeGenerator node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Bound node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Str node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Label node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Lang node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Datatype node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Namespace node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(LocalName node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(IsResource node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the operand (a variable) contains a Resource.
      Returns:
        true if the operand contains a Resource, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(IsURI node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the operand (a variable) contains a URI.
      Returns:
        true if the operand contains a URI, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(IsBNode node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the operand (a variable) contains a BNode.
      Returns:
        true if the operand contains a BNode, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(IsLiteral node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the operand (a variable) contains a Literal.
      Returns:
        true if the operand contains a Literal, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(IsNumeric node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the operand (a variable) contains a numeric datatyped literal, i.e. a literal with datatype CoreDatatype.XSD:float, CoreDatatype.XSD:double, CoreDatatype.XSD:decimal, or a derived datatype of CoreDatatype.XSD:decimal.
      Returns:
        true if the operand contains a numeric datatyped literal, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public IRI evaluate​(IRIFunction node,
                              BindingSet bindings)
                       throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a URI from the operand value (a plain literal or a URI).
      Parameters:
        `node` - represents an invocation of the SPARQL IRI function
        `bindings` - used to generate the value that the URI is based on
      Returns:
        a URI generated from the given arguments
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Regex node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the two operands match according to the `regex` operator.
      Returns:
        true if the operands match according to the regex operator, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(Regex node,
                                                     QueryEvaluationContext context)
                                              throws QueryEvaluationException

      Determines whether the two operands match according to the `regex` operator.
      Returns:
        true if the operands match according to the regex operator, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(LangMatches node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(LangMatches node,
                                                     QueryEvaluationContext context)

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Like node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines whether the two operands match according to the `like` operator. The operator is defined as a string comparison with the possible use of an asterisk (*) at the end and/or the start of the second operand to indicate substring matching.
      Returns:
        true if the operands match according to the like operator, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(FunctionCall node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Evaluates a function.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          public QueryValueEvaluationStep prepare​(FunctionCall node,
                                                  QueryEvaluationContext context)
                                           throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(And node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Or node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Not node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(Not node,
                                                     QueryEvaluationContext context)

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Now node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(Now node,
                                                     QueryEvaluationContext context)

      During the execution of a single query NOW() should always return the same result and is in practical terms a constant during evaluation.
      Parameters:
        `node` - that represent the NOW() function
        `context` - that holds the shared now() of the query invocation
      Returns:
        a constant value evaluation step

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(SameTerm node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(SameTerm node,
                                                     QueryEvaluationContext context)

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Coalesce node,
                                BindingSet bindings)
                         throws ValueExprEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `ValueExprEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Compare node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(Compare node,
                                                     QueryEvaluationContext context)

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(MathExpr node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### prepare

          protected QueryValueEvaluationStep prepare​(MathExpr node,
                                                     QueryEvaluationContext context)

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(If node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(In node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(ListMemberOperator node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(CompareAny node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(CompareAll node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(Exists node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### isTrue

          public boolean isTrue​(ValueExpr expr,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Description copied from interface: `EvaluationStrategy`
      Evaluates the boolean expression on the supplied TripleSource object.
      Specified by:
        `isTrue` in interface `EvaluationStrategy`
        `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`

    - #### isTrue

          public boolean isTrue​(QueryValueEvaluationStep expr,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Specified by:
        `isTrue` in interface `EvaluationStrategy`
      Throws:
        `QueryEvaluationException`

    - #### isReducedOrDistinct

          protected boolean isReducedOrDistinct​(QueryModelNode node)

    - #### getLimit

          protected long getLimit​(QueryModelNode node)

      Returns the limit of the current variable bindings before any further projection.

    - #### evaluate

          @Deprecated(forRemoval=true)
          public Value evaluate​(ValueExprTripleRef node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(TripleRef ref,
                                                                                        BindingSet bindings)

      evaluates a TripleRef node returning bindingsets from the matched Triple nodes in the dataset (or explore standard reification)
      Parameters:
        `ref` - to evaluate
        `bindings` - with the solutions
      Returns:
        iteration over the solutions

    - #### prepare

          protected QueryEvaluationStep prepare​(TripleRef ref,
                                                QueryEvaluationContext context)

    - #### setTrackResultSize

          public void setTrackResultSize​(boolean trackResultSize)

      Description copied from interface: `EvaluationStrategy`
      Enable or disable results size tracking for the query plan. Useful to determine which parts of a query plan generated the most data.
      Specified by:
        `setTrackResultSize` in interface `EvaluationStrategy`
      Parameters:
        `trackResultSize` - true to enable tracking.

    - #### setTrackTime

          public void setTrackTime​(boolean trackTime)

      Description copied from interface: `EvaluationStrategy`
      Enable or disable time tracking for the query plan. Useful to determine which parts of a query plan take the most time to evaluate.
      Specified by:
        `setTrackTime` in interface `EvaluationStrategy`
      Parameters:
        `trackTime` - true to enable tracking.

    - #### supplyBinaryValueEvaluation

          protected QueryValueEvaluationStep supplyBinaryValueEvaluation​(BinaryValueOperator node,
                                                                         BiFunction<Value,​Value,​Value> operation,
                                                                         QueryEvaluationContext context)

      Supply a QueryValueEvalationStep that will invoke the function (operator passed in). It will try to optimise constant argument to be called only once per query run,
      Parameters:
        `node` - the node to evaluate
        `operation` - the function that wraps the operator.
        `context` - in which the query is running.
      Returns:
        a potential constant evaluation step.

    - #### supplyUnaryValueEvaluation

          protected QueryValueEvaluationStep supplyUnaryValueEvaluation​(UnaryValueOperator node,
                                                                        Function<Value,​Value> operation,
                                                                        QueryEvaluationContext context)

      Return a QueryEvaluationStep that applies constant propegation.
      Parameters:
        `node` - that will be evaluated/prepared
        `operation` - the task to be done
        `context` - in which the evaluation takes place
      Returns:
        a potentially constant step