Class StardogRepositoryConnection
- All Implemented Interfaces:
AutoCloseable,org.eclipse.rdf4j.repository.RepositoryConnection
Stardog-based implementation of an RDF4J RepositoryConnection. Leaving autoCommit turned ON
will yield sub-optimal performance with Stardog because of the overhead of pushing many single statement transactions.
It is therefore highly recommended to use the begin() and commit()/rollback() methods to
group operations into transactions unless absolutely required by your application
These connections keep a local cache of changes which are not pushed until they exceed a threshold, or an action, such as a query or a commit, requires them to be pushed to the server. This minimizes the overhead of calling add or remove in a tight loop with small payloads and then committing the entire thing, those updates would then be pushed in as few chunks as possible.
All queries created via this connection will implement the accessors for a query's maxQueryTime as no ops.
The methods will work in that they will not throw an UnsupportedOperationException, however, they are not
supported by Stardog. Timeouts cannot be controlled on a per-query basis, they are global server options.
Each of the specific prepare*Query methods, such as
AbstractRepositoryConnection.prepareGraphQuery(org.eclipse.rdf4j.query.QueryLanguage, String) will parse the query during invocation, but it
will not be type checked until execution time. For example, you can provide a valid ASK query to
prepareGraphQuery and it will not fail that you're using a boolean query as a graph query until its executed.
This is similar to how HTTPRepository handles this situation.
- Since:
- 0.1
- Version:
- 5.0
- Author:
- Michael Grove
-
Field Summary
Fields inherited from class org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection
logger -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddWithoutCommit(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, org.eclipse.rdf4j.model.Resource... theContexts) voidbegin()voidvoidclose()voidcommit()voidexportStatements(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, boolean theIncludeInferred, org.eclipse.rdf4j.rio.RDFHandler theRDFHandler, org.eclipse.rdf4j.model.Resource... theContexts) org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Resource> org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Namespace> org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Statement> getStatements(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, boolean theIncludeInferred, org.eclipse.rdf4j.model.Resource... theContexts) org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Statement> getStatements(org.eclipse.rdf4j.model.Resource subj, org.eclipse.rdf4j.model.IRI pred, org.eclipse.rdf4j.model.Value obj, org.eclipse.rdf4j.model.Resource... contexts) booleanhasStatement(org.eclipse.rdf4j.model.Resource subj, org.eclipse.rdf4j.model.IRI pred, org.eclipse.rdf4j.model.Value obj, boolean includeInferred, org.eclipse.rdf4j.model.Resource... contexts) booleanhasStatement(org.eclipse.rdf4j.model.Statement st, boolean includeInferred, org.eclipse.rdf4j.model.Resource... contexts) booleanisActive()org.eclipse.rdf4j.query.BooleanQueryprepareBooleanQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) org.eclipse.rdf4j.query.GraphQueryprepareGraphQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) org.eclipse.rdf4j.query.QueryprepareQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) org.eclipse.rdf4j.query.TupleQueryprepareTupleQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) org.eclipse.rdf4j.query.UpdateprepareUpdate(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) voidremoveNamespace(String thePrefix) protected voidremoveWithoutCommit(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, org.eclipse.rdf4j.model.Resource... theContexts) voidrollback()voidsetIsolationLevel(org.eclipse.rdf4j.IsolationLevel level) voidsetNamespace(String thePrefix, String theNS) longsize(org.eclipse.rdf4j.model.Resource... theContexts) Methods inherited from class org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection
add, add, add, add, add, add, add, add, addWithoutCommit, begin, clear, conditionalCommit, conditionalRollback, export, getIsolationLevel, getParserConfig, getRepository, getValueFactory, isAutoCommit, isEmpty, isOpen, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove, remove, remove, remove, removeWithoutCommit, setAutoCommit, setParserConfig, startLocalTransactionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.repository.RepositoryConnection
add, add, add, add, add, add, add, add, begin, getStatements, hasStatement, prepare, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove, remove
-
Method Details
-
begin
public void begin() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
isActive
public boolean isActive() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
close
public void close() throws org.eclipse.rdf4j.repository.RepositoryException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceorg.eclipse.rdf4j.repository.RepositoryConnection- Overrides:
closein classorg.eclipse.rdf4j.repository.base.AbstractRepositoryConnection- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
setIsolationLevel
- Specified by:
setIsolationLevelin interfaceorg.eclipse.rdf4j.repository.RepositoryConnection- Overrides:
setIsolationLevelin classorg.eclipse.rdf4j.repository.base.AbstractRepositoryConnection- Throws:
IllegalStateException
-
addWithoutCommit
protected void addWithoutCommit(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, org.eclipse.rdf4j.model.Resource... theContexts) throws org.eclipse.rdf4j.repository.RepositoryException - Specified by:
addWithoutCommitin classorg.eclipse.rdf4j.repository.base.AbstractRepositoryConnection- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
removeWithoutCommit
protected void removeWithoutCommit(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, org.eclipse.rdf4j.model.Resource... theContexts) throws org.eclipse.rdf4j.repository.RepositoryException - Specified by:
removeWithoutCommitin classorg.eclipse.rdf4j.repository.base.AbstractRepositoryConnection- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
prepareQuery
public org.eclipse.rdf4j.query.Query prepareQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) throws org.eclipse.rdf4j.repository.RepositoryException, org.eclipse.rdf4j.query.MalformedQueryException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionorg.eclipse.rdf4j.query.MalformedQueryException
-
prepareTupleQuery
public org.eclipse.rdf4j.query.TupleQuery prepareTupleQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) throws org.eclipse.rdf4j.repository.RepositoryException, org.eclipse.rdf4j.query.MalformedQueryException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionorg.eclipse.rdf4j.query.MalformedQueryException
-
prepareGraphQuery
public org.eclipse.rdf4j.query.GraphQuery prepareGraphQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) throws org.eclipse.rdf4j.repository.RepositoryException, org.eclipse.rdf4j.query.MalformedQueryException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionorg.eclipse.rdf4j.query.MalformedQueryException
-
prepareBooleanQuery
public org.eclipse.rdf4j.query.BooleanQuery prepareBooleanQuery(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) throws org.eclipse.rdf4j.repository.RepositoryException, org.eclipse.rdf4j.query.MalformedQueryException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionorg.eclipse.rdf4j.query.MalformedQueryException
-
prepareUpdate
public org.eclipse.rdf4j.query.Update prepareUpdate(org.eclipse.rdf4j.query.QueryLanguage theQueryLanguage, String theQuery, String theBase) throws org.eclipse.rdf4j.repository.RepositoryException, org.eclipse.rdf4j.query.MalformedQueryException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionorg.eclipse.rdf4j.query.MalformedQueryException
-
getContextIDs
public org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Resource> getContextIDs() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
getStatements
public org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Statement> getStatements(org.eclipse.rdf4j.model.Resource subj, org.eclipse.rdf4j.model.IRI pred, org.eclipse.rdf4j.model.Value obj, org.eclipse.rdf4j.model.Resource... contexts) throws org.eclipse.rdf4j.repository.RepositoryException - Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
getStatements
public org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Statement> getStatements(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, boolean theIncludeInferred, org.eclipse.rdf4j.model.Resource... theContexts) throws org.eclipse.rdf4j.repository.RepositoryException - Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
hasStatement
public boolean hasStatement(org.eclipse.rdf4j.model.Resource subj, org.eclipse.rdf4j.model.IRI pred, org.eclipse.rdf4j.model.Value obj, boolean includeInferred, org.eclipse.rdf4j.model.Resource... contexts) throws org.eclipse.rdf4j.repository.RepositoryException - Specified by:
hasStatementin interfaceorg.eclipse.rdf4j.repository.RepositoryConnection- Overrides:
hasStatementin classorg.eclipse.rdf4j.repository.base.AbstractRepositoryConnection- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
hasStatement
public boolean hasStatement(org.eclipse.rdf4j.model.Statement st, boolean includeInferred, org.eclipse.rdf4j.model.Resource... contexts) - Specified by:
hasStatementin interfaceorg.eclipse.rdf4j.repository.RepositoryConnection- Overrides:
hasStatementin classorg.eclipse.rdf4j.repository.base.AbstractRepositoryConnection
-
exportStatements
public void exportStatements(org.eclipse.rdf4j.model.Resource theSubj, org.eclipse.rdf4j.model.IRI thePred, org.eclipse.rdf4j.model.Value theObj, boolean theIncludeInferred, org.eclipse.rdf4j.rio.RDFHandler theRDFHandler, org.eclipse.rdf4j.model.Resource... theContexts) throws org.eclipse.rdf4j.repository.RepositoryException, org.eclipse.rdf4j.rio.RDFHandlerException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionorg.eclipse.rdf4j.rio.RDFHandlerException
-
size
public long size(org.eclipse.rdf4j.model.Resource... theContexts) throws org.eclipse.rdf4j.repository.RepositoryException - Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
commit
public void commit() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
rollback
public void rollback() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
getNamespaces
public org.eclipse.rdf4j.repository.RepositoryResult<org.eclipse.rdf4j.model.Namespace> getNamespaces() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
getNamespace
- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
setNamespace
public void setNamespace(String thePrefix, String theNS) throws org.eclipse.rdf4j.repository.RepositoryException, NullPointerException - Throws:
org.eclipse.rdf4j.repository.RepositoryExceptionNullPointerException
-
removeNamespace
public void removeNamespace(String thePrefix) throws org.eclipse.rdf4j.repository.RepositoryException - Throws:
org.eclipse.rdf4j.repository.RepositoryException
-
clearNamespaces
public void clearNamespaces() throws org.eclipse.rdf4j.repository.RepositoryException- Throws:
org.eclipse.rdf4j.repository.RepositoryException
-