W3C home > Mailing lists > Public > public-rdf-wg@w3.org > March 2011

Re: [GRAPHS] One graph to bind them all ?

From: Lee Feigenbaum <lee@thefigtrees.net>
Date: Wed, 02 Mar 2011 09:04:34 -0500
Message-ID: <4D6E4E72.3080903@thefigtrees.net>
To: Fabien Gandon <fabien.gandon@inria.fr>
CC: RDF WG <public-rdf-wg@w3.org>
On 3/2/2011 4:30 AM, Fabien Gandon wrote:
>>> In other words I believe we need to decide if there can be
>>> overlaps between g-boxes, between g-snaps and between g-texts.
>>> I am convinced we need to allow overlapping g-boxes. I am not too
>>> sure about overlapping g-snaps and overlapping g-texts.
>> What do existing systems do?
> The TriG Syntax doesn't specify a way to associate a triple to
> several graphs http://www4.wiwiss.fu-berlin.de/bizer/TriG/

Perhaps I'm not understanding what you mean, but what's wrong with:

@prefix : <http://example.org/> .

:g1 {
   :s :p :o

:g2 {
   :s :p :o

This puts the same triple in multiple graphs.

> More over it specifies that "Graph names must be unique within a TriG
> document." So you can't split your named graph definition into
> several pieces.

I'd be happy to relax this restriction; the parser we use does not
enforce it, and we often produce and consume TriG that splits named
graph definitions into several pieces.

> We have a similar limitation on the "RDF/XML Source Declaration"
> http://www.w3.org/Submission/rdfsource/ Using an attribute to name
> the current graph (lines 5 and 10): 01<rdf:RDF
> xmlns:dc="http://purl.org/dc/elements/1.1/" 02
> xmlns:foaf="http://xmlns.com/foaf/0.1/" 03
> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 04
> xmlns:cos="http://www.inria.fr/acacia/corese#" 05
> cos:graph="http://www.w3.org"> 06<rdf:Description
> rdf:about="http://www-sop.inria.fr/edelweiss/fabien/docs/w3c/rdfsource/rdfsource.html">
07<dc:title>RDF Source</dc:title>
> 08<dc:creator> 09<foaf:Person
> rdf:about="http://ns.inria.fr/fabien.gandon/foaf#me" 10
> cos:graph="http://www.inria.fr"> 11<foaf:name>Fabien
> Gandon</foaf:name> 12<foaf:mbox
> rdf:resource="mailto:fgandon@inria.fr"/> 13</foaf:Person>
> 14</dc:creator> 15</rdf:Description> 16</rdf:RDF>
> However in the past we encountered several use cases identifying the
> need for "overlapping identified graphs" in order to support multiple
> partitions of an RDF Dataset according to multiple points of view /
> dimensions. e.g.
> http://www.w3.org/2011/rdf-wg/wiki/TF-Graphs-UC#Slicing_datasets_according_to_multiple_dimensions

also have these issues all the time. We solve it by using relatively
granular named graphs, and then using both system- and application-level
constructs to group shared sets of graphs together. As one example, Anzo
provides named RDF datasets -- multiple RDF datasets can of course share
the same graphs, which accomplishes much of these sorts of goals.

In the past, we have implemented systems in which the triples themselves
had identity and could hence be "shared" between graphs. We found this
to be difficult to implement and even more difficult to program
applications against. I'd be very much against standardizing that sort
of approach.

> As I understand the g-* notions, if a g-text is the serialization of
> a g-snap which is the capture of one g-box, then the question of
> overlapping g-box seems orthogonal since from outside the store one
> can only contemplate o	ne g-box at a time through a g-text that was
> generated from it.
> Now in an RDF document I can have several g-box serialized (a
> collection of g-texts?) and then the questions are:
> - do I allow a triple to be part of several identified graphs for
> instance allowing several names to be specified and the same names to
> be reused? e.g.

 > :G1,G2 { http://dbpedia.org/page/Nice geo:lat 43.703392 ; geo:long 
7.266274 . }

> :G1 { http://dbpedia.org/page/Nice> ex:belongsTo http://dbpedia.org/page/France }

> :G2 { http://dbpedia.org/page/Nice ex:belongsTo> http://dbpedia.org/page/Italy }

Again, I'm not sure if you're referring to:

A) A syntax to make it easy to put the same triple into multiple graphs. 
(An extension to the TriG syntax.)

B) A syntax and semantics whereby triples have an "identity" whereby if 
a triple is removed from one graph, it is (automatically) removed from 
all graphs.

I'm ambivalent on (A) and very much opposed to (B) for reasons touched 
on above.


> - what should be the scope of a blank node in that context? the RDF
> document? the enclosing identified graph? e.g. :G1,G2 { _:a geo:lat
> 43.703392 ; geo:long 7.266274 . } :G1 { _:a ex:belongsTo
> http://dbpedia.org/page/France } :G2 { -:a ex:belongsTo
> http://dbpedia.org/page/Italy }
> For now, my vote goes to allowing a triple to be part of several
> identified graphs and scoping the blank nodes to the RDF document.

> Cheers, -- fabien, inria, @fabien_gandon, http://fabien.info
Received on Wednesday, 2 March 2011 14:05:14 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:04:03 UTC