Class InferencerConnectionWrapper

All Implemented Interfaces:
AutoCloseable, FederatedServiceResolverClient, ThreadSafetyAware, InferencerConnection, NotifyingSailConnection, SailConnection
Direct Known Subclasses:
AbstractForwardChainingInferencerConnection, DedupingInferencerConnection, SchemaCachingRDFSInferencerConnection

public class InferencerConnectionWrapper extends NotifyingSailConnectionWrapper implements InferencerConnection
An extension of ConnectionWrapper that implements the InferencerConnection interface.
Author:
Arjohn Kampman
  • Constructor Details

    • InferencerConnectionWrapper

      public InferencerConnectionWrapper(InferencerConnection con)
      Creates a new InferencerConnectionWrapper object that wraps the supplied transaction.
  • Method Details

    • getWrappedConnection

      public InferencerConnection getWrappedConnection()
      Gets the connection that is wrapped by this object.
      Overrides:
      getWrappedConnection in class NotifyingSailConnectionWrapper
      Returns:
      The connection that was supplied to the constructor of this class.
    • addInferredStatement

      public boolean addInferredStatement(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
      Description copied from interface: InferencerConnection
      Adds an inferred statement to a specific context.
      Specified by:
      addInferredStatement in interface InferencerConnection
      Parameters:
      subj - The subject of the statement to add.
      pred - The predicate of the statement to add.
      obj - The object of the statement to add.
      contexts - The context(s) to add the statement to. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
      SailException - If the statement could not be added.
    • removeInferredStatement

      public boolean removeInferredStatement(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
      Description copied from interface: InferencerConnection
      Removes an inferred statement from a specific context.
      Specified by:
      removeInferredStatement in interface InferencerConnection
      Parameters:
      subj - The subject of the statement that should be removed.
      pred - The predicate of the statement that should be removed.
      obj - The object of the statement that should be removed.
      contexts - The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
      SailException - If the statement could not be removed.
    • clearInferred

      public void clearInferred(Resource... contexts) throws SailException
      Description copied from interface: InferencerConnection
      Removes all inferred statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.
      Specified by:
      clearInferred in interface InferencerConnection
      Parameters:
      contexts - The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
      SailException - If the statements could not be removed.
    • flush

      public void flush() throws SailException
      Description copied from interface: SailConnection
      Flushes any pending updates and notify changes to listeners as appropriate. This is an optional call; calling or not calling this method should have no effect on the outcome of other calls. This method exists to give the caller more control over the efficiency when calling SailConnection.prepare(). This method may be called multiple times within the same transaction.
      Specified by:
      flush in interface SailConnection
      Overrides:
      flush in class SailConnectionWrapper
      Throws:
      SailException - If the updates could not be processed, for example because no transaction is active.
    • flushUpdates

      public void flushUpdates() throws SailException
      Description copied from interface: InferencerConnection
      Flushes any pending updates to be processed and the resulting changes to be reported to registered SailConnectionListeners.
      Specified by:
      flushUpdates in interface InferencerConnection
      Throws:
      SailException - If the updates could not be processed.
    • prepare

      public void prepare() throws SailException
      Calls flushUpdates() before forwarding the call to the wrapped connection.
      Specified by:
      prepare in interface SailConnection
      Overrides:
      prepare in class SailConnectionWrapper
      Throws:
      SailException - If there is an active transaction and it cannot be committed.
    • commit

      public void commit() throws SailException
      Calls flushUpdates() before forwarding the call to the wrapped connection.
      Specified by:
      commit in interface SailConnection
      Overrides:
      commit in class SailConnectionWrapper
      Throws:
      SailException - If the SailConnection could not be committed.
    • evaluate

      public CloseableIteration<? extends BindingSet> evaluate(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred) throws SailException
      Calls flushUpdates() before forwarding the call to the wrapped connection.
      Specified by:
      evaluate in interface SailConnection
      Overrides:
      evaluate in class SailConnectionWrapper
      Parameters:
      tupleExpr - The tuple expression to evaluate.
      dataset - The dataset to use for evaluating the query, null to use the Sail's default dataset.
      bindings - A set of input parameters for the query evaluation. The keys reference variable names that should be bound to the value they map to.
      includeInferred - Indicates whether inferred triples are to be considered in the query result. If false, no inferred statements are returned; if true, inferred statements are returned if available
      Returns:
      The TupleQueryResult.
      Throws:
      SailException - If the Sail object encountered an error or unexpected situation internally.
    • getContextIDs

      public CloseableIteration<? extends Resource> getContextIDs() throws SailException
      Calls flushUpdates() before forwarding the call to the wrapped connection.
      Specified by:
      getContextIDs in interface SailConnection
      Overrides:
      getContextIDs in class SailConnectionWrapper
      Returns:
      An iterator over the context identifiers, should not contain any duplicates.
      Throws:
      SailException
    • hasStatement

      public boolean hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException
      Description copied from interface: SailConnection
      Determines if the store contains any statements from the specified contexts that have a specific subject, predicate and/or object. All three parameters may be null to indicate wildcards. The includeInferred parameter can be used to control which statements are checked: all statements or only the statements that have been added explicitly.
      Specified by:
      hasStatement in interface SailConnection
      Overrides:
      hasStatement in class SailConnectionWrapper
      Parameters:
      subj - A Resource specifying the subject, or null for a wildcard.
      pred - An IRI specifying the predicate, or null for a wildcard.
      obj - A Value specifying the object, or null for a wildcard.
      includeInferred - if false, no inferred statements are returned; if true, inferred statements are returned if available
      contexts - The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.
      Returns:
      true iff the store contains any statements matching the supplied criteria, false otherwise.
      Throws:
      SailException - If the Sail object encountered an error or unexpected situation internally.
    • getStatements

      public CloseableIteration<? extends Statement> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException
      Calls flushUpdates() before forwarding the call to the wrapped connection.
      Specified by:
      getStatements in interface SailConnection
      Overrides:
      getStatements in class SailConnectionWrapper
      Parameters:
      subj - A Resource specifying the subject, or null for a wildcard.
      pred - A URI specifying the predicate, or null for a wildcard.
      obj - A Value specifying the object, or null for a wildcard.
      includeInferred - if false, no inferred statements are returned; if true, inferred statements are returned if available
      contexts - The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.
      Returns:
      The statements matching the specified pattern.
      Throws:
      SailException - If the Sail object encountered an error or unexpected situation internally.
    • size

      public long size(Resource... contexts) throws SailException
      Calls flushUpdates() before forwarding the call to the wrapped connection.
      Specified by:
      size in interface SailConnection
      Overrides:
      size in class SailConnectionWrapper
      Parameters:
      contexts - The context(s) to determine the size of. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.
      Returns:
      The number of explicit statements in this store, or in the specified context(s).
      Throws:
      SailException