Class QueryManager

java.lang.Object
org.eclipse.rdf4j.federated.QueryManager

public class QueryManager extends Object
QueryManager to manage queries. a) Management of running queries (abort, finish) b) Factory to create queries
Author:
Andreas Schwarte
  • Constructor Details Link icon

    • QueryManager Link icon

      public QueryManager()
  • Method Details Link icon

    • init Link icon

      public void init(FedXRepository repo, FederationContext federationContext)
    • shutdown Link icon

      public void shutdown()
    • registerQuery Link icon

      public void registerQuery(QueryInfo queryInfo)
      Add the query to the set of running queries, queries are identified via a unique id
      Parameters:
      queryInfo -
    • getRunningQueries Link icon

      public Set<QueryInfo> getRunningQueries()
    • getNumberOfRunningQueries Link icon

      public int getNumberOfRunningQueries()
    • abortQuery Link icon

      public void abortQuery(QueryInfo queryInfo)
    • finishQuery Link icon

      public void finishQuery(QueryInfo queryInfo)
    • isRunning Link icon

      public boolean isRunning(QueryInfo queryInfo)
    • addPrefixDeclaration Link icon

      public void addPrefixDeclaration(String prefix, String namespace)
      Register a prefix declaration to be used during query evaluation. If a known prefix is used in a query, it is substituted in the parsing step. If namespace is null, the corresponding entry is removed.
      Parameters:
      prefix - a common prefix, e.g. rdf
      namespace - the corresponding namespace, e.g. "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    • prepareTupleQuery Link icon

      public TupleQuery prepareTupleQuery(String queryString) throws MalformedQueryException
      Prepare a tuple query which uses the underlying federation to evaluate the query.

      The queryString is modified to use the declared PREFIX declarations, see FedXConfig.getPrefixDeclarations() for details.

      Parameters:
      queryString -
      Returns:
      the prepared tuple query
      Throws:
      MalformedQueryException
    • prepareGraphQuery Link icon

      public GraphQuery prepareGraphQuery(String queryString) throws MalformedQueryException
      Prepare a tuple query which uses the underlying federation to evaluate the query.

      The queryString is modified to use the declared PREFIX declarations, see FedXConfig.getPrefixDeclarations() for details.

      Parameters:
      queryString -
      Returns:
      the prepared graph query
      Throws:
      MalformedQueryException
    • prepareBooleanQuery Link icon

      public BooleanQuery prepareBooleanQuery(String queryString) throws MalformedQueryException
      Prepare a boolean query which uses the underlying federation to evaluate the query.

      The queryString is modified to use the declared PREFIX declarations, see FedXConfig.getPrefixDeclarations() for details.

      Parameters:
      queryString -
      Returns:
      the prepared BooleanQuery
      Throws:
      MalformedQueryException
    • prepareQuery Link icon

      public Query prepareQuery(String queryString) throws MalformedQueryException
      Prepare a Query which uses the underlying federation to evaluate the SPARQL query.

      The queryString is modified to use the declared PREFIX declarations, see FedXConfig.getPrefixDeclarations() for details.

      Parameters:
      queryString -
      Returns:
      the prepared Query
      Throws:
      MalformedQueryException
    • getQueryPlan Link icon

      public String getQueryPlan(String queryString) throws MalformedQueryException, FedXException
      Retrieve the query plan for the given query string.
      Parameters:
      queryString -
      Returns:
      the query plan
      Throws:
      MalformedQueryException
      FedXException
    • getNextQueryId Link icon

      public BigInteger getNextQueryId()
      Computes the (incremental) next query identifier. Implementation is thread safe and synchronized.
      Returns:
      the next query identifier
    • getPrefixDeclarations Link icon

      protected String getPrefixDeclarations()
      Get the prefix declarations that have to be prepended to the query.
      Returns:
      the prefix declarations
    • getPrefixDeclarationsCheck Link icon

      protected String getPrefixDeclarationsCheck(String queryString)
      Get the prefix declarations that have to be added while considering prefixes that are already declared in the query. The issue here is that duplicate declaration causes exceptions in RDF4J.
      Parameters:
      queryString -
      Returns:
      the prefix declarations
    • findQueryPrefixes Link icon

      protected static Set<String> findQueryPrefixes(String queryString)
      Find all prefixes declared in the query
      Parameters:
      queryString -
      Returns:
      the prefixes