Interface QueryExecution
-
- All Superinterfaces:
java.lang.AutoCloseable
- All Known Implementing Classes:
QueryEngineHTTP
,QueryExecutionAdapter
,QueryExecutionCompat
,QueryExecutionHTTP
public interface QueryExecution extends java.lang.AutoCloseable
A interface for a single execution of a query.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
abort()
Stop in mid execution.void
close()
Close the query execution and stop query evaluation as soon as convenient.static QueryExecutionDatasetBuilder
create()
Create a local execution builderstatic QueryExecution
create(java.lang.String query, Dataset dataset)
Create a local execution on a dataset for a given querystatic QueryExecution
create(java.lang.String query, Model model)
Create a local execution on a dataset for a given querystatic QueryExecution
create(Query query, Dataset dataset)
Create a local execution on a dataset for a given querystatic QueryExecution
create(Query query, Model model)
Create a local execution on a dataset for a given querystatic QueryExecutionDatasetBuilder
dataset(Dataset dataset)
Create a local execution builder on a datasetboolean
execAsk()
Execute an ASK queryModel
execConstruct()
Execute a CONSTRUCT queryModel
execConstruct(Model model)
Execute a CONSTRUCT query, putting the statements into 'model'.Dataset
execConstructDataset()
Execute a CONSTRUCT query, putting the statements into 'dataset'.Dataset
execConstructDataset(Dataset dataset)
Execute a CONSTRUCT query, putting the statements into 'dataset'.java.util.Iterator<Quad>
execConstructQuads()
Execute a CONSTRUCT query, returning the results as an iterator ofQuad
.java.util.Iterator<Triple>
execConstructTriples()
Execute a CONSTRUCT query, returning the results as an iterator ofTriple
.Model
execDescribe()
Execute a DESCRIBE queryModel
execDescribe(Model model)
Execute a DESCRIBE query, putting the statements into 'model'.java.util.Iterator<Triple>
execDescribeTriples()
Execute a DESCRIBE query, returning the results as an iterator ofTriple
.JsonArray
execJson()
Execute a JSON query and return a json arrayjava.util.Iterator<JsonObject>
execJsonItems()
Execute a JSON query and return an interatorResultSet
execSelect()
Execute a SELECT queryContext
getContext()
The properties associated with a query execution - implementation specific parameters This includes Java objects (so it is not an RDF graph).Dataset
getDataset()
The dataset against which the query will execute.Query
getQuery()
The query associated with a query execution.java.lang.String
getQueryString()
The query as a string.long
getTimeout1()
Return the first timeout (time to first result), in milliseconds: negative if unsetlong
getTimeout2()
Return the second timeout (overall query execution after first result), in milliseconds: negative if unsetboolean
isClosed()
Answer whether this QueryExecution object has been closed or not.static QueryExecutionDatasetBuilder
model(Model model)
Create a local execution builder on a modelstatic QueryExecutionHTTPBuilder
service(java.lang.String serviceURL)
Create a remote execution builder going to an endpoint URL.static QueryExecutionHTTP
service(java.lang.String endpointURL, java.lang.String queryString)
Create a remote execution.static QueryExecution
service(java.lang.String endpointURL, Query query)
Create a remote execution.void
setInitialBinding(QuerySolution binding)
Deprecated.UseQueryExecutionDatasetBuilder
and set the initial binding before building.void
setInitialBinding(Binding binding)
Deprecated.UseQueryExecutionDatasetBuilder
and set the initial binding before building.void
setTimeout(long timeout)
Deprecated.UseQueryExecution.create().timeout(....)...
void
setTimeout(long timeout1, long timeout2)
Deprecated.UseQueryExecution.create().initialTimeout(timeout1, timeUnit).overallTimeout(timeout, timeUnit)...
void
setTimeout(long timeout, java.util.concurrent.TimeUnit timeoutUnits)
Deprecated.UseQueryExecution.create().timeout(....)...
void
setTimeout(long timeout1, java.util.concurrent.TimeUnit timeUnit1, long timeout2, java.util.concurrent.TimeUnit timeUnit2)
Deprecated.UseQueryExecution.create().initialTimeout(timeout1, timeUnit1).overallTimeout(timeout, timeUnit2)...
-
-
-
Method Detail
-
create
static QueryExecution create(Query query, Dataset dataset)
Create a local execution on a dataset for a given query
-
create
static QueryExecution create(java.lang.String query, Model model)
Create a local execution on a dataset for a given query
-
create
static QueryExecution create(java.lang.String query, Dataset dataset)
Create a local execution on a dataset for a given query
-
create
static QueryExecution create(Query query, Model model)
Create a local execution on a dataset for a given query
-
service
static QueryExecution service(java.lang.String endpointURL, Query query)
Create a remote execution.
-
service
static QueryExecutionHTTP service(java.lang.String endpointURL, java.lang.String queryString)
Create a remote execution.
-
dataset
static QueryExecutionDatasetBuilder dataset(Dataset dataset)
Create a local execution builder on a dataset
-
model
static QueryExecutionDatasetBuilder model(Model model)
Create a local execution builder on a model
-
service
static QueryExecutionHTTPBuilder service(java.lang.String serviceURL)
Create a remote execution builder going to an endpoint URL.
-
create
static QueryExecutionDatasetBuilder create()
Create a local execution builder
-
setInitialBinding
@Deprecated void setInitialBinding(QuerySolution binding)
Deprecated.UseQueryExecutionDatasetBuilder
and set the initial binding before building.Set the initial association of variables and values. May not be supported by all QueryExecution implementations.The preferred way is to use
QueryExecutionDatasetBuilder.substitution(QuerySolution)
which is supported uniformly for local and remote queries.- Parameters:
binding
-
-
setInitialBinding
@Deprecated void setInitialBinding(Binding binding)
Deprecated.UseQueryExecutionDatasetBuilder
and set the initial binding before building.Set the initial association of variables and values. May not be supported by all QueryExecution implementations.The preferred way is to use
QueryExecutionDatasetBuilder.substitution(Binding)
which is supported uniformly for local and remote queries.- Parameters:
binding
-
-
getDataset
Dataset getDataset()
The dataset against which the query will execute. May be null, implying it is expected that 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 (QueryExecution may have been created by other means)
-
getQueryString
java.lang.String getQueryString()
The query as a string. This may be null (QueryExecution may have been created by other means). This may contain non-Jena extensions and can not be parsed by Jena. IfgetQuery()
is not null, this is a corresponding string that parses to the same query.
-
execSelect
ResultSet execSelect()
Execute a SELECT queryImportant: 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.
-
execConstruct
Model execConstruct()
Execute a CONSTRUCT query
-
execConstruct
Model execConstruct(Model model)
Execute a CONSTRUCT query, putting the statements into 'model'.- Returns:
- Model The model argument for cascaded code.
-
execConstructTriples
java.util.Iterator<Triple> execConstructTriples()
Execute a CONSTRUCT query, returning the results as an iterator ofTriple
.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.
-
execConstructQuads
java.util.Iterator<Quad> execConstructQuads()
Execute a CONSTRUCT query, returning the results as an iterator ofQuad
.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
execConstructTriples()
for usage and features.
-
execConstructDataset
Dataset execConstructDataset()
Execute a CONSTRUCT query, putting the statements into 'dataset'. This maybe an extended syntax query (if supported).
-
execConstructDataset
Dataset execConstructDataset(Dataset dataset)
Execute a CONSTRUCT query, putting the statements into 'dataset'. This maybe an extended syntax query (if supported).
-
execDescribe
Model execDescribe()
Execute a DESCRIBE query
-
execDescribe
Model execDescribe(Model model)
Execute a DESCRIBE query, putting the statements into 'model'.- Returns:
- Model The model argument for cascaded code.
-
execDescribeTriples
java.util.Iterator<Triple> execDescribeTriples()
Execute a DESCRIBE query, returning the results as an iterator ofTriple
.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.
-
execAsk
boolean execAsk()
Execute an ASK query
-
execJson
JsonArray execJson()
Execute a JSON query and return a json array
-
execJsonItems
java.util.Iterator<JsonObject> execJsonItems()
Execute a JSON query and return an interator
-
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. QueryExecution objects, and aResultSet
fromexecSelect()
, can not be used once the QueryExecution is closed. Model results fromexecConstruct()
andexecDescribe()
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 interfacejava.lang.AutoCloseable
-
isClosed
boolean isClosed()
Answer whether this QueryExecution object has been closed or not.- Returns:
- boolean
-
setTimeout
@Deprecated void setTimeout(long timeout, java.util.concurrent.TimeUnit timeoutUnits)
Deprecated.UseQueryExecution.create().timeout(....)...
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.
-
setTimeout
@Deprecated void setTimeout(long timeout)
Deprecated.UseQueryExecution.create().timeout(....)...
Set time, in milliseconds
-
setTimeout
@Deprecated void setTimeout(long timeout1, java.util.concurrent.TimeUnit timeUnit1, long timeout2, java.util.concurrent.TimeUnit timeUnit2)
Deprecated.UseQueryExecution.create().initialTimeout(timeout1, timeUnit1).overallTimeout(timeout, timeUnit2)...
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.
-
setTimeout
@Deprecated void setTimeout(long timeout1, long timeout2)
Deprecated.UseQueryExecution.create().initialTimeout(timeout1, timeUnit).overallTimeout(timeout, timeUnit)...
Set time, in milliseconds
-
getTimeout1
long getTimeout1()
Return the first timeout (time to first result), in milliseconds: negative if unset
-
getTimeout2
long getTimeout2()
Return the second timeout (overall query execution after first result), in milliseconds: negative if unset
-
-