- 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