Search Mailing List Archives
[protege-owl] Please help: complement of a class?
johann.petrak at chello.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
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