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 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).