| 1 | === Base Templates !CardinalityMin, !CardinalityMax, !CardinalityMinMax === |

| 2 | |

| 3 | [[br]]!CardinalityMin, !CardinalityMax, and !CardinalityMinMax are templates for expressing the |

| 4 | [[br]]values of cardinalities. |

| 5 | [[br]] |

| 6 | [[br]]!CardinalityMinMax(a, b, c) means that a is a cardinality and b and c are integers, and that |

| 7 | [[br]]b is the minimal, c the maximal, constraint of a. !CardinalityMin and !CardinalityMax are |

| 8 | [[br]]similar, and apply to just the minimal, resp. the maximal constraint. |

| 9 | [[br]]!CardinalityMin |

| 10 | [[br]] |

| 11 | [[br]]Roles: |

| 12 | [[br]]1 hasCardinality Cardinality |

| 13 | [[br]]2 valMinimumCardinality INTEGER |

| 14 | [[br]] |

| 15 | [[br]]!CardinalityMax |

| 16 | [[br]] |

| 17 | [[br]]Roles: |

| 18 | [[br]]1 hasCardinality Cardinality |

| 19 | [[br]]2 valMaximumCardinality INTEGER |

| 20 | [[br]] |

| 21 | [[br]]!CardinalityMinMax |

| 22 | [[br]] |

| 23 | [[br]]Roles: |

| 24 | [[br]]1 hasCardinality Cardinality |

| 25 | [[br]]2 valMinimumCardinality INTEGER |

| 26 | [[br]]3 valMaximumCardinality INTEGER |

| 27 | |

| 28 | Axiom: |

| 29 | {{{ |

| 30 | CardinalityMin(x1, x2) <-> |

| 31 | Cardinality(x1) & |

| 32 | INTEGER(x2) & |

| 33 | hasMinimumCardinality(x1, x2) . |

| 34 | }}} |

| 35 | |

| 36 | Axiom: |

| 37 | {{{ |

| 38 | CardinalityMax(x1, x2) <-> |

| 39 | Cardinality(x1) & |

| 40 | INTEGER(x2) & |

| 41 | hasMaximumCardinality(x1, x2) . |

| 42 | }}} |

| 43 | |

| 44 | Axiom: |

| 45 | {{{ |

| 46 | CardinalityMinMax(x1, x2, x3) <-> |

| 47 | Cardinality(x1) & |

| 48 | INTEGER(x2) & |

| 49 | INTEGER(x3) & |

| 50 | CardinalityMin(x1, x2) & |

| 51 | CardinalityMax(x1, x3) . |

| 52 | }}} |

| 53 | |

| 54 | NOTE In ISO 15926, cardinalities are first-class objects. In ISO 15926-2, it is stated that an absence |

| 55 | of specified minimum or maximum values for a cardinality should be interpreted as a absence |

| 56 | 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. |

| 57 | 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). |