W3C home > Mailing lists > Public > public-owl-dev@w3.org > October to December 2007

[OWLWG-COMMENT] Punning and the "properties for classes" use case

From: Michael Schneider <schneid@fzi.de>
Date: Thu, 1 Nov 2007 16:38:20 +0100
Message-ID: <0EF30CAA69519C4CB91D01481AEA06A04A8D3D@judith.fzi.de>
To: <public-owl-dev@w3.org>
Cc: <jjc@hpl.hp.com>, <alanruttenberg@gmail.com>

[Public comment to public-owl-wg discussion; CC'ing to involved WG members] 

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


--
Dipl.-Inform. Michael Schneider
FZI Forschungszentrum Informatik Karlsruhe
Abtl. Information Process Engineering (IPE)
Tel  : +49-721-9654-726
Fax  : +49-721-9654-727
Email: Michael.Schneider@fzi.de
Web  : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555

FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts
Az: 14-0563.1 Regierungspräsidium Karlsruhe
Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
Received on Thursday, 1 November 2007 15:38:36 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:55 GMT