Class QueryAlgebraUtil

java.lang.Object
org.eclipse.rdf4j.federated.util.QueryAlgebraUtil

public class QueryAlgebraUtil extends Object
Various static functions for query handling and parsing (alegbra expression).
Author:
Andreas Schwarte
  • Constructor Details Link icon

    • QueryAlgebraUtil Link icon

      public QueryAlgebraUtil()
  • Method Details Link icon

    • hasFreeVars Link icon

      public static boolean hasFreeVars(StatementPattern stmt, BindingSet bindings)
      returns true iff there is at least one free variable, i.e. there is no binding for any variable
      Parameters:
      stmt -
      bindings -
      Returns:
      whether there is at least one free variable
    • getVarValue Link icon

      public static Value getVarValue(Var var, BindingSet bindings)
      Return the Value of the variable which is either taken from the variable itself (bound) or from the bindingsset (unbound).
      Parameters:
      var -
      bindings - the bindings, must not be null, use EmptyBindingSet instead
      Returns:
      the value or null
    • toTupleExpr Link icon

      public static TupleExpr toTupleExpr(ArbitraryLengthPath node, Set<String> varNames, BindingSet bindings)
      Convert the given ArbitraryLengthPath to a fresh TupleExpr where all provided bindings are bound.
      Parameters:
      node -
      varNames -
      bindings -
      Returns:
      the fresh and bound expression
    • toStatementPattern Link icon

      public static StatementPattern toStatementPattern(Statement stmt)
    • toStatementPattern Link icon

      public static StatementPattern toStatementPattern(Resource subj, IRI pred, Value obj)
    • toStatement Link icon

      public static Statement toStatement(StatementPattern stmt)
    • toStatement Link icon

      public static Statement toStatement(StatementPattern stmt, BindingSet bindings)
    • selectQuery Link icon

      public static TupleExpr selectQuery(StatementPattern stmt, BindingSet bindings, FilterValueExpr filterExpr, AtomicBoolean evaluated) throws IllegalQueryException
      Construct a SELECT query for the provided statement.
      Parameters:
      stmt -
      bindings -
      filterExpr -
      evaluated - parameter can be used outside this method to check whether FILTER has been evaluated, false in beginning
      Returns:
      the SELECT query
      Throws:
      IllegalQueryException
    • selectQuery Link icon

      public static TupleExpr selectQuery(ExclusiveGroup group, BindingSet bindings, FilterValueExpr filterExpr, AtomicBoolean evaluated)
      Construct a SELECT query for the provided ExclusiveGroup. Note that bindings and filterExpr are applied whenever possible.
      Parameters:
      group - the expression for the query
      bindings - the bindings to be applied
      filterExpr - a filter expression or null
      evaluated - parameter can be used outside this method to check whether FILTER has been evaluated, false in beginning
      Returns:
      the SELECT query
    • selectQueryBoundUnion Link icon

      public static TupleExpr selectQueryBoundUnion(StatementPattern stmt, List<BindingSet> unionBindings, FilterValueExpr filterExpr, Boolean evaluated)
      Construct a SELECT query expression for a bound union.

      Pattern:

      SELECT ?v_1 ?v_2 ?v_N WHERE { { ?v_1 p o } UNION { ?v_2 p o } UNION ... }

      Note that the filterExpr is not evaluated at the moment.

      Parameters:
      stmt -
      unionBindings -
      filterExpr -
      evaluated - parameter can be used outside this method to check whether FILTER has been evaluated, false in beginning
      Returns:
      the SELECT query
    • selectQueryStringBoundCheck Link icon

      public static TupleExpr selectQueryStringBoundCheck(StatementPattern stmt, List<BindingSet> unionBindings)
      Construct a SELECT query for a grouped bound check.

      Pattern:

      SELECT DISTINCT ?o_1 .. ?o_N WHERE { { s1 p1 ?o_1 FILTER ?o_1=o1 } UNION ... UNION { sN pN ?o_N FILTER ?o_N=oN }}

      Parameters:
      stmt -
      unionBindings -
      Returns:
      the SELECT query
    • constructInnerUnion Link icon

      protected static Union constructInnerUnion(StatementPattern stmt, int outerID, Set<String> varNames, List<BindingSet> bindings)
    • constructStatement Link icon

      protected static StatementPattern constructStatement(StatementPattern stmt, Set<String> varNames, BindingSet bindings)
      Construct the statement string, i.e. "s p o . " with bindings inserted wherever possible. Note that the free variables are added to the varNames set for further evaluation.
      Parameters:
      stmt -
      varNames -
      bindings -
      Returns:
      the StatementPattern
    • constructStatementId Link icon

      protected static StatementPattern constructStatementId(StatementPattern stmt, String varID, Set<String> varNames, BindingSet bindings)
      Construct the statement string, i.e. "s p o . " with bindings inserted wherever possible. Variables are renamed to "var_"+varId to identify query results in bound queries. Note that the free variables are also added to the varNames set for further evaluation.
      Parameters:
      stmt -
      varNames -
      bindings -
      Returns:
      the StatementPattern
    • constructStatementCheckId Link icon

      protected static TupleExpr constructStatementCheckId(StatementPattern stmt, int varID, Set<String> varNames, BindingSet bindings)
      Construct the statement string, i.e. "s p ?o_varID FILTER ?o_N=o ". This kind of statement pattern is necessary to later on identify available results.
      Parameters:
      stmt -
      varID -
      varNames -
      bindings -
      Returns:
      the expression
    • appendVar Link icon

      protected static Var appendVar(Var var, Set<String> varNames, BindingSet bindings)
      Clone the specified variable and attach bindings.
      Parameters:
      var -
      varNames -
      bindings -
      Returns:
      the variable
    • appendVarId Link icon

      protected static Var appendVarId(Var var, String varID, Set<String> varNames, BindingSet bindings)
      Clone the specified variable and attach bindings, moreover change name of variable by appending "_varId" to it.
      Parameters:
      var -
      varID -
      varNames -
      bindings -
      Returns:
      the variable
    • getFreeVars Link icon

      public static Collection<String> getFreeVars(TupleExpr tupleExpr)
      Computes the collection of free variables in the given TupleExpr.
      Parameters:
      tupleExpr - the expression
      Returns:
      the free variables
      See Also: