org.openrdf.sesame.sail.package.html Maven / Gradle / Ivy
RDF Storage And Inference Layer.
The RDF Storage And Inference Layer (RDF Sail) is a collection of interfaces
defining an API for RDF repositories. RDF Sail has been designed with the
following aims in mind:
- The API must define a minimal interface for storing RDF in, and
extracting and deleting RDF from (persistent) repositories.
- The API must abstract from the actual storage mechanism -- be they
databases, in-memory (volatile) data structures, files or something
else.
- The API should be as scalable as possible.
- The API should be extendable to other RDF-based languages like
DAML+OIL.
- The API should support both read-only and read-write repositories
properly. A projected use of the read-only interface is for opening up
existing databases to the Semantic Web.
The API is split up in several interfaces defining methods for read-only and
read-write repositories, as well as methods for RDF-only and RDF Schema
repositories. The interfaces are organized like this:
Sail
|
|
RdfSource
/ \
/ \
RdfRepository RdfSchemaSource
\ /
\ /
RdfSchemaRepository
To accomodate for the scalability, RDF Sail heavily relies on iterators for
returning values from the repositories. Iterators exist for returning
namespaces, statements, values (literals and resources) and resources.
All methods in the RDF Sail API can throw SailInternalException's (a
RuntimeException) to indicate an error or an unexpected situation in the
RDF Sail internally (e.g. the database to connect to does not exist).