W3C home > Mailing lists > Public > semantic-web@w3.org > December 2007

RDF/XML and named graphs

From: Jeremy Carroll <jjc@hpl.hp.com>
Date: Wed, 12 Dec 2007 14:02:05 +0000
Message-ID: <475FE9DD.3000201@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:02:37 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:19 GMT