Base Templates CardinalityMin, CardinalityMax, CardinalityMinMax
CardinalityMin, CardinalityMax, and CardinalityMinMax are templates for expressing the
values of cardinalities.
CardinalityMinMax(a, b, c) means that a is a cardinality and b and c are integers, and that
b is the minimal, c the maximal, constraint of a. CardinalityMin and CardinalityMax are
similar, and apply to just the minimal, resp. the maximal constraint.
CardinalityMin
Roles:
1 hasCardinality Cardinality
2 valMinimumCardinality INTEGER
CardinalityMax
Roles:
1 hasCardinality Cardinality
2 valMaximumCardinality INTEGER
CardinalityMinMax
Roles:
1 hasCardinality Cardinality
2 valMinimumCardinality INTEGER
3 valMaximumCardinality INTEGER
Axiom:
CardinalityMin(x1, x2) <-> Cardinality(x1) & INTEGER(x2) & hasMinimumCardinality(x1, x2) .
Axiom:
CardinalityMax(x1, x2) <-> Cardinality(x1) & INTEGER(x2) & hasMaximumCardinality(x1, x2) .
Axiom:
CardinalityMinMax(x1, x2, x3) <-> Cardinality(x1) & INTEGER(x2) & INTEGER(x3) & CardinalityMin(x1, x2) & CardinalityMax(x1, x3) .
NOTE In ISO 15926, cardinalities are first-class objects. In ISO 15926-2, it is stated that an absence of specified minimum or maximum values for a cardinality should be interpreted as a absence of constraints (clause 5.2.13.1). The nature of the representation of ISO 15926-2 in first-order logic, with an open world assumption, mandates that both lower and upper bounds be given explicitly. Where no minimal constraint applies, the value 0 should be assigned. Where no maximum constraint applies, the reference item * Cardinality should be assigned (see 8.2.1).