There are two kinds of cardinality restrictions: qualified and unqualified. This page will explain both kinds, but we must consider the following set-up model.
To set up the case for qualified and/or unqualified cardinality restrictions
In order to follow the rest of the explanation, please set your OWL export syntax to OWL Functional as shown in the following figure. |
The following code block shows a excerpt of the OWL ontology that marks the distinction between qualified and unqualified cardinality restrictions.
# Class: :CatOwner (Cat Owner) AnnotationAssertion(rdfs:label :CatOwner "Cat Owner"^^xsd:string) SubClassOf(:CatOwner ObjectMinCardinality(2 :hasPet :Cat)) SubClassOf(:CatOwner ObjectMaxCardinality(3 :hasPet :Cat)) # Class: :Person (:Person) SubClassOf(:Person ObjectMinCardinality(2 :hasPet)) |
From the OWL ontology excerpt above, line 6 shows an unqualified cardinality restriction. This is because the property's type emanating from Person, Pet with cardinality of 2..* does not specify the Pet, such as Cat, that the Person could have.
From the OWL ontology excerpt above, line 4 shows a qualified cardinality restriction. This is because the property's type emanating from Cat Owner, Cat with cardinality 2..3 specifies the pet, Cat, and the restriction actually says
:Cat. In other words, the restriction in line 4 is more specific than the restriction in line 6; that's why the cardinality restriction in line 4 is qualified.