Class QueryExecutionBase

  • All Implemented Interfaces:
    java.lang.AutoCloseable, QueryExecution

    public class QueryExecutionBase
    extends java.lang.Object
    implements QueryExecution
    All the SPARQL query result forms made from a graph-level execution object
    • Method Detail

      • close

        public void close()
        Description copied from interface: QueryExecution
        Close the query execution and stop query evaluation as soon as convenient. QueryExecution objects, and a ResultSet from QueryExecution.execSelect(), can not be used once the QueryExecution is closed. Model results from QueryExecution.execConstruct() and QueryExecution.execDescribe() 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 java.lang.AutoCloseable
        Specified by:
        close in interface QueryExecution
      • isClosed

        public boolean isClosed()
        Description copied from interface: QueryExecution
        Answer whether this QueryExecution object has been closed or not.
        Specified by:
        isClosed in interface QueryExecution
        Returns:
        boolean
      • abort

        public void abort()
        Description copied from interface: QueryExecution
        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.
        Specified by:
        abort in interface QueryExecution
      • execSelect

        public ResultSet execSelect()
        Description copied from interface: QueryExecution
        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.

        Specified by:
        execSelect in interface QueryExecution
      • execConstruct

        public Model execConstruct​(Model model)
        Description copied from interface: QueryExecution
        Execute a CONSTRUCT query, putting the statements into 'model'.
        Specified by:
        execConstruct in interface QueryExecution
        Returns:
        Model The model argument for cascaded code.
      • execConstructTriples

        public java.util.Iterator<Triple> execConstructTriples()
        Description copied from interface: QueryExecution
        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.

        Specified by:
        execConstructTriples in interface QueryExecution
        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.
      • execConstructQuads

        public java.util.Iterator<Quad> execConstructQuads()
        Description copied from interface: QueryExecution
        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.

        Specified by:
        execConstructQuads in interface QueryExecution
        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 QueryExecution.execConstructTriples() for usage and features.

      • execConstructDataset

        public Dataset execConstructDataset()
        Description copied from interface: QueryExecution
        Execute a CONSTRUCT query, putting the statements into 'dataset'. This maybe an extended syntax query (if supported).
        Specified by:
        execConstructDataset in interface QueryExecution
      • execConstructDataset

        public Dataset execConstructDataset​(Dataset dataset)
        Description copied from interface: QueryExecution
        Execute a CONSTRUCT query, putting the statements into 'dataset'. This maybe an extended syntax query (if supported).
        Specified by:
        execConstructDataset in interface QueryExecution
      • execDescribe

        public Model execDescribe​(Model model)
        Description copied from interface: QueryExecution
        Execute a DESCRIBE query, putting the statements into 'model'.
        Specified by:
        execDescribe in interface QueryExecution
        Returns:
        Model The model argument for cascaded code.
      • execDescribeTriples

        public java.util.Iterator<Triple> execDescribeTriples()
        Description copied from interface: QueryExecution
        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.

        Specified by:
        execDescribeTriples in interface QueryExecution
        Returns:
        An iterator of Triple objects (possibly containing duplicates) generated as the output of the DESCRIBE query.
      • setTimeout

        public void setTimeout​(long timeout,
                               java.util.concurrent.TimeUnit timeUnit)
        Description copied from interface: QueryExecution
        Set a timeout on the query execution. Processing will be aborted after the timeout (which starts when the appropriate exec call is made). Not all query execution systems support timeouts. A timeout of less than zero means no timeout.
        Specified by:
        setTimeout in interface QueryExecution
      • setTimeout

        public void setTimeout​(long timeout1,
                               java.util.concurrent.TimeUnit timeUnit1,
                               long timeout2,
                               java.util.concurrent.TimeUnit timeUnit2)
        Description copied from interface: QueryExecution
        Set timeouts on the query execution; the first timeout refers to time to first result, the second refers to overall query execution after the first result. Processing will be aborted if a timeout expires. Not all query execution systems support timeouts. A timeout of less than zero means no timeout; this can be used for timeout1 or timeout2.
        Specified by:
        setTimeout in interface QueryExecution
      • getTimeout1

        public long getTimeout1()
        Description copied from interface: QueryExecution
        Return the first timeout (time to first result), in milliseconds: negative if unset
        Specified by:
        getTimeout1 in interface QueryExecution
      • getTimeout2

        public long getTimeout2()
        Description copied from interface: QueryExecution
        Return the second timeout (overall query execution after first result), in milliseconds: negative if unset
        Specified by:
        getTimeout2 in interface QueryExecution
      • getPlan

        public Plan getPlan()
      • getContext

        public Context getContext()
        Description copied from interface: QueryExecution
        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).
        Specified by:
        getContext in interface QueryExecution
      • getDataset

        public Dataset getDataset()
        Description copied from interface: QueryExecution
        The dataset against which the query will execute. May be null, implying it is expected that the query itself has a dataset description.
        Specified by:
        getDataset in interface QueryExecution
      • getQuery

        public Query getQuery()
        Description copied from interface: QueryExecution
        The query associated with a query execution. May be null (QueryExecution may have been created by other means)
        Specified by:
        getQuery in interface QueryExecution
      • setInitialBinding

        public void setInitialBinding​(QuerySolution startSolution)
        Description copied from interface: QueryExecution
        Set the initial association of variables and values. May not be supported by all QueryExecution implementations.
        Specified by:
        setInitialBinding in interface QueryExecution
      • setInitialBinding

        public void setInitialBinding​(Binding startSolution)
        Description copied from interface: QueryExecution
        Set the initial association of variables and values. May not be supported by all QueryExecution implementations.
        Specified by:
        setInitialBinding in interface QueryExecution
      • setInitialBindings

        public void setInitialBindings​(ResultSet table)