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

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

From: Pat Hayes <phayes@ihmc.us>
Date: Mon, 5 Nov 2007 17:23:32 -0600
Message-Id: <p06230906c355502ae79c@[10.100.0.14]>
To: Bijan Parsia <bparsia@cs.man.ac.uk>
Cc: Owl Dev <public-owl-dev@w3.org>

>On 5 Nov 2007, at 20:57, Michael Schneider wrote:
>
>[snip]
>>Ok, now we come to some core point: The use cases. When I wrote my original
>>mail, the only relevant usecase for "classes as instances" I could imagine
>>was to assign object properties to classes. But there are more, right? What
>>I am still missing is a document which lists and discusses some relevant use
>>cases for punning.
>
>People want some syntactic freedom. The bad use is to get 
>"meaningful" annotation properties (i.e., dc:date-modifed implies 
>dc:date). The reason I regard this as bad is two fold: 1) it 
>interprets classes into the same domain as the subject matter model 
>and I think annotations are better for being more separated from the 
>subject matter (subtle bugs because your classes end up being 
>instances of Person are annoying to contemplate) and 2) I'd like to 
>have more freedom in my logic of annotations.
>
>Otherwise, it's pretty harmless. I'd prefer to pun annotations in to 
>a disjoint domain.
>
>>Particularly, I am looking for use cases where the
>>missing sameAs-equivalentClass entailment does not hurt.
>
>It never hurts. We've had it in pellet for years with no problems 
>reported by any user :)

Well, incompleteness is often reasonably harmless. After all, the 
entire world of DLs is really about incomplete, but useful, 
first-order reasoners. I wonder however how many people would have 
been able to do their job more easily if the logic had had a genuine 
equality in it.

>>Honestly, I have
>>difficulties to imagine that this is really the case.
>
>Ad esse, ad posse est. Frankly, I've grown ever more strongly 
>against hilog semantics (= entailing iff) because it's really hard 
>to understand (what happens with a disjunctive equality?), and the 
>actual worthwhile examples are non-existent.

Well... not quite. They may be little known in the DL world, but 
several projects have used and relied upon having genuine equality 
(in OWL 1.1 terms, equal-individual implies equal-class) critically 
in Common Logic and IKL.

>Most people don't even know about the possibility. I explained it to 
>one owl full advocate and he said, "Oh, that's really a bug, isn't 
>it?"

Yes, you have repeated that anecdote several times. Apparently some 
people don't understand OWL-Full. Sigh. In fact, however, in a full 
logic the hilog, aka CL, semantics are extremely simple to 
understand, and the resulting logic extremely simple to use and to 
follow. An equation between two names (of any 'sort') means that 
anything - ANYTHING - said with one of them is logically equivalent 
to the same thing said with the other. That really is all that it 
amounts to. Duh. If you worry why equivalent-class (eg) doesn't imply 
equal-class, note that the hilog semantics distinguishes classes from 
class extensions, which is a real win, both semantically and 
computationally (and one that is lost with punning.)

One way to say this in punning terms is that the genuine equality in 
OWL-1.1 is the intersection of sameAs, equivalentClass and 
equivalentProperty; and that *this* should be a primitive, because 
this is the relationship with the most coherent logic. In a weak 
punning language like OWL 1.1, sameAs no longer means 'same as'. It 
amounts to equality on only part of the universe, or perhaps better 
only one facet of a multifaceted universe. In fact, OWL 1.1 simply 
doesn't have a genuine equality, which IMO makes it a very faulty 
language.

>I regard relying on that entailment (esp. for alignment) as a total 
>anti-pattern.

(= a b)  & (P a) entails (P b) is an anti-pattern?? This way madness lies.

>Much better would be, after a merge, do query for all equalities 
>involving individuals which pun classes, then review them manually 
>to see which you actually think should push equivalences.

What are the criteria for this decision? What does it mean for an 
equality to not 'push an equivalence'? Got any examples? Equality is 
supposed to mean that the two names denote one single thing, right? 
Interpreted as names of classes, why does this not mean being the 
same class?

>Punning allows you to do this easily.

It leads to confusion and puzzles about identity, seems to me. The 
fact that you have to invoke mysterious manual interventions to draw 
conclusions seems to be a symptom of that.

>Mashups require some human intervention. I see no reason why 
>ontology mashups wouldn't.

Having equality in the language is not a "mash-up".

>Though it is good to be able to merge them and do *something* 
>without getting a syntax error. That's what punning gives you.

But so do many other treatments. Of course one should be able to do 
this, but this isn't a vote for punning, its a vote against having 
anal DL-style syntax restrictions in place.

Pat

>>Nevertheless, the most
>>relevant point is to first have such a use case document. And also I want to
>>have a technical specification of punning, because I have the feeling that
>>there is still no common agreement on what punning provides and what not.
>
>See the semantics document from OWL 1.1. See Boris's paper:
> 
>	<http://web.comlab.ox.ac.uk/oucl/work/boris.motik/publications/motik07metamodeling-journal.pdf>
>
>wherein it's called "contextual semantics" or pi-semantics.
>
>There are multiple implementations. I don't know where you get your 
>feeling from, but it seems rather off to me.
>
>Cheers,
>Bijan.


-- 
---------------------------------------------------------------------
IHMC		(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32502			(850)291 0667    cell
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Monday, 5 November 2007 23:23:59 GMT

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