Re: Scoping bnodes (was: Re: Blank Nodes Re: Toward easier RDF: a proposal)

> On Dec 5, 2018, at 3:41 PM, David Booth <david@dbooth.org> wrote:
> 
> On 12/3/18 4:38 PM, Patrick J Hayes wrote:
>>>    Bnodes introduced to encode
>>>    structures like n-ary relational assertions, or lists, or some
>>>    complicated piece of OWL syntax, should have a very narrow scope
>>>    corresponding to the exact boundaries of those structures, and
>>>    hence should be ‘invisible’ from outside (which is why it is fine
>>>    to make them vanish in a higher-level syntax using [ ] or ( ).)
>>> 
>>>    Ideally, RDF2 should provide for these structures directly, but
>>>    maybe we can get the benefit with a relatively tiny step, just by
>>>    having a syntax for RDF which has explicit scoping brackets. 
> 
> Interesting idea, and I can see it being useful for RDF streams or very large RDF datasets -- to enable blank node labels to be safely reused without collision -- but I am also curious:
> 
> 1. How would you envision scope names being used?

I was thinking of them simply as a lexical trick to allow bnodes to be ‘bound’ at a particular scope. 
> 
> 2. How would these scopes differ from named graphs?

They enclose part of a graph, and they can be nested. The intention is that they can be completely ignored and the graph stays being correct RDF. But yes, you could think of this as a variant on graph naming, I guess. I havnt thought through the consequences of this, however, and it might cause some problems. 
> 
> 3. Would (or could or should) these scopes correspond to N3's curly brace syntax for grouping triples?

Probably very close, though I dont know whether N3 can bind bnode variables. 

Pat
> 
> David Booth
> 

Received on Saturday, 8 December 2018 07:32:43 UTC