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`, `FederationStrategy`, `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 Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Value` | `evaluate​(And node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(ArbitraryLengthPath alp, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(BinaryTupleOperator expr, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(BindingSetAssignment bsa, BindingSet bindings)` |
    `Value` | `evaluate​(BNodeGenerator node, BindingSet bindings)` |
    `Value` | `evaluate​(Bound node, BindingSet bindings)` |
    `Value` | `evaluate​(Coalesce node, BindingSet bindings)` |
    `Value` | `evaluate​(CompareAll node, BindingSet bindings)` |
    `Value` | `evaluate​(CompareAny node, BindingSet bindings)` |
    `Value` | `evaluate​(Compare node, BindingSet bindings)` |
    `Value` | `evaluate​(Datatype node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(DescribeOperator operator, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Difference difference, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Distinct distinct, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(EmptySet emptySet, BindingSet bindings)` |
    `Value` | `evaluate​(Now node, BindingSet bindings)` |
    `Value` | `evaluate​(Exists node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Extension extension, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Filter filter, BindingSet bindings)` |
    `Value` | `evaluate​(FunctionCall node, BindingSet bindings)` | Evaluates a function.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Group node, BindingSet bindings)` |
    `Value` | `evaluate​(If node, BindingSet bindings)` |
    `Value` | `evaluate​(In node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Intersection intersection, BindingSet bindings)` |
    `IRI` | `evaluate​(IRIFunction node, BindingSet bindings)` | Creates a URI from the operand value (a plain literal or a URI).
    `Value` | `evaluate​(IsBNode node, BindingSet bindings)` | Determines whether the operand (a variable) contains a BNode.
    `Value` | `evaluate​(IsLiteral node, BindingSet bindings)` | Determines whether the operand (a variable) contains a Literal.
    `Value` | `evaluate​(IsNumeric node, BindingSet bindings)` | Determines whether the operand (a variable) contains a numeric datatyped literal, i.e.
    `Value` | `evaluate​(IsResource node, BindingSet bindings)` | Determines whether the operand (a variable) contains a Resource.
    `Value` | `evaluate​(IsURI node, BindingSet bindings)` | Determines whether the operand (a variable) contains a URI.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Join join, BindingSet bindings)` |
    `Value` | `evaluate​(Label node, BindingSet bindings)` |
    `Value` | `evaluate​(LangMatches node, BindingSet bindings)` |
    `Value` | `evaluate​(Lang node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(LeftJoin leftJoin, BindingSet bindings)` |
    `Value` | `evaluate​(Like node, BindingSet bindings)` | Determines whether the two operands match according to the `like` operator.
    `Value` | `evaluate​(ListMemberOperator node, BindingSet bindings)` |
    `Value` | `evaluate​(LocalName node, BindingSet bindings)` |
    `Value` | `evaluate​(MathExpr node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(MultiProjection multiProjection, BindingSet bindings)` |
    `Value` | `evaluate​(Namespace node, BindingSet bindings)` |
    `Value` | `evaluate​(Not node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Order node, BindingSet bindings)` |
    `Value` | `evaluate​(Or node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Projection projection, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Reduced reduced, BindingSet bindings)` |
    `Value` | `evaluate​(Regex node, BindingSet bindings)` | Determines whether the two operands match according to the `regex` operator.
    `Value` | `evaluate​(SameTerm node, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Service service, 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​(Service service, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(SingletonSet singletonSet, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Slice slice, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(StatementPattern statementPattern, BindingSet bindings)` |
    `Value` | `evaluate​(Str node, BindingSet bindings)` |
    `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)` | Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(UnaryTupleOperator expr, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(Union union, BindingSet bindings)` |
    `Value` | `evaluate​(ValueConstant valueConstant, BindingSet bindings)` |
    `Value` | `evaluate​(ValueExpr expr, BindingSet bindings)` | Gets the value of this expression.
    `Value` | `evaluate​(ValueExprTripleRef node, BindingSet bindings)` |
    `Value` | `evaluate​(Var var, BindingSet bindings)` |
    `CloseableIteration<BindingSet,​QueryEvaluationException>` | `evaluate​(ZeroLengthPath zlp, BindingSet bindings)` |
    `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()` | Returns the UUID of this object.
    `protected Value` | `getVarValue​(Var var, BindingSet bindings)` |
    `protected ZeroLengthPathIteration` | `getZeroLengthPathIterator​(BindingSet bindings, Var subjectVar, Var objVar, Var contextVar, Value subj, Value obj)` |
    `protected boolean` | `isReducedOrDistinct​(QueryModelNode node)` |
    `boolean` | `isTrue​(ValueExpr expr, BindingSet bindings)` | Evaluates the boolean expression on the supplied TripleSource object.
    `protected boolean` | `isUnbound​(Var var, BindingSet bindings)` |
    `TupleExpr` | `optimize​(TupleExpr expr, EvaluationStatistics evaluationStatistics, BindingSet bindings)` | Execute the `QueryOptimizerPipeline` on the given `TupleExpr` to optimize its execution plan.
    `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.

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

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

- - ### 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

          public UUID getUUID()

      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

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

      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`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(ArbitraryLengthPath alp,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(ZeroLengthPath zlp,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### getZeroLengthPathIterator

          protected ZeroLengthPathIteration getZeroLengthPathIterator​(BindingSet bindings,
                                                                      Var subjectVar,
                                                                      Var objVar,
                                                                      Var contextVar,
                                                                      Value subj,
                                                                      Value obj)

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Service service,
                                                                                        String serviceUri,
                                                                                        CloseableIteration<BindingSet,​QueryEvaluationException> bindings)
                                                                                 throws QueryEvaluationException

      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

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Service service,
                                                                                        BindingSet bindings)
                                                                                 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`

    - #### isUnbound

          protected boolean isUnbound​(Var var,
                                      BindingSet bindings)

    - #### getVarValue

          protected Value getVarValue​(Var var,
                                      BindingSet bindings)

    - #### evaluate

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

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(BindingSetAssignment bsa,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Projection projection,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(MultiProjection multiProjection,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Filter filter,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Slice slice,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Extension extension,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Distinct distinct,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Reduced reduced,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Group node,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Order node,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

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

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Join join,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(LeftJoin leftJoin,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Union union,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Intersection intersection,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(Difference difference,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(SingletonSet singletonSet,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public CloseableIteration<BindingSet,​QueryEvaluationException> evaluate​(EmptySet emptySet,
                                                                                        BindingSet bindings)
                                                                                 throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(ValueExpr expr,
                                BindingSet bindings)
                         throws QueryEvaluationException

      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

          public Value evaluate​(Var var,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(ValueConstant valueConstant,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(BNodeGenerator node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Bound node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Str node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Label node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Lang node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Datatype node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Namespace node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(LocalName node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(IsResource node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Determines whether the operand (a variable) contains a Resource.
      Returns:
        true if the operand contains a Resource, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(IsURI node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Determines whether the operand (a variable) contains a URI.
      Returns:
        true if the operand contains a URI, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(IsBNode node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Determines whether the operand (a variable) contains a BNode.
      Returns:
        true if the operand contains a BNode, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(IsLiteral node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Determines whether the operand (a variable) contains a Literal.
      Returns:
        true if the operand contains a Literal, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(IsNumeric node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Determines whether the operand (a variable) contains a numeric datatyped literal, i.e. a literal with datatype xsd:float, xsd:double, xsd:decimal, or a derived datatype of xsd:decimal.
      Returns:
        true if the operand contains a numeric datatyped literal, false otherwise.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public IRI evaluate​(IRIFunction node,
                              BindingSet bindings)
                       throws QueryEvaluationException

      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

          public Value evaluate​(Regex node,
                                BindingSet bindings)
                         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

          public Value evaluate​(LangMatches node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Like node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      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

          public Value evaluate​(FunctionCall node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Evaluates a function.
      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(And node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Or node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Not node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Now node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(SameTerm node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Coalesce node,
                                BindingSet bindings)
                         throws ValueExprEvaluationException

      Throws:
        `ValueExprEvaluationException`

    - #### evaluate

          public Value evaluate​(Compare node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(MathExpr node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(If node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(In node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(ListMemberOperator node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(CompareAny node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(CompareAll node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### evaluate

          public Value evaluate​(Exists node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      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`

    - #### 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

          public Value evaluate​(ValueExprTripleRef node,
                                BindingSet bindings)
                         throws QueryEvaluationException

      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

    - #### 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.