With Cardinality Restriction one has the Ability to restrict Properties according the Number they should apply. The owl:cardinality restricts to an exact number. On the other hand one can set upper and lower bounds with the help of owl:minCardinality and owl:maxCardinality
For example on can define a Stringquartett by stating that a Stringquartett always has exactly four Members. This can be defined in OWL by stating a Stringquartett is an Class which is a subclass of a Restriction where one has owl:Restriction on the Property :hasMembers and one states that the exact members are number that one restricts as four.
This has the Prerequisite that has Members has Datatype Property that has as Domain anything or a Thing and one states the the Range must be an Integer.
owl:cardinality restricts to an exact number (for OWL Lite only 1/0)
owl:minCardinality, owl:maxCardinality
restricts to upper/lower bounds
Stringquartett ⊑ (=4)hasMembers
:Stringquartett a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :hasMembers ; owl:cardinality 4 ] .
:hasMembers a owl:DatatypeProperty ; rdfs:domain :Thing ; rdfs:range xsd:integer .