Re: Problem with auto-generated fragment IDs for graph names

On 18/02/13 16:58, Markus Lanthaler wrote:
> On Monday, February 18, 2013 5:17 PM, Andy Seaborne wrote:
>> _:0x1234 {
>>        x:assertions x:expressedAs x:triples .
>>      }
>>
>> is a labelling of a graph (value).
>>
>> So there is some relationship (not here defined) to the graph and that
>> is in the dataset structure.  In your previous message you talked about
>> "navigate" and "bnode identifiers".  I understood your description as
>> structural navigation of a datastructure from parsing.  Was that right?
>
> Yes.

OK ...

Then this is nothing directly to do with "denotes" as used here which is 
referring to a web resource.

>> You get would get from  _:0x1234 to the graph by looking in the dataset
>> structure (which is a map) if bnodes were allowed.  At this level, of
>> concrete graph structures, bnode label or a IRI string would serve the
>> same purpose using e.g. relative URIs (and a per-parse random base URI
>> making it only findable locally).  It's a local structural identifier.
>
> Yes. Would that also be the case if bNodes would *not* denote the graph they
> label? As I understand it, if bNodes wouldn't denote the graph, you couldn't
> look up a graph labeled with a bNode ID in a dataset because you wouldn't
> know if that bNode ID denotes that graph or not. Is that correct?

For structural navigation, an RDF dataset is a Map(Node->graph); you can 
look up the bNode/IRI and get the graph.  You, JSON-LD, can add the 
constraint that a bNode/IRI is actually referring to the graph.

(but then the graph is an abstract value - not the JSON-LD normalized 
structure, Turtle document or any specific bytes.  1, 01, +1 and all that).

>
> If you have the following dataset:
>
> {
>    _:b1 x:signature "... signature ..." .
> }
> _:b1 {
>    ... some triples ...
> }
>
> Do the two _:b1 above refer to the same, i.e., the named graph?

If you say they do, they do.  Ditto IRIs.  Pat is *proposing* something 
for bNodes but it's not about structural navigation of the data.

It's a choice you can make about IRIs you mint as part of processing the 
file.  You can add additional constraints on the parsing process/data.

You may have a modelling problem in that the bNode does not actually 
denote/refer to one single thing - there could be many things such that

_:xyz foaf:name "Markus"

using bNodes as the graph identifiers seems to me actually to be a bad 
choice for you.  You want a concrete name to say "that one particular 
graph".

> Does this
> mean that "... signature ..." is the signature of the graph labeled with
> _:b1? Or could it be that the signature is about something completely
> different?
>
> RDF-CONCEPTS says:
>
>     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. RDF does not place
>     any formal restrictions on what resource the graph name may
>     denote, nor on the relationship between that resource and the
>     graph.
>
> I read this as in the example above you wouldn't know to what the signature
> applies. It may or may not be the graph. Manu's use case requires that it is
> the graph to which the signature applies. That's the reason why I argued for
> "bNodes MUST denote the graph".

You can add that as a requirement for JSON-LD (and that's true for 
bNodes or IRIs) - there is no need to make RDF adopt one position or the 
other, excluding the common current usages that we enumerated over the 
long discussions.

	Andy
>
>
> Thanks,
> Markus
>
>
> --
> Markus Lanthaler
> @markuslanthaler
>

Received on Monday, 18 February 2013 18:01:21 UTC