W3C home > Mailing lists > Public > public-rdf-wg@w3.org > February 2013

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

From: Pat Hayes <phayes@ihmc.us>
Date: Thu, 14 Feb 2013 11:13:33 -0600
Cc: Manu Sporny <msporny@digitalbazaar.com>, RDF WG <public-rdf-wg@w3.org>, Linked JSON <public-linked-json@w3.org>
Message-Id: <A4DC0E36-5305-4C8B-8791-248EAC1AEB02@ihmc.us>
To: Eric Prud'hommeaux <eric@w3.org>

On Feb 14, 2013, at 8:02 AM, Eric Prud'hommeaux wrote:

> * Pat Hayes <phayes@ihmc.us> [2013-02-13 23:16-0600]
>> Manu, let me try to put the other case, in terms that approximate your self-confidence that you must be right. Obviously I am speaking here as an individual, not on behalf of the WG.
>> 
>> On Feb 13, 2013, at 9:24 PM, Manu Sporny wrote:
>> 
>>> On 02/13/2013 05:11 PM, Richard Cyganiak wrote:
>>>> PROPOSAL: Put @id on all graphs.
>>>> 
>>>> Why the aversion against simple and obvious solutions?
>>> 
>>> The simple and obvious solution you propose is wrong for developers.
>> 
>> For all developers? That seems like a rather strong claim. 
>> 
>>> 
>>> It attempts to side-step an arbitrary constraint imposed on developers
>>> by RDF Concepts by making developers lives harder. Worse, it ignores the
>>> reality of transient messages, including transient RDF Datasets that
>>> must be identified with document-local identifiers if the digital
>>> signatures are going to work out.
>> 
>> Well, this is the first time I have heard of "transient RDF". RDF, as far as I have always understood, was never intended to be transient. It is intended for publishing data on the Web. So it sounds as though you are simply using it for a purpose for which it was not designed, and never intended to be used. Perhaps your problems may arise from this mismatch between the intentions of the designers and your planned use.
> 
> I'd characterize this more as "quoting RDF", which we've been wrestling with since the beginning.

We have? News to me. It has come up *very* occasionally, but nobody has argued for it very strongly in any WG activity. And in spite of TImBL's early interest in it, I have never seen anyone cite an actual use case. It would break (or seriously complicate) SPARQL. 

And in any case, this isn't what Manu is talking about, as far as I can see. He hasn't mentioned quoting, and it all seems to be about transience and digital signing. 

> I'm motivated to fix this not because of an interest in JSON-LD or Web Payments, but because quoting is a universal need:
>  Bob says "the moon is made of green cheese".

Its more complicated than it seems. Do you want that quotation to be de dicto or de re? Does this quotation permit OWL equality reasoning, or is it referentially opaque? You are not allowed to say that you don't care, because the spec has to choose one way or the other. If you want both, you probably have to have two kinds of quotation. Reification is defined  (non-normatively) to be de re, allowing equality reasoning, so its not really traditional quotation. (Its  more like, Bob says *that* the moon is made of green cheese, without quote marks.)

> In the old days, the party line was that one uses reification for signing:
>  _:statement1 dc:author "Bob" ;
>               rdf:subject :TheMoon ;
> 	       rdf:predicate :madeOf ;
> 	       rdf:object :greenCheese .
> 
> The analog in named graphs would be a bnode-labeled graph:

Only if you used a bnode in the reification, but why would you have done that? A reification with a bnode subject says that the described graph exists, that is all. It doesn't *identify* it , and it doesnt say anything about any actual graph in a document somewhere. 

>  _:statement1 dc:author "Bob" . _:statement1 { :TheMoon :madeOf :greenCheese } .
> 
> Except we've recently decided not to allow bnodes as graph labels, so:
>  <statement1> dc:author "Bob" . <statement1> { :TheMoon :madeOf :greenCheese } .
> 
> 
> Normally, we shake a finger at someone who invents URLs that they don't intend to honor.

We are honoring it, its being treated as a graph name. Thats what graph names DO, they name graphs. 

> Why is this case different?

Why do you think it is different? 

But OK, aside from scoring debate points, I will admit that using bnodes as graph labels does make semantic sense, if this is what they are supposed to mean. Is this what Manu wants them to mean? That is, a bnode used as a graph label means that this same bnode used inside some RDF (presumably in the default graph of the dataset?) must refer to that labeled graph? I would be cool with this if we could make that a genuine semantic constraint on datasets. It amounts to treating the labelling pairing as an equation: <name> = <graph>, which makes very good sense, but clashes with some of the other decisions we have taken (or carefully refused to take) about the meaning of graph labelling, since it means that graph labels must actually refer to their graphs. BTW, we would also have to make it clear exactly what sense of 'graph' is being referred to. I will hazard a guess that what Manu wants is for the bnode to identify a graph document rather than an actual graph (eg any bnodeIDs used inside it must not be allowed to change, or else the digital signature will get screwed up?)

Pat
Received on Thursday, 14 February 2013 17:14:07 GMT

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