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 and Description
    --- | ---
    `protected Dataset` | `dataset`
    `protected FederatedServiceResolver` | `serviceResolver`
    `protected TripleSource` | `tripleSource`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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)`
    `StrictEvaluationStrategy(TripleSource tripleSource, FederatedServiceResolver serviceResolver)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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(Exists node, BindingSet bindings)`
    `CloseableIteration<BindingSet,QueryEvaluationException>` | `evaluate(Extension extension, BindingSet bindings)`
    `CloseableIteration<BindingSet,QueryEvaluationException>` | `evaluate(ExternalSet external, 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(Lang node, BindingSet bindings)`
    `Value` | `evaluate(LangMatches 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)`
    `Value` | `evaluate(Now node, BindingSet bindings)`
    `Value` | `evaluate(Or node, BindingSet bindings)`
    `CloseableIteration<BindingSet,QueryEvaluationException>` | `evaluate(Order 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, 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(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 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(ExternalSet external,
                                                                                  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.

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