public class RepositoryFederatedService extends Object implements org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedService
Repository to communicate with a SPARQL endpoint.| Modifier and Type | Field and Description |
|---|---|
protected int |
boundJoinBlockSize
The number of bindings sent in a single subquery in
evaluate(Service, CloseableIteration, String) If
blockSize is set to 0, the entire input stream is used as block input the block size effectively determines the
number of remote requests |
protected boolean |
shutDown |
| Constructor and Description |
|---|
RepositoryFederatedService(Repository repo) |
RepositoryFederatedService(Repository repo,
boolean shutDown) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
ask(org.eclipse.rdf4j.query.algebra.Service service,
org.eclipse.rdf4j.query.BindingSet bindings,
String baseUri)
Evaluate the provided sparqlQueryString at the initialized
Repository of this FederatedService. |
org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> |
evaluate(org.eclipse.rdf4j.query.algebra.Service service,
org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> bindings,
String baseUri) |
protected org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> |
evaluateInternal(org.eclipse.rdf4j.query.algebra.Service service,
org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> bindings,
String baseUri)
Evaluate the SPARQL query that can be constructed from the SERVICE node at the initialized
Repository of
this FederatedService. |
int |
getBoundJoinBlockSize() |
protected RepositoryConnection |
getConnection()
Retrieve a (re-usable) connection.
|
void |
initialize() |
protected String |
insertValuesClause(String queryString,
String valuesClause)
Insert the constructed VALUES clause in the beginning of the WHERE block.
|
boolean |
isInitialized() |
org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> |
select(org.eclipse.rdf4j.query.algebra.Service service,
Set<String> projectionVars,
org.eclipse.rdf4j.query.BindingSet bindings,
String baseUri)
Evaluate the provided sparqlQueryString at the initialized
Repository of this FederatedService. |
void |
setBoundJoinBlockSize(int boundJoinBlockSize) |
void |
setUseFreshConnection(boolean flag) |
void |
shutdown() |
protected int boundJoinBlockSize
evaluate(Service, CloseableIteration, String) If
blockSize is set to 0, the entire input stream is used as block input the block size effectively determines the
number of remote requestsprotected boolean shutDown
public RepositoryFederatedService(Repository repo)
repo - the repository to be usedpublic RepositoryFederatedService(Repository repo, boolean shutDown)
repo - the repository to be usedshutDown - a flag indicating whether the repository shall be closed in shutdown()public org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> select(org.eclipse.rdf4j.query.algebra.Service service,
Set<String> projectionVars,
org.eclipse.rdf4j.query.BindingSet bindings,
String baseUri)
throws org.eclipse.rdf4j.query.QueryEvaluationException
Repository of this FederatedService.
Insert bindings into SELECT query and evaluateselect in interface org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceorg.eclipse.rdf4j.query.QueryEvaluationExceptionpublic boolean ask(org.eclipse.rdf4j.query.algebra.Service service,
org.eclipse.rdf4j.query.BindingSet bindings,
String baseUri)
throws org.eclipse.rdf4j.query.QueryEvaluationException
Repository of this FederatedService.
Insert bindings, send ask query and return final resultask in interface org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceorg.eclipse.rdf4j.query.QueryEvaluationExceptionpublic org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> evaluate(org.eclipse.rdf4j.query.algebra.Service service,
org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> bindings,
String baseUri)
throws org.eclipse.rdf4j.query.QueryEvaluationException
evaluate in interface org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceorg.eclipse.rdf4j.query.QueryEvaluationExceptionprotected org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> evaluateInternal(org.eclipse.rdf4j.query.algebra.Service service,
org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.query.BindingSet,org.eclipse.rdf4j.query.QueryEvaluationException> bindings,
String baseUri)
throws org.eclipse.rdf4j.query.QueryEvaluationException
Repository of
this FederatedService. Use specified bindings as constraints to the query. Try to evaluate using VALUES
clause, if this yields an exception fall back to the naive implementation. This method deals with SILENT
SERVICEs.org.eclipse.rdf4j.query.QueryEvaluationExceptionprotected String insertValuesClause(String queryString, String valuesClause)
ROW_IDX_VAR
projection if it is not already present.queryString - the SELECT query string from the SERVICE nodevaluesClause - the constructed VALUES clausepublic void initialize()
throws org.eclipse.rdf4j.query.QueryEvaluationException
initialize in interface org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceorg.eclipse.rdf4j.query.QueryEvaluationExceptionpublic boolean isInitialized()
isInitialized in interface org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServicepublic int getBoundJoinBlockSize()
public void setBoundJoinBlockSize(int boundJoinBlockSize)
boundJoinBlockSize - the bound join block size, 0 to evaluate all in a single requestpublic void setUseFreshConnection(boolean flag)
flag - whether to use a fresh RepositoryConnection for each individual querypublic void shutdown()
throws org.eclipse.rdf4j.query.QueryEvaluationException
shutdown in interface org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceorg.eclipse.rdf4j.query.QueryEvaluationExceptionprotected RepositoryConnection getConnection() throws RepositoryException
RepositoryExceptionCopyright © 2015-2020 Eclipse Foundation. All Rights Reserved.