[Fwd: RDF/XML and named graphs]

I don't propose to copy responses, but here's a message Jeremy Carroll 
has just posted to the (publicly available) Semantic Web list [1]

[1] http://lists.w3.org/Archives/Public/semantic-web/2007Dec/0035.html

Phil.

(incidentally, at the time of writing, the response has been a +1.)

-------- Original Message --------
Subject: RDF/XML and named graphs
Resent-Date: Wed, 12 Dec 2007 14:02:42 +0000
Resent-From: semantic-web@w3.org
Date: Wed, 12 Dec 2007 14:02:05 +0000
From: Jeremy Carroll <jjc@hpl.hp.com>
To: Semantic Web <semantic-web@w3.org>



Suggestion: create a new attribuite rdf:graph="URIRef" to provide for
named graph support in RDF/XML.


===

I have noticed that both POWDER and OWL 1.1 want to use reification in
order to give metadata about triples (or more generally, parts of graphs).

It is known and documented (in RDF Semantics) that reification reifies
statements rather than triples, and so, at least according to the formal
semantics, the attempts to use reification in this way, do not work.

One of the motivations for the named graphs view of the world, was to
address such use cases.

Unfortunately, the only serialization of named graphs suggested uisng
RDF/XML, is to have multiple files with one graph per file, which is, at
least, awkward.

I think maybe we should change that, by updating RDF/XML to have an
additional attribute rdf:graph that can appear on typed nodes,
rdf:Description, and property elements.

The value of the attribute is a (relative) URI that is resolved in the
normal way against the current inscope base URI.

The semantics is that the triple(s) generated by this part of the XML
(and all its descendents) are added *both* to the RDF graph
corresponding to the file, and to the RDF graph named by the attribute.

If an RDF/XML file uses a URI as the value of an rdf:graph attribute,
then the RDF/XML file claims to give a complete definition of the graph
with that name.

To give an example:


<rdf:RDF xml:base="http://example.org/powder">
  <owl:Class rdf:ID="RC" rdf:graph="#p">
   <rdfs:comment>The class of resources on on example.org</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Blue">
   <rdfs:comment>The set of all things that are blue</rdfs:comment>
  </owl:Class>

<rdf:Description rdf:about="#RC >
   <rdfs:subClassOf rdf:resource="#Blue" rdf:graph="#p" />
</rdf:Description>

  <rdf:Description rdf:about="#p"  rdf:graph="#p">
   <foaf:maker rdf:resource="http://example.com/foaf.rdf#david" />
   <dcterms:issued>2007-12-04</dcterms:issued>
  <wdr:validUntil>2008-12-03</wdr:validUntil>
  </rdf:Description>

</rdf:RDF>

This then corresponds to teh following graphs:

with
@prefix eg: http://example.org/powder#

http://example.org/powder:
eg:RC rdf:type owl:Class .
eg:RC rdfs:comment "The class of resources on on example.org" .
eg:Blue rdf:type owl:Class .
eg:Blue rdfs:comment "The set of all things that are blue" .
eg:RC rdfs:subGraphOf eg:Blue .
eg:p foaf:maker <http://example.com/foaf.rdf#david> .
eg:p dcterms:issued "2007-12-04" .
eg:p validUntil "2008-12-03" .


http://example.org/powder#p:
eg:RC rdf:type owl:Class .
eg:RC rdfs:comment "The class of resources on on example.org" .
eg:RC rdfs:subGraphOf eg:Blue .
eg:p foaf:maker <http://example.com/foaf.rdf#david> .
eg:p dcterms:issued "2007-12-04" .
eg:p validUntil "2008-12-03" .

The semantics says that eg:p is interpreted as the graph given above
(the syntactic object) and that that group has foaf:maker being whatever
#david refers to, etc etc.

thoughts?

Jeremy

Received on Wednesday, 12 December 2007 14:26:18 UTC