Re: B-scopes

Hi Andy,

On 18 Nov 2012, at 17:29, Andy Seaborne wrote:

> [[
> An RDF graph is copied into a scope by systematically replacing the graph's blank nodes with fresh ones in the target scope. If none of the source's blank node identifiers are used in the target scope, this can be achieved by simply re-using the same blank node identifiers in the new scope.
> ]]
> 
> Need to explain "systematically" (which I failed to do without using the work "isomorphic".)

Changed:

[[
An RDF graph is *copied into a scope* by replacing each blank node in the graph with a fresh blank node in the target scope. Note that occurrences of one blank node in multiple triples are all replaced with the same fresh blank node.
]]

> [[
> The merge of two RDF graphs is the result of copying both graphs into a target scope. This ensures that the graphs do not share blank nodes.
> ]]
> 
> I can't follow "this ensures the graphs..."
> 
> 
> """
> This ensures that in the merged graph, blank nodes from the input graphs are different.
> """
> 
> although saying something like converting the two graphs to new ones that do not share bNodes then doing a copy (union) seems cleaner.

How about this:

[[
The result is a single graph where all blank nodes are in the same scope, and where any blank node identifiers that occurred in both input graphs have been replaced as to avoid clashes.
]]

Best,
Richard



> 
> 	Andy
> 
> 
> On 16/11/12 19:10, Richard Cyganiak wrote:
>> Hi Alex,
>> 
>> On 16 Nov 2012, at 16:28, Alex Hall wrote:
>>>> [[
>>>> A *blank node identifier* is a Unicode string that is not an IRI.
>>> 
>>> Minor nit-pick: An IRI is just a Unicode string that follows a certain format. A blank-node identifier string could be a valid IRI (modulo the syntax rules for bnode labels in the serialization language) in the same sense that a literal string could also be a valid IRI. We just choose to treat blank node labels and IRIs as distinct types of things.
>> 
>> Fair point. I added the restriction as I hoped to remove a possible source of confusion, but perhaps there are better way of doing this.
>> 
>> Condensed proposal:
>> 
>> [[
>> A *blank node* is a *blank node identifier*, being a Unicode string, in a scope.
>> 
>> Every RDF document forms its own, self-contained *scope* for blank nodes. The handling of scopes outside of RDF documents (for example, in RDF stores) is implementation-dependent. Other specifications MAY impose additional scoping rules.
>> ]]
>> 
>> The whole thing, with some additional changes, is here:
>> http://www.w3.org/2011/rdf-wg/wiki/User:Rcygania2/B-Scopes#3.4_Blank_Nodes
>> 
>> I've done a few more changes in an attempt to address Andy's concerns. I try to make clearer there *may* be clashes between blank node identifiers because they don't *have* to be unique, and in that case blank nodes need to be relabelled.
>> 
>> Best,
>> Richard
>> 
> 

Received on Monday, 19 November 2012 11:27:55 UTC