Models, StatementSets, Values and Variables

The Stanford RDF API uses the concept of an RDF model.  I've found this a
useful concept for my database implementation, but I'm a bit concerned that
I may be interpreting the idea differently from others.  I've written here
my understanding of the concept and a little bit of schema to support it.
My appologies if this all seems obvious, but there are some subtlties which
are important.

Its not really my place to be documenting this as it is the work of others,
but I feel the need for a description which is a bit more formal than
currently exists so I offer this as a strawman.

I've seen some discussion in the archive get a bit confused because of
overloading of the word 'model'.  For this note, I'm going to use the term
StatementSet which I hope will keep me clear of some of those difficulties.
If you don't like the switch in terminology, just read 'RDF Model' where
ever you see 'StatementSet'.

StatementSets
-------------

A StatementSet is a set of RDF statements.  An RDF XML serialization is a
manifestation of a StatementSet.  Alternatively, a representation of a
StatementSet may be held in a database.  There may be many manifestations of
the same statement set.  A statement may be in none, one or many statement
sets.

A StatementSet is an RDF resource.  As with other RDF resources, a
StatementSet may have a URI or may be anonymous.  

A StatementSet is an abstract resource.  The URI of a StatementSet, if it
has one, is not the same as the URI of a representation of that
StatementSet.  For example, the StatementSet that describes the RDF Model of
RDF Schema may be held in a file whose URL is
'http://aldabaran.hpl.hp.com/bwm/rdfschema.rdf'.  This URI denotes the file
holding the representation of the StatementSet.  It is not the URI of the
StatementSet itself.

Because a StatementSet is an RDF resource, RDF statements can be made about
a StatementSet.

Mutability, Values and Variables
--------------------------------

A URI which denotes a StatementSet may denote a mutable or an immutable
StatementSet.  

The digest URI's which Sergey has proposed denote immutable StatementSets.  

A URI which denotes an RDF description of today weather on the Brecon
Beacons denotes a mutable StatementSet.  

A mutable StatementSet can be thought of as a variable which at any moment
in time, has a value which is a constant StatementSet.

Application of StatementSets
----------------------------

StatementSets are basically a mechanism for aggregating a bunch of
statements.  The aggregation is a useful concept for implementation,
enabling an implementation in a database for example to operate on a
specific group of statements.  I have found it very useful for this.

StatementSets are a lighter weight mechanism than reification for being able
to make statements about aggregates of statements.

Schema
------

It would be presumptive to start sticking things in the RDF namespace and
I'm not sure what common etiquette in situation like this is.  The following
schema is written in terms of a namespace prefix rdfx with a temporary url,
just to make it clear that this is an eXperimental proposal.

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
   xmlns:rdfx="http://mesa.hpl.hp.com/bwm/ss-schema#">

<rdfs:Class rdf:about="http://mesa.hpl.hp.com/bwm/ss-schema#StatementSet">
 
<rdfs:subClassOf>http://www.w3.org/1999/02/22-rdf-syntax-ns#Resource</rdfs:s
ubClassOf>
  <rdfs:label xml:lang="en">Model</rdfs:label>
  <rdfs:label xml:lang="fr">Modele</rdfs:label>
  <rdfs:comment>A set of RDF statements</rdfs:comment>
</rdfs:Class>

<rdf:Property about="http://mesa.hpl.hp.com/bwm/ss-schema#mutable">
  <rdfs:label xml:lang="en">mutable</rdfs:label>
  <rdfs:comment>Indicates whether a StatementSet can change</rdfs:comment>
  <rdfs:domain
rdf:resource="http://mesa.hpl.hp.com/bwm/ss-schema#StatementSet"/>
</rdf:Property>

<rdf:Property about="http://mesa.hpl.hp.com/bwm/ss-schema#manifestationOf">
  <rdfs:label xml:lang="en">manifestation of</rdfs:label>
  <rdfs:comment>Indicates the subject is a manifestation of the
object</rdfs:comment>
  <rdfs:domain
rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Resource"/>
  <rdfs:range
rdf:resource="http://mesa.hpl.hp.com/bwm/ss-schema#StatementSet"/>
</rdf:Property>

</rdf:RDF>

Syntactic Support
-----------------

If the concept of StatementSet finds favour, then it would be useful to
consider some syntactic support in the XML serialization.  It would be
useful to specify the URI for the StatementSet the serialization manifests.
This would I think solve a problem with the Stanford RDF API.

Brian McBride
HPLabs

Received on Tuesday, 2 May 2000 08:51:29 UTC