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 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:04:37 UTC