Re: Graph labels vs. graph names. (was: Re: complete graphs)

On Oct 5, 2011, at 7:22 AM, Richard Cyganiak wrote:

> Hi Pat,
> 
> On 5 Oct 2011, at 07:34, Pat Hayes wrote:
>>>>> For example, :G1 below is a name for the graph containing triples that state that {:s1 :p1 :o1.} was published yesterday at <http://example.com/>.
>>>>> 
>>>>> :G1 {
>>>>> [] a :Publishing;
>>>>>    :date "2011-09-30"^^xsd:date;
>>>>>    :webAddress <http://example.com/>;
>>>>>    :triples :G2.
>>>>> }
>>>>> :G2 {
>>>>> :s1 :p1 :o1.
>>>>> }
> …
>>> Let's look at two URIs in that graph: G2 and <http://example.com/>.
>>> 
>>> As far as I can tell, RDF Semantics tells us nothing about the referents of either of these URIs, except that they're in a certain relationship to the blank node in the graph.
>> 
>> Indeed, which is why if we want to ensure that they do relate to something in particular (such as a graph label to the graph it labels), we should add this as a semantic condition.
> 
> Wait a minute.
> 
> There is no semantic condition that makes <http://example.com/> denote the web page. As far as RDF Semantics is concerned, <http://example.com/> is a completely arbitrary URI, and replacing it with <http://something.else/> would change *nothing* in the meaning of the graph.

Whoa. Of course it would change the meaning, and it would also change the entailments. 

I think I see what you mean, but you have stated it too strongly. Here is what is the case: given a graph G and another graph H both using a common vocabulary V, one could replace all the URIs in V with different URIs, 1:1, and the question of whether G entailed H would not be altered. So that entailment depends only on co-occurrence of URIs, not on their actual identity. True, but note that in order to make the intended rhetorical point, you have to allow G to include *every* occurrence of those URIs; because as soon as you allow G+G' where G' does *not* get its URIs replaced, this isomorphism breaks immediately. And you have to make V include every URI, because all it needs is one triple in G' to contain a URI in V and another one not in V, for it to break. 

Put another way, this is nothing more than the observation that Web identifiers are syntactically arbitrary, as far as their meaning goes. If I had decided to use http:www.ihmc.us/frabj instead of http://www.ihmc.us/groups/phayes/, **and if this substitution were done consistently throughout the Web, including in the HTTP machinery underlying the GET process**, then yes indeed, everything would work just as it does now. There is nothing **intrinsically** meaningful in the particular choice of the syntactic form of a URI, any more than there is in the historical choice of the English word "dog" to refer to animals of the species Canis Lupus. 

BTW, I myself would love to have RDF officially enshrine some convention relating Web architecture to RDF denotation. HTTP-range-14, for example. The objections to this are entirely political rather than technical. There is nothing inherent in model-theoretic semantics which prevents graph naming being a genuine semantic naming: we put the equations in the original named graph paper, and a more sophisticated version is included in the ISO Common Logic spec. It does require that we agree that a name is a name, and not pussyfoot around with wordplay trying to suggest that it is something else, some 'other' non-semantic kind of naming. 
 
> 
> I have not seen you suggest any change to that.
> 
> Why is a semantic condition that makes :G2 denote the graph important, while a semantic condition that makes RDF Semantics aware of the web is unimportant?

Because we want to make some RDF machinery work in a way that needs one 'naming' to be fixed, but not the other.

> 
>>> Personally I find it easy to accept that :G2 denotes a particular named graph the exists in the same dataset, external to our graph G1.
>> 
>> Oh, I agree that is entirely reasonable. However, nothing in the specs actually state or require this, so it is technically invalid
> 
> Can you please back up the claim that it is “technically invalid” with some quotations from the spec?

invalid = not valid. Valid = in all interpretations, if the antecedent is true then the consequent is. In this case, the antecedent would be the syntax which 'attaches' the label :G2 to the second graph, and the 'consequent' would be the use of that URI in an RDF triple to refer to that graph. Even if the former succeeds in associating the label, that can be true in interpretations which allow the label to denote something completely different. Ergo, not a valid use of the naming convention. (To get it strictly truth-theoretic, have G1 assert an owl:sameAs between the URI :G2 and a graph literal which copies the G2 graph.) 

> 
>> and certainly not something I would want to rely upon when writing software.
> 
> Implementers and users of SPARQL seem to be generally perfectly ok with relying on private conventions.
> 
> Is there any evidence that the lack of a rigidly fixed denotation for graph IRIs actually causes any problems for users or implementers?
> 
>> Any reasoner which relied upon this would be incorrect.
> 
> No, it would merely use an ad-hoc semantic extension. I believe that RDF Semantics specifically allows this kind of thing.

It would be incorrect in RDF. It might be correct in a semantic extension of RDF, sure, but if everyone on the Web is using their own private semantic extension, then we are kind of flogging a dead horse, right? Isn't the whole idea of RDF to have a uniform, common semantic framework which supports INTERoperability? Or did I wake up in the wrong working group?

>>> I certainly don't see anything in RDF Semantics that contradicts this.
>> 
>> There is nothing that contradicts it, but there is also nothing that sanctions it as being correct.
> 
> There is nothing that sanctions the use of <http://example.org/> to denote that web page as correct either, and that doesn't seem to cause any problems, so I don't think that RDF Semantics needs to sanction anything about graph names either.

The difference is that you want to rely on this unstated naming convention to make everything hang together. There is an important but (so far) unstated semantic relationship between G1 and G2, which is that the former contains a URI which is supposed to refer to the latter. We can state this, but only if we are allowed to say that this naming relationship is a genuine one, of the kind that semantics talks about. As things stand at present, the semantics has been locked out of the graph "naming" discussion. Which is absurd, IMO. 

The difference with the web-page case is that nothing in your example depends on what that URI denotes. The actual semantic machinery does not get involved with that case in the way it does with the graph case. 

>> And since we have explicitly decided (as I believe we have) that the fourth IRI in a quad is not a 'name' for a graph in the sense that it is required to denote that graph, I take it that the use of G2: is a label in the second expression does *not* establish a naming or referential relationship between the URI and the graph. (If this is wrong, then of course I stand corrected and withdraw my point.)  Since RDF semantics does require that when that same URI is used in an RDF triple, it must be related to what it names by the standard denotation relationship, it follows that there can be no semantic requirement that the use of this URI inside the triple means the same thing as its use as a graph label. They might as well be two different URIs: in fact, your example with the first occurrence of  :G2 replaced by :G3 would be *exactly* identical in meaning, according the semantic model we have at present. As I am sure you will agree, there is nothing in the RDF semantics which prevents :G2 and :G3 from referring to the same entity. Of course, there is nothing to ensure that they do, either: it is, in fact, a complete crap-shoot; just as it is when you use the same name in contexts which are explicitly, normatively, stated to allow different meanings for occurrences of one and the same name. 
> 
> RDF Semantics is already oblivious to the most interesting use of URIs – the web. It doesn't know anything of the inherent difference between what's identified by <http://example.com/>, <http://something.else/> and <http://google.com/>. These are all alike to RDF Semantics. A complete crap-shoot.

But it does require that they, and all other URIs, denote some one thing in every interpretation. It does not allow a URI to be used casually to identify a whole variety of different things depending on where it is used, in ways that are known only privately to the user. And it is that global nature of the URIs-considered-as-names which makes the semantic web possible. If every occurrence of every URI had a different meaning, the Web would not work. It would not even be a Web. It is not a jumble of local contexts each (re-)defining the meaning of all the global names. (Or better: maybe it is, in fact. In which case we ought to either face up that reality and make RDF conform to it, or try to make RDF usage stay in line with the semantic Web vision that motivated its construction in the first place. But we should not just ignore the issue and rely on word-play and sophistry to pretend its not a real issue.)  

> 
> This doesn't seem to have bothered anyone very much over the last seven years.
> 
> I suggest that it's fine if RDF Semantics is equally oblivious to the structure of RDF datasets. It's fine if RDF Semantics doesn't know anything about the inherent difference between :G1, :G2 and :G3 resulting from their use (or non-use) as graph names in the example above.

Well, OK, but then don't expect to be able to use those names in RDF to refer to those graphs when we have all agreed that they may well be being used to refer to other things. 

> 
> I would like to see an explanation why it is ok for RDF Semantics to completely ignore the use of IRIs on the web yet the sky would be falling if it ignored the use of IRIs as graph names in RDF datasets.

The sky falls when you use a URI which *by common consent* refers (and I mean 'refers semantically') to, say, a person, to 'label' a graph, and then expect to use that label inside RDF to say something about the graph rather than the person. The RDF semantics denies this usage quite explicitly, both pre-formally and formally (the latter having been designed to follow the intuitions of the former.) You would need some notion of 'local context' or the like (or maybe a kind of super-punning, OWL2 on steroids) to make sense of this kind of usage. We could try to put such a thing into RDF, but frankly, the amount of pain that would cause would outweigh even the howls of every quadstore implementor in history. Or, as I have said earlier, we could just accept that RDF is not really a formalism with a semantics at all, but just a handy format for scruffy data which can only be fully understood by its creator or whoever is currently in charge of storing it. Then it doesn't even need a semantics document, and I can go and do more interesting thngs than arguing philosophical points that were settled 50 years ago. </rant>

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 21:53:13 UTC