Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Please help: complement of a class?

Johann Petrak johann.petrak at
Mon Jan 7 23:24:32 PST 2008

On 2008-01-08 01:55, Thomas Russ wrote:
> Short answer:  Open world reasoning will make this nearly impossible.
hmm, I still have some hope because of the word "nearly" :)

> Long answer is inline.
Thank you for your detailed explanation!

> You can do that, but there has to be a way for the OWL reasoner to  
> prove that those individuals CANNOT be members of ASub1, in order to  
> know that they belong to ASub2.  The fundamental problem lies is  
> providing enough information to allow such a proof.

Yes - it seems I am still puzzled about what information is necessary
to make that proof possible.
I thought that when I state as a necessary condition for A
   hasRange only B
that means that in order to be a valid member of A, something must
have a hasRange to B if it has a hasRange to B (or doesnt have
a hasRange at all).

> The key phrase 's "know to not have".  With open world, just because  
> the system doesn't know of a filler does NOT mean that the system  
> knows that there isn't a filler.  The upshot of open world reasoning  
> is that any reasoning that requires AllValuesFrom ("only") or maximum  
> cardinality restrictions, including the special case of zero fillers,  
> are hard to prove.  OWL does not support "negation by failure".  The  
> main guideline for open world reasoning is:
>     Absence of proof is not proof of absence.
> So, what you have is an individual with no known fillers of property  
> hasRange.  But there is nothing to allow us to conclude that there are  
> no unknown or as-yet unknown fillers of property hasRange.
> If you want to have the inference succeed, then you must be explicit  
> about the lack of filler.
> One way to do that would be to make this individual be an instance of  
> the restriction class (max 0 hasRange).  That explicitly tells the  
> reasoner that there are NO fillers of the hasRange relation, and  
> therefore, the individual cannot belong to ASub1.  The additional  
> restrictions will therefore allow inference about membership in ASub2.

OK, but that would mean that I have to make an explicit assertion about
every member in A that does not have a hasRange filled with B
and that essentially defeats the purpose, because I wanted to
*derive* that fact. What I really want to do is make a general assertion
about all members in A that says that they must have a haveRange B
or no haveRange B and *then* conclude from the absence of haveRange B
that the contrary must be the case.

I thought that this was called a "closure axiom" and I wondered
what I got wrong about providing it. Or what kind of closure
axiom one could provide for A instead.

Is it possible to solve this by providing a closure axiom on
hasRange B such that I can determine memebers of ASub2 without
explicitly asserting the absence of hasRange B for each member
of A?

In other words, can I make a necessary condition for A so that unless
a member has hasRange B asserted, it must have max 0 hasRange.

And if not -- is there a pattern to make this kind of problem
easier to deal with? I assume it is not a rare requirement to
derive the membership for an individual based on the absence of
some property. Obviously, when I create an instance and fill
the form for hasRange, I cannot somehow fill it in a way that
says "known to be empty", but that is what I would like to
How do people usually deal with this?


More information about the protege-owl mailing list