On Mon, 2011-09-12 at 15:49 +0000, David Jordan wrote: 
> I want to express set difference in OWL, I was a bit surprised that this is 
> not directly supported.
> I’d be interested in hearing whether the following would work, and how 
> efficient it will be to compute.
> Assume you have sets A and B.
> I can define the union and intersection of A and B in OWL, we can call them 
> AUB and AIB, respectively.
> Then I am guessing that A – B would be defined as follows:
> A_B owl:intersectionOf (
>         A
>         [ a owl:Class ; owl:complementOf AIB ]
> ).
> 
> My big concern is the computing of the owl:complementOf AIB.
> Is the implementation going to take into account that the outer expression is 
> doing an intersection with A, so that it strictly takes the elements in AIB 
> and subtracts them from A?

In the case of Jena rules then irrelevant because we don't support
complementOf :)

For an mythical OWL full reasoner that attempted to aggressively
materialize inferences then the extension of the b-node would be part of
the closure. But in general you can't enumerate a complementOf anyway
unless there is some bounding expression (remember the Open World
assumption).

For a DL reasoner that it should treat the b-node simply as syntax and
will be attempting to prove membership of the (A intersect (¬B))
expression. 

Dave


Reply via email to