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

Re: Issue: Add hasValue to OWL Lite

From: Jos De_Roo <jos.deroo.jd@belgium.agfa.com>
Date: Wed, 30 Oct 2002 16:34:02 +0100
To: "Dan Connolly <connolly" <connolly@w3.org>
Cc: Deborah McGuinness <dlm@ksl.stanford.edu>, Ian Horrocks <horrocks@cs.man.ac.uk>, webont <www-webont-wg@w3.org>
Message-ID: <OF5AED55F0.7273852F-ONC1256C62.00551EB9-C1256C62.00558853@agfa.be>


> > 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?
>
> The rules for hasValue that occur to me are:
>
>  holds(rdf:type, X, C) :-
>          holds(P, X, Y),
>          holds(owl:onProperty, C, P),
>          holds(owl:hasValue, C, Y).
>
>
> now that's only a partial specification of hasValue;
> it allows you to come to hasValue conclusions, but
> not to exploit hasValue claims in other ways.
>
> I'm curious what people actually expect to do with hasValue,
> and what makes hasValue difficult to deal with,
> and whether they overlap.
>
> If what people want to do is to say
>
>          People with birthplace America are Americans
>          Fred birthplace America
>          =>
>          Fred is an American
>
> then that looks only horn-clause-hard.
>
> But if they want to do something else, I can imagine
> it would get harder.

I can see that yours is straightforward

IF                     | THEN
----------------------------------------
?r owl:onProperty ?p.  |
?r owl:hasValue ?y.    |
?x ?p ?y.              | ?x rdf:type ?r.


but that

IF                     | THEN
----------------------------------------
?r owl:onProperty ?p.  |
?r owl:hasValue ?y.    |
?x rdf:type ?r.        | ?x ?p ?y.

is not so straightforward to do with a
"direct encoding" for all the ?p cases

(if that would be wanted, then I would
solve that in our prepare() method i.e.
to find all such ?p by asking the query
?r owl:onProperty ?p; owl:hasValue ?y
and then do direct encoding of the rule)

-- ,
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/
Received on Wednesday, 30 October 2002 10:34:40 GMT

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