Search Mailing List Archives
[protege-owl] Cardinality restrictions in OWL
matthew.horridge at cs.man.ac.uk
Tue Aug 4 03:16:30 PDT 2009
In addition to what ED has said....
> I'm trying to define an ontology in Protege 4.0/OWL which essentially
> says that all Containers must contain at least two Nodes. I have
> defined the following ontology:
> SubClassOf(Container ObjectMinCardinality(2 contains Node))
> ObjectPropertyDomain(contains Container)
> ObjectPropertyRange(contains Node)
> If I only create the one Container individual and no Node individuals,
> and ask the FaCT++ reasoner to execute over this ontology, no error
> occurs, even though I have defined a Container individual which does
> not contain any Nodes.
You haven't explicitly said that there are no nodes. If you did this
then your ontology would be inconsistent. As it is, since the
individual is an instance of Container, we know it has two nodes, but
we just don't know what they are.
> Approaching from another angle, if I change container to restrict the
> maximum number of contained nodes to 2, and create three individual
> nodes contained within it:
> SubClassOf(Container ObjectMaxCardinality(2 contains Node))
> ObjectPropertyAssertion(contains SampleContainer Node1)
> ObjectPropertyAssertion(contains SampleContainer Node2)
> ObjectPropertyAssertion(contains SampleContainer Node3)
> Reasoning with FaCT++ also produces no error, even though (I think)
> this instance also clearly invalidates the OWL model I defined.
Everything is fine here too.
First, if you haven't said that Node1 - Node3 are nodes, then they
could be Nodes or not Nodes. Second, if you have stated that Node1 -
Node3 are nodes, but haven't stated that they are not equal (using a
DifferentIndividuals axiom) then any two, or all, of these node could
be interpreted as the same object, so the ontology will not be
More information about the protege-owl