W3C home > Mailing lists > Public > public-owl-dev@w3.org > January to March 2007

Re: Owl 1.1 and queries

From: Ian Horrocks <horrocks@cs.man.ac.uk>
Date: Thu, 8 Mar 2007 14:20:33 +0000
Message-Id: <3287B5DB-2113-4AAF-BBA7-460293E8BF4C@cs.man.ac.uk>
Cc: Owl Dev <public-owl-dev@w3.org>
To: Matt Williams <mw@healthgambia.net>

On 6 Mar 2007, at 19:30, Matt Williams wrote:

> Dear All,
> I remember that there was a paper from Manchester about query  
> answering in DLs by using a "rolling-up" technique.
> I was just wondering if anyone knows whether this would work for  
> OWL 1.1? The reason I ask is that negated roles are now allowed in  
> the A-Box,

This is just syntactic sugar, and could already be expressed in OWL.  
E.g., stating \neg hates(John,Mary) is equivalent to stating (in OWL  
abstract syntax) that John is an instance of the concept "complementOf 
(restriction(hates value(Mary)))" (\neg(\exists hates . {Mary})).  
Note that this is not equivalent to allowing for negated roles in  
general - because in OWL 1.1 the negation is only applied to an  
assertion w.r.t. individuals (constants), and so is susceptible to  
the above reduction.

> but (if I remember correctly) the procedure involved taking an A- 
> Box query and transforming it into a new class with existential  
> quantification in the T-Box, and then using existing techniques to  
> infer class membership, so wouldn't you end up trying to make class  
> with a negated role in the T-Box definition?

Because negated Abox assertions are just syntactic sugar, they don't  
make any difference to this technique - queries can be rolled up in  
just the same cases that they could be before (e.g., when they are  
"tree shaped").

> E.g:
> People(x) & hasBrother(x,y) & OldMan(y) --> NewQueryClass \equiv  
> People \sqcap \exists hasBrother.OldMan
> but then:
> People(x) & hasBrother(x,y) & OldMan(y)  &  hates (x,y) --> ???

Even without the role negation, this kind of query is already  
problematical for rolling up because it isn't tree shaped (if you  
draw a graph of the query you will see that there is a cycle  
involving x and y). In case the query is tree shaped, the role  
negation might be problematical because rolling up might introduce a  
"real" negated role, i.e., one that could not be reduced using the  
above mentioned technique. Everything becomes easy again  
(theoretically at least) if x and y are distinguished variables  
(i.e., are returned in the query answer) because we can then simply  
check all possible tuples (of individuals named in the ontology) as  
substitutions, and so are back to dealing with constants.


> Apologies if this is obvious, but I was just curious....
> Thanks,
> Matt
Received on Thursday, 8 March 2007 14:20:51 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:58:14 UTC