W3C home > Mailing lists > Public > www-webont-wg@w3.org > August 2002

Re: SEM/GUIDE: subclasses of classes of Properties? (5.3)

From: Dan Connolly <connolly@w3.org>
Date: 09 Aug 2002 09:18:44 -0400
To: Christopher Welty <welty@us.ibm.com>
Cc: www-webont-wg@w3.org
Message-Id: <1028899157.432.8.camel@jammer>

On Thu, 2002-08-08 at 11:46, Christopher Welty wrote:
> Dan, et al,
> 
> You said from this:
> 
>   my:KeyProperty rdfs:subClassOf owl:FunctionalProperty.
>   db:key rdfs:range db:KeyProperty.
>   fred:Order db:key fred:customer.
> 
> It should follow that:
> 
>   FunctionalProperty(fred:customer)
> 
> This example is so confusing, you couldn't have picked a better way to 
> show that there are huge misconceptions going on here.

Yes, my use of 'key' is misleading. Change it to db:knorfel and
the logic of the example remains the same (though the real-world
motivation goes down quite a bit.)

>  We really need a 
> semantics.

Well, the RDFCore WG has a semantics for RDFS, and the above
follows from it.

> There are a number of problems with this example:
> - You are using db:key but you are not getting a database key

right; maybe I meant foreignKey or something; I'll have
to think about the example some more.

> - Clearly an order shouldn't have customer as a database key
> - You have exposed *exactly* the kind of incompleteness that making the 
> language too expressive introduces.
> 
> 
> The real source of the confusion is the symbols you have chosen and what 
> they mean outside of this example.  key, order, and customer all have 
> real-world meanings, and here you are giving them a semantics that is not 
> consistent with that real-world meaning.

Yes, I chose db:key poorly.

> Even if there was a reasoner which could conclude this (which there never 
> will be),

Umm... there are at least two of them today: Euler and cwm.
I think there are a bunch of RDFS tools that will come
to the above conclusion too.


> if your goal from this example is simply to conclude 
> FunctionalProperty(fred:customer), all you are saying is that an order has 
> only one customer.  You are NOT saying that it is a "key" in the database 
> sense.

Right.

> As I have said in the description of the functionalProperty feature, 
> functionalProperty is weaker (less constrained) than the notion of a 
> database key.  In the database sense of "key", it is a 1:1 relationship 
> which, *for a specific table* uniquely identifies a row in the table, 
> however the "same" "property" could be used in another table and not be a 
> key. Since  owl:functionalProperty is a global restriction, concluding 
> FunctionalProperty(fred:customer) would mean that anywhwere fred:customer 
> is used, it is functional, even if it is used in instances of other 
> classes than fred:Order.
> 
> What you want is some sort of local restriction on fred:Order for the 
> fred:customer relation, and a restriction on the inverse of fred:customer 
> that it can have only one fred:Order.

No, I don't want to use restrictions on fred:Order; I want to use
a different lavel of abstraction to describe the only-one aspect
of fred:customer. I want FunctionalProperty to be usable like
any other RDFS Class.


-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Friday, 9 August 2002 09:19:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:57:51 GMT