- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Thu, 01 Nov 2007 17:49:27 +0000
- To: public-owl-wg@w3.org
- CC: Michael Schneider <schneid@fzi.de>
Since Michael Schneider has argued my corner much better than I could myself, I thought I might quote him in full ... To my mind this is a devestating critique of the current punning design. (I hope it is not offensive to state my technical opinion in a forthright manner) Jeremy In public-owl-dev: Michael Schneider wrote: -------- Original Message -------- Foreword: Until now, I have found very few information about punning, and I do not remember any serious discussion about punning in this mailing list (just a few remarks here and there by different people). So I will just use this opportunity to start such a discussion. It might well be that, due to my missing knowledge about punning, I am wrong in several points I am stating in this mail. But I believe that it is better to state wrong points, which will then hopefully get corrected within the following discussion, instead of having no public discussion at all. Summary: This week, Jeremy Carroll discusses punning in the OWL-WG mailing list in: "comments on RDF mapping" http://lists.w3.org/Archives/Public/public-owl-wg/2007Oct/0336.html http://lists.w3.org/Archives/Public/public-owl-wg/2007Oct/0337.html His observation is that certain OWL-Full entailments do not exist with punning. For instance: """ <a> rdf:type owl:Thing . <a> rdf:type owl:Class . <b> rdf:type owl:Thing . <b> rdf:type owl:Class . <a> owl:sameAs <b> . entails [in OWL Full] <a> owl:equivalentClass <b> . """ But, according to Jeremy, the latter statement is /not/ entailed in OWL-1.1(-DL) with punning. I am going to comment on Alan Ruttenberg's answer to Jeremy's mails. Alan Ruttenberg wrote on 30 Oct 2007 in http://lists.w3.org/Archives/Public/public-owl-wg/2007Oct/0353.html >My understanding is that there is a requirement to be able to create >properties attached to classes that have more inference support than >is currently possible using annotation properties. For example, it is >desirable that an "annotation property" for an editing time stamp >should have a range that is xsd:date, or, for SKOS, we would like to >be create subproperties of rdfs:label. I agree that this would be a very valuable feature. But I don't believe that this feature is really provided by punning. >Alan Rector articulated these cases initially, IIRC. I suspect they >are recorded somewhere amongst the OWLED stuff. > >I believe that you have correctly identified the missing entailments. >Those entailments, while desirable in general, are not necessary for >the above use case. I think that this argumentation might be somewhat shortsighted. Let's regard for example the following situation: (1) <c1> a owl:Class . (2) <p> a owl:ObjectProperty . (3) <c1> <p> <x> . While OWL-1.0-DL will not allow this combination of axioms, it actually is allowed with punning. So it looks like as if I really have achieved to add an objectproperty to some class. Now, it will probably be quite common in the SemWeb to make further assertions about a class by using a /different/ name for it, and OWL with punning allowes us to do so by stating an additional renaming axiom like: (4) <c2> owl:sameAs <c1> . Having axioms (1) to (4), a punning enabled reasoner will be able to infer the following new statement: (5) <c2> <p> <x> . So up to now, everything looks fine with regards to the "properties for classes" use case. But it doesn't might look so fine anymore, if we have additional axioms on class <c1>. Say, we have the assertion: (6) <i> a <c1> . and I want to make <c1> into a sub class of another class <d>, but now by using its alleged synonym "<c2>": (7) <c2> rdfs:subClassOf <d> . then I would expect that the following statement can also be inferred: (8) <i> a <d> . But as far as /I/ understand punning, (8) won't be entailable, because the URI called "<c1>" denotes a class in (1), while it denotes an individual in (3). In effect, I did not, as intended, assign property <p> to the class ressource denoted by the name "<c1>", but instead, this property has been assigned to some possibly completely different individual resource, which just happens to have the same name. And there has to be no semantical relationship between these two resources, so these two resources don't have to coincide, see section 3.3 of [1]. I can at least see in the semantics draft [2] that in OWL-1.1 there will be no strict separation of the different parts of the OWL universe (individuals, classes, etc.) anymore, as it has been originally demanded for OWL-1.0-DL. But this makes it only /possible/ for an individual and a class to be the same. As long as I do not have any means in OWL-1.1-DL to also /enforce/ these two resources to be the same, this relaxation seems to be useless to me with respect to punning. (BTW: I am not certain whether this relaxation is a good idea, but this is another topic.) Punning, as I understand it from [1], is just a means for "overloading" names for resources from different parts of the OWL universe. Without punning, I would have to write axioms (1) and (3) above in a form like (1') <c1_class> a owl:Class . (3') <c1_indiv> a owl:Thing . In OWL-DL plus punning, the reasoner will have to do such URI renamings itself in a pre-processing step before it can start its reasoning tasks. This seems necessary, otherwise the reasoner might produce wrong entailments. >As I understand it, the reason those entailments >are not supported is that there is not enough theoretical work to >ensure that they can be implemented in a sound, complete, and >decidable manner. > >Proponents of punning would label this: > >"OWL DL, now with more, but not all, of OWL Full goodness" As I understand it, punning has nothing to do with OWL Full semantics, and then it would not provide any kind of "OWL Full goodness". I rather believe that the proponents of punning think that overloading URIs in OWL might be useful, or at least convenient, in certain cases. I could imagine that the argumentation might go this way: "In OWL-1.0-DL, one workaround to assign properties to a class C is to dedicate some individual iC, which receives the property as a proxy for C. So why not just give this proxy individual the same name as the class to make the intended connection between them both more explicit?" But I find it pretty confusing to overload URIs, to say the least. As my example above demonstrates, it is very easy to draw wrong conclusions about the semantics of an ontology when using URI overloading (confusing for a human, who constructs and/or reads ontologies; not confusing for a machine, of course). So I consider punning, while perhaps a "nice-to-have" feature, to be a very dangerous feature in practice, and I will prefer to follow the saver principle: "One URI, one resource". Anyway, if my argumentation above is right, then punning does not cover the "properties for classes" use case. Cheers, Michael [1] "Next Steps for OWL" http://owl-workshop.man.ac.uk/acceptedLong/submission_11.pdf [2] "OWL 1.1 Model-Theoretic Semantics", chapter 2 http://www.webont.org/owl/1.1/semantics.html#2
Received on Thursday, 1 November 2007 17:50:11 UTC