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

On 3/1/2011 6:33 PM, Fabien Gandon wrote:
> Hello,
>
> Going through the numerous messages about RDF graphs, g-*, named graphs, graph literals, etc. I felt that there is one question which has not been explicitly addressed and which for me is important for instance when it comes to handling blank nodes.
>
> One of the things I liked in the notion of "surface" as proposed by Pat (unless I am mistaken) is that they natively support overlapping i.e. a given triple can belong to several surfaces. This ability to support multiple partitioning of a triple set, overlapping g-boxes, would lead me to say that a blank node participating to the overlap of two g-boxes should be considered the same shared blank node in the two g-boxes.
>
> 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?

All triples within Anzo live inside of named graphs, which are analogous 
to Sandro's g-boxes. The same blank node can appear in multiple g-boxes, 
and so any triple can appear in multiple g-boxes.

I don't recall offhand whether our TriG parser scopes blank node labels 
to a particular graph, and the existing TriG document doesn't specify 
one way or the other. (i.e. given "Example Document 3" in 
http://www4.wiwiss.fu-berlin.de/bizer/TriG/, what is the answer to this 
query:

PREFIX : <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK
FROM NAMED :alice
FROM NAMED :bob
{
     GRAPH ?g1 {
       ?p foaf:name "Alice"
     }
     GRAPH ?g2 {
       ?p foaf:name "Bob"
     }
}

Given the data, I'd assume that the implicit understanding is that bnode 
labels are scoped to a graph, and so the answer to this query would be 
"false". I _think_ that's what our parser does. Despite that, you can 
still programmatically put the same blank node into 2 graphs (err 
g-boxes) within Anzo.

(Note that I think this can only be tested using "FROM NAMED" in SPARQL, 
as multiple "FROM" clauses use RDF merge to combine the source graphs, 
which explicitly prevents any shared blank nodes, IIUC.)

Lee

Received on Wednesday, 2 March 2011 01:21:39 UTC