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

On Tue, Mar 1, 2011 at 8:20 PM, Lee Feigenbaum <lee@thefigtrees.net> wrote:

> 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?
>

Mulgara is a quad store, where the fourth column is the URI of the graph
associated with the statement.  Each node is identified internally as a long
integer, and there's nothing preventing the same blank node ID from
appearing in different graphs.

Statements get added to a graph in one of three ways:
1. Loaded from a file
2. Inserted manually, as in an INSERT DATA call in SPARQL 1.1
3. Computed from query results, as in an INSERT WHERE call in SPARQL 1.1

In cases 1 and 2, a new blank node ID is always allocated.  In case 3, if
the query returns an internal blank node ID then that same node ID will be
re-used in the new statement.

-Alex

Received on Wednesday, 2 March 2011 15:58:11 UTC