- From: Ian Horrocks <horrocks@cs.man.ac.uk>
- Date: Thu, 8 Mar 2007 14:20:33 +0000
- To: Matt Williams <mw@healthgambia.net>
- Cc: Owl Dev <public-owl-dev@w3.org>
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. Ian > > Apologies if this is obvious, but I was just curious.... > > Thanks, > > Matt > > >
Received on Thursday, 8 March 2007 14:20:51 UTC