- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Wed, 29 Aug 2001 15:56:23 -0400 (EDT)
- To: www-rdf-logic@w3.org
[Patrick Stickler] Perhaps you could do me a favor. It is my understanding that e.g. HTTP URI scheme semantics applicable to the structural components of an 'http:' URL are irrelevant and invisible to an RDF processor which is using that URI as the identity of a resource within an RDF graph, and in fact, within RDF space, that URI is used as an opaque symbol to which is attached semantics which is disjunct from any semantics meaningful to or associated with the URI Scheme of the URI, such as the semantics of an 'http:' URL. Now, we have here two functional layers: RDF, and HTTP. A SW agent may interact with that URI at either level, and the semantics at one level does not have significance at the other. When applying some axiom or inferring some relation, the HTTP semantics are totally irrelevant. When dereferencing that URI for perhaps some auxilliary knowledge, the semantics that is defined for the URI in RDF-space is irrelevant to the HTTP server. Now, if my understanding of the division of semantics between functional layers in such a context is incorrect, I would very much appreciate understanding why. I think it is basically correct. The problem is statements such as "the semantics at the lower level is machinery at the higher level." This is a close relative of statements of this sort: "RDF ontologies provide a semantics for (pick one) the Web, XML, ...." The problem with both of these is that they confuse notations and algorithms with semantics. This confusion is so widespread that it might be better to stop fighting it and find a new word for what "semantics" traditionally meant. However, that would make it hard to talk to people (a large community of people) who still think "semantics" means "what a notation means." When we say that RDF or HTTP has a semantics, we mean that for every expression in either notation there is a well defined and clearly specified thing that it denotes. I don't know much about the details of HTTP, but symbols like GET and POST, and URI specifications, all have an intended meaning, just as Patrick S. said. There are W3C documents that spell the meanings out. Anyone who implements a program that uses the HTT protocol must comply with the semantics as specified. It's true that the semantics of HTTP are not expressed in a formal notation such as set theory, but that's because they don't need to be, being fairly simple (nonrecursive, for instance). The problems arise when people confuse the mechanism that complies with the semantics with the semantics itself. The most painful example is the one I mentioned above, where it's casually assumed that an RDF or DAML ontology specifies the semantics of any data base that uses the symbols introduced by the ontology. What they have in mind (I think) is that the ontology will allow inference engines to notice linkages between expressions that would otherwise be missed. If the ontology says that fathers are male and mothers are female, and no one is both male and female, then an inference engine can raise a flag when it sees a database that says Amby Secksual is both the mother and father of little Anxiety Secksual. However, this inference can occur in just this way whether the symbols mean what they appear to mean or not. That is, the symbol 'father' might mean "favorite cigarette brand," and 'mother' might mean "favorite beverage brand," and 'male' might mean "inhaled," and 'female' might mean "drunk," and our exclusionary axiom might mean "Nothing is both inhaled and drunk"; and the inference would still work exactly the same way. When put this way, I know a lot of practical developer types are going to say, "Who cares about the esoteric meaning of "semantics"? The inferences are where the rubber meets the road." That's a reasonable thing to say. Most of the time semantics is unimportant. The exceptions are when people realize they have different ideas of what a class of expressions mean. Then semantics becomes very important indeed. Such conflicts aren't usually about the meaning of "mother"; they're more like to be about more fundamental things like the meaning of URIs, or the meaning of a quoted expression, or whether your mother was your mother before you were conceived. My discussion of semantic layers was specifically focused on the fact that if a QName in an XML serialization is mapped to a QName URI (not a URI following the URI Scheme of the namespace URI, as is now the case), the structure of the original XML QName remains explicitly defined in the resultant QName URI, and hence QName semantics can be applied without limitation to that URI if and as needed; yet even though the URI Scheme maintains the QName structure and hence "preserves" the validity of QName semantics, that QName URI does *not* introduce QName semantics into RDF, since all URIs in RDF are merely opaque identifiers, to which is attached *additional* semantics, and it is only that additional semantics at the RDF level that is relevant to RDF and RDF based tools operating within the realm of the RDF conceptual graph. I.e. No URI Scheme can introduce any semantics into RDF. The use of any URI Scheme for resource URIs has no relevance whatsoever to semantics associated with an RDF graph. Right? Right. Another way of saying it (I hope) is that an XML serialization of RDF can be looked at through two different syntactic/semantic lenses, as a piece of XML or a piece of RDF. Granted, the semantics of XML are underdeveloped, so that not every expression is assigned a meaning; but for the sake of argument we can suppose that the URIs are, and that that meaning is slightly different from the RDF meaning. Note, however, that part of the ambiguity is syntactic, if I understand correctly, and not semantic at all. That is, through the XML lens one sees *different symbols in different arrangements* than one sees through the RDF lens. Isn't this what the QName controversy is about? A given expression of the form QName:id is broken down into components in different ways in XML and RDF. Even so, I think Patrick's point is correct: Nothing prevents a piece of software from reading QNames in the XML way at the same time it reads them in the RDF way, and the resulting synergy might be quite valuable. Secondly, I was referring mostly to semantics associated with ontologies and identified by both URIs in the graph and QNames in serializations, and not the semantics of RDF itself -- which I see as yet a third layer/level of semantics that is disjunct from either URI Scheme semantics or specific ontological semantics. You've lost me here. I suspect the problem lies in the phrase "semantics associated with ontologies," which sounds like it's infected with the confusion I described above. My guess is that most of the time there is no (new) semantics associated with an ontology. That is, it's written in a notation with a semantics (e.g., RDF), and when we introduce a new symbol (e.g., 'mother') we do it in a context where it's clear that the symbol is, e.g., a predicate. The axioms and other stuff in the ontology constrain it to denote a predicate in a particular set of possible predicates, but it's a very big set, and which member it is is not important, and not accessible to the inference machinery anyway. If someone points out a bug (e.g., the ontology allows mothers to be females of different species than their offspring), the bug gets fixed by adding more axioms, not by posting a notice somewhere that "the intended meaning is everyday biological motherhood, neglecting mules." I.e. The semantics associated with a particular ontology which is represented by and processed according to the RDF conceptual model does not add to the semantics of the RDF conceptual model, and visa versa. Both are needed, but depending on perspective and the level at which a given operation is being performed, one or the other may be irrelevant. The semantics that defines what a resource is, or what a statement is, or the relation subPropertyOf, is in no way dependent on, nor modifies in any way the semantics associated with a given URI. No? Or have I just headed off to la la land? All these semantic issues are interrelated. If we spell out formally what sorts of things a URI denotes, then a given URI must denote one of those things. -- Drew McDermott
Received on Wednesday, 29 August 2001 15:56:36 UTC