RDF API / URIs of reified statements


thank you all for the valuable input on the RDF API. I hope we could
produce something usable by the end of the millenium ;)

Below you'll find the current sketch of the core RDF API, mostly based
on the work and comments of JanneS, RonD, GabeB, JonasL, MichaelE and
others. For convenience, I'm using direct Java notation instead of CORBA
IDL. Method names are in parentheses:

interface RDFNode (empty interface)
interface Resource extends RDFNode (getURI)
interface Literal extends RDFNode (getString)
interface Triple extends Resource (predicate, subject, object)
interface RDFModel extends Resource (setURI, size, elements, contains,
add, remove, find,
                                     duplicate, create, createResource,
createLiteral, createTriple)
interface SetModel extends RDFModel (union, difference, intersection)
interface VirtualModel extends RDFModel (getGroundModel)

interface RDFConsumer (startModel, endModel, addTriple)
interface RDFParser (parse)
interface RDFSerializer (serialize)
class RDFModelConsumer implements RDFConsumer (allows parsing into an

org.w3c.rdf.syntax.sirpac (not really core, just an implementation of
RDF M&S 1.0 parser/serializer)
SiRPAC + Serializer adapted from GINF

The package namespace is structured according to the specs produced by
the W3C. As you can guess, org.w3c.rdf.schema is also there (but is
hidden for now ;).

I know it is hard to discuss the details without looking at the code and
trying it out. I'm working on packaging the stuff and putting it on the
Web for your critique. If you see something that is conceptually wrong
with the package structure or interface hierarchy, or have better names
for the interfaces, please let me know.


interface Triple implements Resource, i.e. must have a URI. It seems
logical that the URI of a triple is the URI of the corresponding reified
statement. For some plausible reasons, the URI of the reified statement
should be unique. [1,2] propose some algorithms for computing this URI.
The advantage of the approach presented in [2] par. 4 is that this URI
is still human readable. The disadvantage is that it can get very long
(especially if the object is a literal; note that I'm not advocating for
adapting [2] for treating each literal as a resource).

In my view, this is an unresolved RDF model issue and should be
addressed asap, since it affects both the API and the syntax (the
triples generated by the parser).

PLEASE share your thoughts!



Received on Saturday, 4 December 1999 02:01:42 UTC