Re: why I don't like named graph IRIs in the DATASET proposal

On Oct 4, 2011, at 10:08 AM, Richard Cyganiak wrote:

> On 2 Oct 2011, at 18:06, Pierre-Antoine Champin wrote:
>> As you stress it, RDF does not dictate which IRI should denote which
>> resource (including graphs). I don't think I ever suggested to change that.
>> 
>> However, RDF dictates that each time I use the same IRI (as a node), it
>> denotes the same resource.
> 
> No, it doesn't.

Yes, it does. 

> 
> RDF Semantics is concerned with the interpretation of *individual RDF graphs*.

and a graph is a set of triples. The set of all RDF triples published on the Web at any time in the past, present or future is an RDF graph (for example). The RDF semantics applies to this graph as much as to any other. In fact, this is the most important graph to which it should be understood to apply. 

> 
> As far as RDF Semantics is concerned, the same IRI may identify completely different things in different RDF graphs

Not if any processing which relies upon the meanings of the URIs can use those two graphs together. If you could find a way to partition the SWeb so as to guarantee that the URIs in one partition could never make any semantic contact with those in the other, then yes. But I have never previously even thought about this idea, to be honest. Im not sure it even makes sense.

> .
> 
> It is the social contracts and conventions of the web that encourage us to converge on a single unique referent for each IRI. This is orthogonal 

It is not orthogonal. The model theory starts with that interpretation mapping and defines how truth of assertions is determined by it. BUt as assertions are sometimes a source of knowledge about reference, this connection also pushes back from assertions to referent determination. Yes, reference determination is often determined initially by social and linguistic conventions and contracts and so on. But not always, and not not entirely: and as the SWeb grows, the role of assertions made using RDF and its children will likely increase in importance. 

> 
> For example, in this triple:
> 
>   <#me> foaf:homepage <http://richard.cyganiak.de/>.
> 
> we all know what the subject of the encoded statement is. But that's not because of RDF Semantics.
> As far as RDF Semantics is concerned, <http://richard.cyganiak.de/> denotes a completely arbitrary resource.

No. The semantics at present does not constrain what this URI refers to. It assumes that it refers to something and then shows how to follow through what that assumption means for truth. That is what a model theory does. But that is not to say that the semantics claims that the referent is arbitrary: it simply is being agnostic about what the referent actually is.  You would expect a general theory to be agnostic in this way. But it does assume that there is a referent, and that what the referent actually is, matters. In fact, it shows exactly **how** it matters, in gory detail.

> It's conventions that allow us – and the software we create – to understand that the target is a web page that can be accessed via a browser and so on.

Well, actually, its a semantic convention (unstated in the specs, but widely assumed, and underlying the http-range-14 idea) that the thing denoted by the URI is, in cases like this, the ("information") resource which the HTTP protocol accesses via the GET command. I for one would like us to state this in the RDF semantics, but I hold out no hope of our actually being allowed to do that. 

But suppose the triple had said 

<#me> rdf:type <:ChineseNational>.

and I claimed that this did not matter in the slightest, since (following your reasoning) the mapping from URis to things had no connection to what the RDF model theory says this triple is asserting. Would you not take issue with such a claim? Would you not want the record corrected? But to even realize that it is an error requires that you agree to the link between reference and truth that is decribed by the RDF model theory. 

> This mechanism *works*.
> 
> I suggest to treat graph names in exactly the same way. When we assert inside some RDF dataset:
> 
>   <#me> ex:assertsGraph <#graph1>.
> 
> then as far as RDF Semantics is concerned, <#graph1> denotes an arbitrary resource. It's conventions – and the definition of ex:assertsGraph – that allow us, and our software, to understand that this talks about a different graph within the same dataset.
> 
> When you and Pat demand that the denotation of graph names in RDF datasets be fixed to the graph, then you conveniently ignore the fact that RDF Semantics currently doesn't have the power to fix the denotation of *anything* (except the RDF(S) built-ins), and *always* defers to convention for establishing the connection between IRIs and things. RDF works nevertheless. Why should it be any different for graphs?

But what RDF does assume is that URIs have a single referent. True, as you point out, we could get by relying on an informal graph-naming convention to associate URIs to graphs, and not formalize this. (This seems to me like being deliberately obtuse, but leave that aside: nothing would break just because of that.) But if there is simultaneously an active assumption, however it is expressed or used, that this URI which is 'associated' with the graph is in fact referring to - being used as the name of, denoting, identifying, whatever you want to call it - something other than the graph, then we really do have a serious problem, if only one of nomenclature and avoiding confusion. Still, nothing actually *breaks**, as I was forced to admit in a telecon discussion a few months ago. But, now take one further step, and *use* that URI in some RDF where it is supposed to *refer* to the graph rather than its referent, and now things do break, and break seriously. 

The fact is, using URIs to name/label/be associated with things that they clearly do NOT refer to, was a serious mistake. We can keep that mistake boxed up inside quad stores and it will not do much harm, provided it stays there and does not leak out. But it has already leaked out. It leaks as soon as you use the URi in some RDF. You want to rely on some idea (?) that each RDF graph can impose its own meanings on URIs (because the RDF semantics talks about graphs?) but this is so leaky that it just can't be made to work unless we can somehow impose a kind of hard privacy partition on these graphs. As soon as they are published or released into the Web public space - as soon as they are sent over a network - they are leaked beyond hope of recall to any kind of privacy. And since our WG business is not even relevant to what is done privately inside applications, but only with the use of RDF as an interchange language, this 'privacy' idea does not make sense for our specs anyway.

Names refer, and the RDF semantics is about the consequences of this reference. And URis are global names which refer globally, and RDF depends on this. We have to face up to this and deal with it. 

Pat

> 
> Best,
> Richard
> 

------------------------------------------------------------
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 Wednesday, 5 October 2011 23:05:49 UTC