W3C home > Mailing lists > Public > public-linked-json@w3.org > February 2013

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

From: Pat Hayes <phayes@ihmc.us>
Date: Mon, 18 Feb 2013 22:11:33 -0600
Cc: Markus Lanthaler <markus.lanthaler@gmx.net>, public-linked-json@w3.org, 'RDF-WG' <public-rdf-wg@w3.org>
Message-Id: <FDADE39C-4B50-4ED2-B881-636FC65D1178@ihmc.us>
To: Andy Seaborne <andy.seaborne@epimorphics.com>

On Feb 18, 2013, at 12:00 PM, Andy Seaborne wrote:

> 
> 
> 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.

No, its a suggestion for how to interpret blank nodes used as graph labels, It's not about IRIs, minted or unminted.

>  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".

My proposal would mean that when used as a graph identifier, they would have to denote one particular graph. So they would be a good choice semantically, as well as being a good choice operationally (which Manu assures us they already are, for a variety of reasons.) 

> 
>> 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.

But Manu's point remains, that there would not be any way to encode this JSON-LD content in RDF. And since we can make it possible (and remove all of Manu's problems with signatures) by allowing bnode graph identifiers, and since doing this with an appropriate (and almost blindingly obvious) semantic constraint added would also overcome a major problem that we have ourselves created by failing to give a sensible semantics to datasets, this all seems like a nobrainer. Unless there is some other strong objection to allowing bnodes to identify graphs. Is there? Apparently SPARQL works without problems, I gather. Anything else that could go wrong? 

Pat


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

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973   
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Tuesday, 19 February 2013 04:12:21 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:39 GMT