defn of Named Graph

Following that epiphany I had at the end of my last email, here's what 
I'd love to see everyone agree on, more or less:

== Named Graphs

An "RDF Named Graph" is similar to an "RDF Graph", but different in one 
important way.    Because RDF Graphs are defined as being mathematical 
sets of RDF Triples, any two RDF Graphs which happen to contain the same 
RDF Triples are, by definition, the same thing. This means that 
statements made about any RDF Graph, such as metadata about provenance 
and licenses, necessarily apply wherever the same set of RDF Triples 
occurs.   This is not always the desired intent, and Named Graphs 
provide an alternative.

Like an RDF Graph, an RDF Named Graph contains zero or more RDF 
Triples.  Unlike an RDF Graph, an RDF Named Graph has an identity 
distinct from those triples.  That is, two Named Graphs remain distinct 
and distinguishable entities even if they happen to contain exactly the 
same RDF Triples.

The term "Named Graph" has historically caused some confusion, as some 
people have read the phrase to mean "an RDF Graph which happens to have 
a name".   This reading is not correct, since RDF Named Graphs are not 
RDF Graphs at all.   They might reasonably have been called 
"Identifiable Graphs", which contrasts them to "RDF Graphs" in the same 
way that a counterfeit dollar bill is not technically a dollar bill.   
As in the dollar bill analogy, RDF Named Graphs and RDF Graphs have a 
lot in common, but in some circumstances it is critical to distinguish 
between them.    Other names that have been suggested for Named Graphs 
include "surfaces" and "g-boxes", but "named graph" has been cemented by 
its use in the SPARQL syntax.

Names Graphs also provide a useful semantics for RDF Datasets.  Some RDF 
Datasets, hereafter NG Datasets, have this intended meaning: each 
(_name_, _graph_) pair is a statement that _name_ is a Named Graph which 
contains exactly the triples in _graph_.    The class rdf:NGDataset is 
defined for signalling these are the intended Dataset semantics.

The class rdf:NamedGraph is defined for use in declaring the domain and 
range of predicates which relate Named Graphs.   For example:

   <> a rdf:NGDataset
   GRAPH :g1 { :MtEverest :heightFeet 29002 }
   GRAPH :g2 { :MtEverest :heightFeet 29029 }
   :g1 :claimedBy :BritishIndiaSurveyOffice.
   :g2 :claimedBy :IndiaSurveyOffice.

Here, the domain of :claimedBy is rdf:NamedGraph, and it might be 
defined in English as "x :claimedBy y means that all the triples in the 
Named Graph x are claimed to be true by the social entity y."

The greatest differences between RDF Graphs and RDF Named Graphs appear 
when one considers the possibility of them changing over time.    It is 
nonsensical to consider an RDF Graph changing over time, just like it 
makes no sense to talk about the value of some integer, say seven, 
changing over time.   In contrast, it makes perfect sense to consider 
Named Graphs changing: at one point in time the identifiable thing that 
is a certain Named Graph contains some triples and at another point in 
time it might contain different triples.  As of RDF 1.1, however, the 
formal specifications for RDF do not provide any specific support for 
handling changing data.

==

That's simple and clear enough, isn't it?     ( ... he says, clinging to 
perhaps his last shred of hope. )

        -- Sandro

Received on Tuesday, 17 September 2013 21:51:36 UTC