Interface QueryExec

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
QueryExecAdapter, QueryExecApp, QueryExecDataset, QueryExecHTTP

public interface QueryExec extends AutoCloseable
Query execution interface working at the Graph-Node-Triple level.
See Also:
  • Method Details

    • dataset

      static QueryExecBuilder dataset(DatasetGraph dataset)
      Create a QueryExecBuilder for a dataset. For local dataset specific configuration, use newBuilder()().dataset(dataset) to get a QueryExecDatasetBuilder.
    • graph

      static QueryExecBuilder graph(Graph graph)
      Create a QueryExecBuilder for a graph.
    • service

      static QueryExecBuilder service(String serviceURL)
      Create a QueryExecBuilder for a remote endpoint.
    • newBuilder

      static QueryExecDatasetBuilder newBuilder()
      Create an uninitialized QueryExecDatasetBuilder.
    • getDataset

      DatasetGraph getDataset()
      The dataset against which the query will execute. May be null - the dataset may be remote or the query itself has a dataset description.
    • getContext

      Context getContext()
      The properties associated with a query execution - implementation specific parameters This includes Java objects (so it is not an RDF graph). Keys should be URIs as strings. May be null (this implementation does not provide any configuration).
    • getQuery

      Query getQuery()
      The query associated with a query execution. May be null (QueryExec may have been created by other means)
    • getQueryString

      String getQueryString()
      The query as a string. This may be null (QueryExec may have been created by other means). This may contain non-Jena extensions and can not be parsed by Jena. If getQuery() is not null, this is a corresponding string that parses to the same query.
    • select

      RowSet select()
      Execute a SELECT query

      Important: The name of this method is somewhat of a misnomer in that depending on the underlying implementation this typically does not execute the SELECT query but rather answers a wrapper over an internal data structure that can be used to answer the query. In essence calling this method only returns a plan for executing this query which only gets evaluated when you actually start iterating over the results.

    • construct

      default Graph construct()
      Execute a CONSTRUCT query
    • construct

      Graph construct(Graph graph)
      Execute a CONSTRUCT query, putting the statements into a graph.
      Returns:
      Graph The graph argument for cascaded code.
    • constructTriples

      Iterator<Triple> constructTriples()
      Execute a CONSTRUCT query, returning the results as an iterator of Triple.

      Caution: This method may return duplicate Triples. This method may be useful if you only need the results for stream processing, as it can avoid having to place the results in a Model.

      Important: The name of this method is somewhat of a misnomer in that depending on the underlying implementation this typically does not execute the CONSTRUCT query but rather answers a wrapper over an internal data structure that can be used to answer the query. In essence calling this method only returns a plan for executing this query which only gets evaluated when you actually start iterating over the results.

      Returns:
      An iterator of Triple objects (possibly containing duplicates) generated by applying the CONSTRUCT template of the query to the bindings in the WHERE clause.
    • constructQuads

      Iterator<Quad> constructQuads()
      Execute a CONSTRUCT query, returning the results as an iterator of Quad.

      Caution: This method may return duplicate Quads. This method may be useful if you only need the results for stream processing, as it can avoid having to place the results in a Model.

      Returns:
      An iterator of Quad objects (possibly containing duplicates) generated by applying the CONSTRUCT template of the query to the bindings in the WHERE clause.

      See constructTriples() for usage and features.

    • constructDataset

      default DatasetGraph constructDataset()
      Execute a CONSTRUCT query, putting the statements into 'dataset'. This maybe an extended syntax query (if supported).
    • constructDataset

      DatasetGraph constructDataset(DatasetGraph dataset)
      Execute a CONSTRUCT query, putting the statements into 'dataset'. This may be an extended syntax query (if supported).
    • describe

      default Graph describe()
      Execute a DESCRIBE query
    • describe

      Graph describe(Graph graph)
      Execute a DESCRIBE query, putting the statements into a graph.
      Returns:
      Graph The model argument for cascaded code.
    • describeTriples

      Iterator<Triple> describeTriples()
      Execute a DESCRIBE query, returning the results as an iterator of Triple.

      Caution: This method may return duplicate Triples. This method may be useful if you only need the results for stream processing, as it can avoid having to place the results in a Model.

      Important: The name of this method is somewhat of a misnomer in that depending on the underlying implementation this typically does not execute the DESCRIBE query but rather answers a wrapper over an internal data structure that can be used to answer the query. In essence calling this method only returns a plan for executing this query which only gets evaluated when you actually start iterating over the results.

      Returns:
      An iterator of Triple objects (possibly containing duplicates) generated as the output of the DESCRIBE query.
    • ask

      boolean ask()
      Execute an ASK query
    • execJson

      JsonArray execJson()
      Execute a JSON query and return a json array
    • execJsonItems

      Iterator<JsonObject> execJsonItems()
      Execute a JSON query and return an iterator
    • abort

      void abort()
      Stop in mid execution. This method can be called in parallel with other methods on the QueryExecution object. There is no guarantee that the concrete implementation actual will stop or that it will do so immediately. No operations on the query execution or any associated result set are permitted after this call and may cause exceptions to be thrown.
    • close

      void close()
      Close the query execution and stop query evaluation as soon as convenient. QExec objects, and a RowSet from select(), can not be used once the QExec is closed. Model results from construct() and describe() are still valid.

      It is important to close query execution objects in order to release resources such as working memory and to stop the query execution. Some storage subsystems require explicit ends of operations and this operation will cause those to be called where necessary. No operations on the query execution or any associated result set are permitted after this call.

      Specified by:
      close in interface AutoCloseable
    • isClosed

      boolean isClosed()
      Answer whether this QueryExecution object has been closed or not.
      Returns:
      boolean
    • adapt

      static QueryExec adapt(QueryExecution qExec)