Class QueryEvaluationUtil

java.lang.Object
org.eclipse.rdf4j.query.algebra.evaluation.util.QueryEvaluationUtil

public class QueryEvaluationUtil extends Object
Author:
Arjohn Kampman
  • Field Details

  • Constructor Details

    • QueryEvaluationUtil

      public QueryEvaluationUtil()
  • Method Details

    • getEffectiveBooleanValue

      public static boolean getEffectiveBooleanValue(Value value) throws ValueExprEvaluationException
      Determines the effective boolean value (EBV) of the supplied value as defined in the SPARQL specification:
      • The EBV of any literal whose type is CoreDatatype.XSD:boolean or numeric is false if the lexical form is not valid for that datatype (e.g. "abc"^^xsd:integer).
      • If the argument is a typed literal with a datatype of CoreDatatype.XSD:boolean, the EBV is the value of that argument.
      • If the argument is a plain literal or a typed literal with a datatype of CoreDatatype.XSD:string, the EBV is false if the operand value has zero length; otherwise the EBV is true.
      • If the argument is a numeric type or a typed literal with a datatype derived from a numeric type, the EBV is false if the operand value is NaN or is numerically equal to zero; otherwise the EBV is true.
      • All other arguments, including unbound arguments, produce a type error.
      Parameters:
      value - Some value.
      Returns:
      The EBV of value.
      Throws:
      ValueExprEvaluationException - In case the application of the EBV algorithm results in a type error.
    • compare

      public static boolean compare(Value leftVal, Value rightVal, Compare.CompareOp operator) throws ValueExprEvaluationException
      Throws:
      ValueExprEvaluationException
    • compare

      public static boolean compare(Value leftVal, Value rightVal, Compare.CompareOp operator, boolean strict) throws ValueExprEvaluationException
      Throws:
      ValueExprEvaluationException
    • compareLiterals

      public static boolean compareLiterals(Literal leftLit, Literal rightLit, Compare.CompareOp operator) throws ValueExprEvaluationException
      Compares the supplied Literal arguments using the supplied operator, using strict (minimally-conforming) SPARQL 1.1 operator behavior.
      Parameters:
      leftLit - the left literal argument of the comparison.
      rightLit - the right literal argument of the comparison.
      operator - the comparison operator to use.
      Returns:
      true if execution of the supplied operator on the supplied arguments succeeds, false otherwise.
      Throws:
      ValueExprEvaluationException - if a type error occurred.
    • compareLiterals

      public static boolean compareLiterals(Literal leftLit, Literal rightLit, Compare.CompareOp operator, boolean strict) throws ValueExprEvaluationException
      Compares the supplied Literal arguments using the supplied operator.
      Parameters:
      leftLit - the left literal argument of the comparison.
      rightLit - the right literal argument of the comparison.
      operator - the comparison operator to use.
      strict - boolean indicating whether comparison should use strict (minimally-conforming) SPARQL 1.1 operator behavior, or extended behavior.
      Returns:
      true if execution of the supplied operator on the supplied arguments succeeds, false otherwise.
      Throws:
      ValueExprEvaluationException - if a type error occurred.
    • isPlainLiteral

      public static boolean isPlainLiteral(Value v)
      Checks whether the supplied value is a "plain literal". A "plain literal" is a literal with no datatype and optionally a language tag.
      See Also:
    • isPlainLiteral

      public static boolean isPlainLiteral(Literal l)
    • isSimpleLiteral

      public static boolean isSimpleLiteral(Value v)
      Checks whether the supplied value is a "simple literal". A "simple literal" is a literal with no language tag nor datatype.
      See Also:
    • isSimpleLiteral

      public static boolean isSimpleLiteral(Literal l)
      Checks whether the supplied literal is a "simple literal". A "simple literal" is a literal with no language tag and the datatype CoreDatatype.XSD.STRING.
      See Also:
    • isSimpleLiteral

      public static boolean isSimpleLiteral(boolean isLang, CoreDatatype datatype)
      Checks whether the supplied literal is a "simple literal". A "simple literal" is a literal with no language tag and the datatype CoreDatatype.XSD.STRING.
      See Also:
    • isStringLiteral

      public static boolean isStringLiteral(Value v)
      Checks whether the supplied literal is a "string literal". A "string literal" is either a simple literal, a plain literal with language tag, or a literal with datatype CoreDatatype.XSD:string.
      See Also:
    • compatibleArguments

      public static boolean compatibleArguments(Literal arg1, Literal arg2)
      Checks whether the supplied two literal arguments are 'argument compatible' according to the SPARQL definition.
      Parameters:
      arg1 - the first argument
      arg2 - the second argument
      Returns:
      true iff the two supplied arguments are argument compatible, false otherwise
      See Also:
    • isStringLiteral

      public static boolean isStringLiteral(Literal l)
      Checks whether the supplied literal is a "string literal". A "string literal" is either a simple literal, a plain literal with language tag, or a literal with datatype CoreDatatype.XSD:string.
      See Also: