Abstract RDF Interfaces

This is a collaborative effort to collect the requirements needed to define a set of cross-platform API's for RDF data stores. The focus will be on those aspects that are specific to the RDF data model with as little dependencies on implementation as possible

Zope Interfaces

Daniel Krech suggested the possible use of Zope Interfaces (see references below) as a means to properly document and implement (at least for Python-based data stores) these interfaces

-- Chimezie

Levels of Abstraction

Below is a rough sketch of how the pure RDF APIs could stack:

            Graph (isomorphism, iteration, generic statement matching, etc...)
            -----
            Statement
            ---------
            Statement Parts (rdflib's URIRef,BNode, etc.. might suffice)

Below is a rough sketch of how the storage specific APIs could stack:

            Concurrency
            ----------
            Transactions
            -----------
            Context-related functionality
            ___________
            Persistence

-- Chimezie

Statement API

If the statement parts are already accounted for (and well modelled) the only remaining parts needed would be:

-- Chimezie

BNodes

What value do they have in an API if the data store assigns system-controlled UIDs to them? How are they different from resources in that scenario?

-- Chimezie

Relevant References: