- From: Jim Hendler <hendler@cs.umd.edu>
- Date: Wed, 30 Oct 2002 08:56:26 -0500
- To: Dan Connolly <connolly@w3.org>, Ian Horrocks <horrocks@cs.man.ac.uk>
- Cc: Deborah McGuinness <dlm@ksl.stanford.edu>, webont <www-webont-wg@w3.org>
At 7:56 PM -0600 10/29/02, Dan Connolly wrote:
>On Tue, 2002-10-29 at 18:34, Ian Horrocks wrote:
>>
>> The problem with adding hasValue to OWL Lite is that it wouldn't be
>> Lite any more. The lack of hasValue in Lite is, from an implementation
>> point of view, the main thing that differentiates it from fast -
>> hasValue is very tough to deal with, and is responsible for pushing
>> the worst case complexity of reasoning in fast OWL from ExpTime to
>> NExpTime.
>
>Could you unpack that a bit?
>
>Could you give an example, maybe?
>
>{snip]
A typical use of #hasvalue that I see often in class is something like
:Restaurant a owl:class;
... # the subclassOf/restriction stuff
:foodtype :Anyfoodtype.
:ChineseFood a :Anyfoodtype.
:ChineseRestaurant a :Restaurant;
:foodtype ...
owl:hasValue :ChineseFood.
This would mean
ChineseRestaurant(X) <-> Restaurant(X) and foodtype(X,ChineseFood)
(assuming no other properties anywhere)
=======
By the way, note that in the frame-based world, the tendency would be
to use classes as instances i.e.
:ChineseRestaurant a owl:class;
:foodtype :ChineseFood.
but note that this means:
ChineseRestuarant(X) -> Restaurant(X) and foodtype(X,:ChineseFood)
so these are not identical although they are often used the same way
in many applications (where the "only if" inference is not needed).
-JH
--
Professor James Hendler hendler@cs.umd.edu
Director, Semantic Web and Agent Technologies 301-405-2696
Maryland Information and Network Dynamics Lab. 301-405-6707 (Fax)
Univ of Maryland, College Park, MD 20742 240-731-3822 (Cell)
http://www.cs.umd.edu/users/hendler
Received on Wednesday, 30 October 2002 08:56:31 UTC