Search code examples
semantic-webowlontologyprotege

Owl universal quantification works together with cardinality restrictions


I am new to owl. I read an Universal Quantification example in this page http://dior.ics.muni.cz/~makub/owl/ .

If I replace "Person SubClassOf hasParent max 2 thing" by "Person SubClassOf hasParent max 2 Person" and run the reasoner, I think individual Ivan would fall into the class Czech too. But actually it's not. I test it in Protege 4.3 and run the built-in reasoner FaCT++.

What details did I miss?


Solution

  • The problem here that your new restriction is too permissive. Your new axiom actually say that Person can have at most 2 (parents that are Person). It doesn't prevent Person from having other parents, that are non-Person.

    The example will work again if you enforce all parents to be of a class Person, e.g by setting Range of hasParent to Person, or adding an axiom Person SubClassOf hasParent only Person