# Package org.eclipse.rdf4j.sail

RDF Storage And Inference Layer (RDF Sail): a set of interfaces defining an SPI for RDF databases. The main interface is `Sail`, which defines methods for initialization, querying and starting transactions.

- Interface Summary
  Interface | Description
  --- | ---
  LockManager |
  NotifyingSail | An interface for `Sail`s that notify registered `SailChangedListener`s of changes in the data in the Sail.
  NotifyingSailConnection | A connection to an RDF Sail object.
  Sail | Sail (Storage And Inference Layer) is an interface for RDF storage.
  SailChangedEvent | Event object that is send to `SailChangedListener`s to indicate that the contents of the Sail that sent the event have changed.
  SailChangedListener | An interface for objects that want to be notified when the data in specific Sail objects change.
  SailConnection | A connection to an RDF Sail object.
  SailConnectionListener |
  StackableSail | An interface for Sails that can be stacked on top of other Sails.

- Class Summary
  Class | Description
  --- | ---
  EvaluationStrategyTest | Test cases for behavior of `StrictEvaluationStrategy` and `ExtendedEvaluationStrategy` on base Sail implementations.
  InferencingTest |
  RDFNotifyingStoreTest | A JUnit test for testing Sail implementations that store RDF data.
  RDFStoreTest | A JUnit test for testing Sail implementations that store RDF data.
  SailConcurrencyTest | Tests concurrent read and write access to a Sail implementation.
  SailInterruptTest | Tests thread interrupts on a Sail implementation.
  SailIsolationLevelTest | Simple tests to sanity check that Sail correctly supports claimed isolation levels.
  UpdateContext | Provided with add and remove operation to give them context within a `UpdateExpr` operation.

- Exception Summary
  Exception | Description
  --- | ---
  SailConflictException | An exception thrown by some methods in Sail to indicate that a requested isolation level could not be fulfilled.
  SailException | An exception thrown by some methods in Sail to indicate that a requested operation could not be executed.
  SailLockedException | Indicates that a SAIL cannot be initialised because the configured persisted location is locked.
  SailReadOnlyException | Indicates that the current write operation did not succeed because the SAIL cannot be written to, it can only be read from.
  UnknownSailTransactionStateException | Indicates that a SAIL's transaction state (active or inactive) cannot be determined.