Re: bNodes as graph identifiers

Hey everybody,

I'd like to present my thoughts on that issue:

"Steve Harris" <steve.harris@garlik.com> wrote:

> On 2013-06-03, at 12:22, "Markus Lanthaler" <markus.lanthaler@gmx.net> wrote:
>
>> On Monday, June 03, 2013 12:45 PM, Steve Harris wrote:
>>>>>> Right. Expecting to be able to access bnode IDs from outside their
>>>>>> scope is something we should strongly discourage. Even if it works,
>>>>>> it is Bad Practice.
>>>>>
>>>>> Right, but that *severely* limits the utility of this feature.
>>>>
>>>> Why?
>>>
>>> Well, you have no persistent identifier, and no easy (legitimate) way
>>> to refer to the graph in your code, except by example. That can be
>>> difficult to deal with in the real world.
>>>
>>> Suppose I have:
>>>
>>> _:a {
>>>   :s1 :p "foo" .
>>>   :s1 :q "bar" .
>>> }
>>>
>>> _:b {
>>>   :s1 :p "foo" .
>>>   :s1 :q "baz" .
>>> }
>>>
>>> The only way I can refer to the graph labelled as _:b in my system is
>>> by noting that it has :s1 :p "foo", :s1 :q "baz" - it has no identity
>>> beyond that.
>>
>> Except if I would also have something like this in, e.g., the default graph
>>
>> :s0 :x _:a
>> :s0 :y _:b
>>
>> Then I can navigate to the graph. But unfortunately _:a doesn't denote the
>> graph (even an IRI wouldn't) and so it is not clear whether _:a (or :a for
>> that matter) identifies the graph stored using that label or something else.
>> I'm sure most people would intuitively say that _:a does identify that graph
>> - but that's the topic of another thread.
>
> Yes… that's somewhat problematic, and you may as well have just used  
> your identifying properties in the default graph in the anonymous  
> one to identify it, or used a stable graph ID for that matter.


What I really do not understand is why complicating things when as you  
already have said
the most intuitive way of referring to a graph is via its name?

Why can't _:a denote the graph?
What's the purpose in that unintuitive way of thinking of names? That  
there are names that:

"Despite the use of the word “name” in “named graph”, the graph name  
does not formally denote the graph.
It is merely syntactically paired with the graph."
What is this syntactically pairing good for if not for identifying the  
graph itself?

I for one believe that a NAME always identifies a concept within a  
given realm/namespace/etc.
whether it is a local identifier like a bnode identifier, or a global  
identifier like a qname/URI or a literal.

Cheers
Sven

Received on Wednesday, 5 June 2013 12:56:17 UTC