Re: shared bnodes (Re: RDF dataset semantics again)

On 2012-08-28, at 17:55, Andy Seaborne wrote:
> On 28/08/12 16:49, Steve Harris wrote:
>>> If you don't have a syntax or protocol (such as an RDF API) for constructing graphs with shared bnodes, then, yes, you need to indicate that some kind of unification is desired/appropriate.
>>> >
>>> >It seems to me the simple. obvious, and appropriate way to handle this for most use cases is to allow blank node labels to be shared between different parts of a multi-graph document.
>> It's very easy in the case where you want to indicate that the bNodes are shared - but there is some cost to it - when you want to produce the multi-graph document you need to ensure that the labels for distinct bNodes are kept distinct.
>> 
>> Consequently you can't do tricks like:
>> 
>> ( for i in *.ttl; do echo "<$i> {" ; cat $i ; echo "}" ; done ) > foo.trig
>> 
>> I've never done anything exactly like that, and I have no feel for
>> how  common a usecase it is, but it's worth noting that in RDF-2004 it would
>> be "safe", and in RDF 1.1 it might result in shared bNodes, depending on
>> how lucky you were.
> 
> @prefixes ?

Sure, you'd need to do something tricksier if your data used a fuller range of Turtle syntax, you could add some grep and grep -v into the mix but I'm not going to advocate that people parse Turtle with text processing tools.

Perhaps
   ( for i in *.nt; do echo "<$i> {" ; cat $i ; echo "}" ; done ) > foo.trig
would be a better example?

Historically (and currently) what did/does Jena do with bNode labels shared between graphs in Trig? Have users ever commented one way or the other? I can't remember anyone asking for 4store, but the user base is a lot smaller.

- Steve

-- 
Steve Harris, CTO
Garlik, a part of Experian
+44 7854 417 874  http://www.garlik.com/
Registered in England and Wales 653331 VAT # 887 1335 93
Registered office: Landmark House, Experian Way, Nottingham, Notts, NG80 1ZZ

Received on Wednesday, 29 August 2012 09:08:51 UTC