## Examples | The following are abstracts: value ranges, value enumerations and minimum values, and so on (8 items in total). |

## Other | No information. |

## Typology | An antisymmetry is a relationship constraint. |

## Examples | An asymmetry is an antisymmetry. |

## Distinctions | The following are disjoint: antisymmetries, local reflexivities, symmetries, and transitivities. |

## Typology | An associative entity type is an object type. |

## Typology | An asymmetry is both an irreflexivity, and an antisymmetry. |

## Typology | An attribute is an attributive property. |

## Description | An attribute is declared as at most one single identification. |

## Others | disjointUnion(class('#AttributiveProperty'), class('#Attribute'), class('#CompositeAttribute'), class('#DimensionalAttribute')). |

## Examples | Multivalued attributes, and mapped to are attributes. |

## Definition | An attribute value constraint is defined as a constraining values a r. |

## Typology | |

## Description | An attribute value constraint is avc4 exactly one constraining values a r. If X is avc4 Y then X is an attribute value constraint. |

## Others | disjointUnion(class('#ValueConstraint'), class('#AttributeValueConstraint'), class('#RoleValueConstraint'), class('#ValueTypeConstraint')). |

## Distinctions | No attribute value constraint is a value type constraint, or a role value constraint. |

## Typology | An attributive property is a relationship. |

## Description | If any of the following relationships hold between X and Y then X is an attributive property: "is range", "is ap3" and "is ap1". An attributive property is range exactly one data type. An attributive property is domain something that is an object type, or is a relationship. |

## Others | disjointUnion(class('#AttributiveProperty'), class('#Attribute'), class('#CompositeAttribute'), class('#DimensionalAttribute')). |

## Examples | The following are attributive properties: dimensional attributes, composite attributes, and attributes. |

## Distinctions | The following are disjoint: attributive properties, qualified relationships, and subsumptions. The following are disjoint: attributive properties, part wholes, and subsumptions. |

## Typology | An attributive property cardinality is a cardinality constraint. |

## Others | disjointUnion(class('#CardinalityConstraint'), class('#AttributivePropertyCardinality'), class('#CompoundCardinalityConstraint'), class('#ObjectTypeCardinality')). |

## Examples | Card r rs, and card o rs are attributive property cardinalities. |

## Distinctions | No attributive property cardinality is an object type cardinality. |

## Typology | A card o r is both a reified n ary, and an attributive property cardinality. |

## Description | subClassOf(class('#CardOR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#ot2')), class('#ObjectType')), objectSomeValuesFrom(objectInverseOf(objectProperty('#cc1')), class('#CardinalityConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#ap3')), class('#AttributiveProperty'))]). If any of the following relationships hold between X and Y then Y is a card o r: "is ot2", "is cc1" and "is ap3". |

## Typology | A card r r is both a reified n ary, and an attributive property cardinality. |

## Description | subClassOf(class('#CardRR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#rel3')), class('#Relationship')), objectSomeValuesFrom(objectInverseOf(objectProperty('#cc2')), class('#CardinalityConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#ap1')), class('#AttributiveProperty'))]). If any of the following relationships hold between X and Y then Y is a card r r: "is rel3", "is cc2" and "is ap1". |

## Typology | A cardinality constraint is a constraint. |

## Description | If any of the following relationships hold between X and Y then X is a cardinality constraint: "is of3", "is cc2" and "is cc1". A cardinality constraint has as part something that is a maximum cardinality, or is a minimum cardinality. |

## Others | disjointUnion(class('#CardinalityConstraint'), class('#AttributivePropertyCardinality'), class('#CompoundCardinalityConstraint'), class('#ObjectTypeCardinality')). |

## Examples | The following are cardinality constraints: object type cardinalities, compound cardinality constraints, and attributive property cardinalities. |

## Typology | A comparison is an abstract. |

## Description | If X is comparison operator Y then Y is a comparison. |

## Others | disjointUnion(class('#Comparison'), class('#EqualOrGreaterThan'), class('#EqualOrLesserThan'), class('#EqualTo'), class('#GreaterThan'), class('#LesserThan'), class('#NotEqual')). |

## Examples | The following are comparisons: not equals, lesser thans and greater thans, and so on (6 items in total). |

## Typology | A completeness constraint is a constraint. |

## Description | A completeness constraint is participant at least two object types. A completeness constraint is declared on exactly one subsumption. |

## Typology | A composite aggregate is a shared aggregate. |

## Description | subClassOf(class('#CompositeAggregate'), objectMaxCardinality('1', objectInverseOf(objectProperty('#partPlayer')), class('#EntityType'))). A composite aggregate is part player exactly one object type, and is whole player exactly one object type. |

## Typology | A composite attribute is an attributive property. |

## Description | subClassOf(class('#CompositeAttribute'), objectMinCardinality('2', objectInverseOf(objectProperty('#wholePlayer')), class('#Part'))). |

## Others | disjointUnion(class('#AttributiveProperty'), class('#Attribute'), class('#CompositeAttribute'), class('#DimensionalAttribute')). |

## Definition | A compound cardinality constraint is defined as a compound cardinality r. |

## Typology | A compound cardinality constraint is a cardinality constraint. |

## Description | A compound cardinality constraint is efc4 a compound cardinality r. If X is efc4 Y then X is a compound cardinality constraint. |

## Others | disjointUnion(class('#CardinalityConstraint'), class('#AttributivePropertyCardinality'), class('#CompoundCardinalityConstraint'), class('#ObjectTypeCardinality')). |

## Typology | A compound cardinality r is a reified n ary. |

## Description | If any of the following relationships hold between X and Y then Y is a compound cardinality r: "is role1", "is rel2" and "is efc4". subClassOf(class('#CompoundCardinalityR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#rel2')), class('#Relationship')), objectSomeValuesFrom(objectInverseOf(objectProperty('#efc4')), class('#CompoundCardinalityConstraint'))]). subClassOf(class('#CompoundCardinalityR'), objectMinCardinality('2', objectInverseOf(objectProperty('#role1')), class('#Role'))). |

## Others | A compound cardinality constraint is defined as a compound cardinality r. |

## Typology | A constraining values a r is a reified n ary. |

## Description | If any of the following relationships hold between X and Y then Y is a constraining values a r: "is vr1", "is ve2", "is avc4" and "is att3". subClassOf(class('#ConstrainingValuesAR'), objectSomeValuesFrom(objectInverseOf(objectProperty('#vr1')), class('#ValueRange'))). subClassOf(class('#ConstrainingValuesAR'), objectIntersectionOf(objectUnionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#avc4')), class('#AttributeValueConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#ve2')), class('#ValueEnumeration'))), objectComplementOf(objectIntersectionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#avc4')), class('#AttributeValueConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#ve2')), class('#ValueEnumeration')))))). |

## Others | An attribute value constraint is defined as a constraining values a r. |

## Definition | A constraining values r r is defined as a role value constraint. |

## Typology | A constraining values r r is a reified n ary. |

## Description | If any of the following relationships hold between X and Y then Y is a constraining values r r: "is vr2", "is ve3", "is rvc4" and "is rol1". subClassOf(class('#ConstrainingValuesRR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#rvc4')), class('#RoleValueConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#rol1')), class('#Role'))]). subClassOf(class('#ConstrainingValuesRR'), objectIntersectionOf(objectUnionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#ve3')), class('#ValueEnumeration')), objectSomeValuesFrom(objectInverseOf(objectProperty('#vr2')), class('#ValueRange'))), objectComplementOf(objectIntersectionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#ve3')), class('#ValueEnumeration')), objectSomeValuesFrom(objectInverseOf(objectProperty('#vr2')), class('#ValueRange')))))). |

## Definition | A constraining values v r is defined as a value type constraint. |

## Typology | A constraining values v r is a reified n ary. |

## Description | If any of the following relationships hold between X and Y then Y is a constraining values v r: "is vtc4", "is vr3", "is vp2" and "is ve1". subClassOf(class('#ConstrainingValuesVR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#vtc4')), class('#ValueTypeConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#vp2')), class('#ValueProperty'))]). subClassOf(class('#ConstrainingValuesVR'), objectIntersectionOf(objectUnionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#ve1')), class('#ValueEnumeration')), objectSomeValuesFrom(objectInverseOf(objectProperty('#vr3')), class('#ValueRange'))), objectComplementOf(objectIntersectionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#ve1')), class('#ValueEnumeration')), objectSomeValuesFrom(objectInverseOf(objectProperty('#vr3')), class('#ValueRange')))))). |

## Typology | A constraint is an entity. |

## Others | disjointUnion(class('#Entity'), class('#Constraint'), class('#EntityType'), class('#Relationship'), class('#Role')). |

## Examples | The following are constraints: value constraints, value comparison constraints and uniqueness constraints, and so on (12 items in total). |

## Typology | The property "contains" is a sub-property of "has as part". |

## Typology | A data type is an entity type. |

## Description | If any of the following relationships hold between X and Y then Y is a data type: "is range" and "has as type". If any of the following relationships hold between X and Y then X is a data type: "is dt2" and "is dt1". |

## Others | disjointUnion(class('#EntityType'), class('#DataType'), class('#ObjectType'), class('#Qualifier'), class('#ValueProperty')). |

## Typology | |

## Description | If any of the following relationships hold between X and Y then X is a dimension: "is dim2" and "is dim1". |

## Definition | A dimensional attribute is defined as a dimensional attribution r. |

## Typology | |

## Others |

## Typology | |

## Description | If any of the following relationships hold between X and Y then Y is a dimensional attribution r: "is rel4", "is ot3", "is dt2" and "is dim1". subClassOf(class('#DimensionalAttributionR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#dt2')), class('#DataType')), objectSomeValuesFrom(objectInverseOf(objectProperty('#dim1')), class('#Dimension'))]). subClassOf(class('#DimensionalAttributionR'), objectUnionOf(objectSomeValuesFrom(objectInverseOf(objectProperty('#ot3')), class('#ObjectType')), objectSomeValuesFrom(objectInverseOf(objectProperty('#rel4')), class('#Relationship')))). |

## Others | A dimensional attribute is defined as a dimensional attribution r. |

## Definition | A dimensional value type is defined as a dimensional value typing r. |

## Typology | A dimensional value type is a value property. |

## Description | A dimensional value type is dvt3 exactly one dimensional value typing r. If X is dvt3 Y then X is a dimensional value type. |

## Others | disjointUnion(class('#ValueProperty'), class('#DimensionalValueType'), class('#ValueType')). |

## Typology | |

## Description | subClassOf(class('#DimensionalValueTypingR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#dvt3')), class('#DimensionalValueType')), objectSomeValuesFrom(objectInverseOf(objectProperty('#dt1')), class('#DataType')), objectSomeValuesFrom(objectInverseOf(objectProperty('#dim2')), class('#Dimension'))]). If any of the following relationships hold between X and Y then Y is a dimensional value typing r: "is dvt3", "is dt1" and "is dim2". |

## Others | A dimensional value type is defined as a dimensional value typing r. |

## Typology | |

## Description | A disjoint object types is participant at least two object types. A disjoint object types is declared on exactly one subsumption. |

## Others | disjointUnion(class('#DisjointnessConstraint'), class('#DisjointObjectTypes'), class('#DisjointRelationships'), class('#DisjointRoles')). |

## Distinctions | The following are disjoint: disjoint object types, disjoint relationships, and disjoint roles. |

## Typology | |

## Description | A disjoint relationships is declared on at least two relationships. |

## Others | disjointUnion(class('#DisjointnessConstraint'), class('#DisjointObjectTypes'), class('#DisjointRelationships'), class('#DisjointRoles')). |

## Distinctions | The following are disjoint: disjoint object types, disjoint relationships, and disjoint roles. |

## Typology | |

## Description | A disjoint roles is declared on at least two roles. |

## Others | disjointUnion(class('#DisjointnessConstraint'), class('#DisjointObjectTypes'), class('#DisjointRelationships'), class('#DisjointRoles')). |

## Examples | |

## Distinctions | The following are disjoint: disjoint object types, disjoint relationships, and disjoint roles. |

## Typology | A disjointness constraint is a constraint. |

## Others | |

## Examples | The following are disjointness constraints: disjoint roles, disjoint relationships, and disjoint object types. |

## Typology | |

## Description | A disjunctive mandatory is declared on at least two roles. |

## Examples | An inclusive mandatory is a disjunctive mandatory. |

## Description | If any of the following relationships hold between X and Y then Y is an entity: "plays super", "plays sub" and "is participant". If X is participant Y then X is an entity. |

## Others | disjointUnion(class('#Entity'), class('#Constraint'), class('#EntityType'), class('#Relationship'), class('#Role')). |

## Examples | The following are entities: roles, relationships and entity types, and so on (4 items in total). |

## Typology | An entity type is an entity. |

## Description | subClassOf(class('#EntityType'), objectMaxCardinality('1', objectInverseOf(objectProperty('#wholePlayer')), class('#CompositeAggregate'))). If X is plays1 Y then X is an entity type. |

## Others | disjointUnion(class('#EntityType'), class('#DataType'), class('#ObjectType'), class('#Qualifier'), class('#ValueProperty')). disjointUnion(class('#Entity'), class('#Constraint'), class('#EntityType'), class('#Relationship'), class('#Role')). |

## Examples | The following are entity types: value properties, qualifiers and object types, and so on (4 items in total). |

## Distinctions | The following are disjoint: entity types, relationships, and roles. |

## Typology | An equal or greater than is a comparison. |

## Others | disjointUnion(class('#Comparison'), class('#EqualOrGreaterThan'), class('#EqualOrLesserThan'), class('#EqualTo'), class('#GreaterThan'), class('#LesserThan'), class('#NotEqual')). |

## Typology | An equal or lesser than is a comparison. |

## Others | disjointUnion(class('#Comparison'), class('#EqualOrGreaterThan'), class('#EqualOrLesserThan'), class('#EqualTo'), class('#GreaterThan'), class('#LesserThan'), class('#NotEqual')). |

## Typology | An equal to is a comparison. |

## Others |

## Typology | An equality constraint is a constraint. |

## Examples | Role equalities, and relationship equalities are equality constraints. |

## Definition | An ext unique r is defined as an external uniqueness. |

## Typology | An ext unique r is a reified n ary. |

## Description | subClassOf(class('#ExtUniqueR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#role2')), class('#Role')), objectSomeValuesFrom(objectInverseOf(objectProperty('#rel1')), class('#Relationship')), objectSomeValuesFrom(objectInverseOf(objectProperty('#eu3')), class('#ExternalUniqueness'))]). If any of the following relationships hold between X and Y then Y is an ext unique r: "is role2", "is rel1" and "is eu3". |

## Typology | |

## Description | |

## Others | disjointUnion(class('#IdentificationConstraint'), class('#ExternalIdentification'), class('#InternalIdentification')). |

## Examples | Weak identifications, and qualified identifications are external identifications. |

## Distinctions |

## Typology | An external uniqueness is an uniqueness constraint. |

## Description | An external uniqueness is eu3 exactly one ext unique r. If X is eu3 Y then X is an external uniqueness. |

## Others | disjointUnion(class('#UniquenessConstraint'), class('#ExternalUniqueness'), class('#InternalUniqueness')). An ext unique r is defined as an external uniqueness. |

## Distinctions | No external uniqueness is an internal uniqueness. |

## Typology | A global reflexivity is a local reflexivity. |

## Typology | A greater than is a comparison. |

## Others |

## Description | If X has as c value Y then Y is an integer. |

## Others | If X has as c value Y then X is a maximum cardinality, or is a minimum cardinality. |

## Description | The property "contains" is a sub-property of "has as part". |

## Description | If X has as strong Y then Y is an object type. If X has as strong Y then X is a weak object type. |

## Description | If X has as type Y then Y is a data type. |

## Others | If X has as type Y then X is a value comparison constraint, or is a value range. |

## Description | If X has as value Y then Y is a literal. |

## Others | If X has as value Y then X is a maximum value, or is a minimum value. |

## Typology | An identification constraint is a constraint. |

## Description | An identification constraint identifies exactly one object type. An identification constraint is not something that is declared on an attributive property, and is declared on a value property, and is declared on something that is an attributive property, or is a value property. |

## Others | disjointUnion(class('#IdentificationConstraint'), class('#ExternalIdentification'), class('#InternalIdentification')). |

## Examples | Internal identifications, and external identifications are identification constraints. |

## Other | No information. |

## Typology | An inclusive mandatory is a disjunctive mandatory. |

## Typology | |

## Others | disjointUnion(class('#IdentificationConstraint'), class('#ExternalIdentification'), class('#InternalIdentification')). |

## Examples | |

## Distinctions |

## Typology | An internal uniqueness is an uniqueness constraint. |

## Description | |

## Others | disjointUnion(class('#UniquenessConstraint'), class('#ExternalUniqueness'), class('#InternalUniqueness')). |

## Distinctions | No external uniqueness is an internal uniqueness. |

## Typology | An intransitivity is an irreflexivity. |

## Examples | A strongly intransitive is an intransitivity. |

## Typology | An irreflexivity is a relationship constraint. |

## Examples | Intransitivities, and asymmetries are irreflexivities. |

## Distinctions | The following are disjoint: irreflexivities, local reflexivities, symmetries, and transitivities. |

## Typology | The property "is ap1" is a sub-property of "is nary property". |

## Description | If X is ap1 Y then Y is a card r r. If X is ap1 Y then X is an attributive property. |

## Typology | The property "is ap3" is a sub-property of "is nary property". |

## Description | If X is ap3 Y then Y is a card o r. If X is ap3 Y then X is an attributive property. |

## Typology | The property "is att3" is a sub-property of "is nary property". |

## Description | If X is att3 Y then Y is a constraining values a r. |

## Typology | The property "is avc4" is a sub-property of "is nary property". |

## Description | If X is avc4 Y then Y is a constraining values a r. If X is avc4 Y then X is an attribute value constraint. |

## Typology | The property "is cc1" is a sub-property of "is nary property". |

## Description | If X is cc1 Y then Y is a card o r. If X is cc1 Y then X is a cardinality constraint. The object property "is cc1" is functional. |

## Typology | The property "is cc2" is a sub-property of "is nary property". |

## Description | If X is cc2 Y then Y is a card r r. If X is cc2 Y then X is a cardinality constraint. The object property "is cc2" is functional. |

## Description | If X is comparison operator Y then Y is a comparison. If X is comparison operator Y then X is a value comparison constraint. |

## Other | No information. |

## Others | If X is declared on Y then Y is an attributive property, is a completeness constraint, is a disjoint object types, is a disjoint relationships, is a disjoint roles, is an entity type, is an object type, is a qualified relationship, is a relationship, is a role, or is a value property. |

## Typology | The property "is dim1" is a sub-property of "is nary property". |

## Description | If X is dim1 Y then Y is a dimensional attribution r. |

## Typology | The property "is dim2" is a sub-property of "is nary property". |

## Description | If X is dim2 Y then Y is a dimensional value typing r. |

## Others | If X is domain Y then Y is an object type, is a relationship, or is a value type. If X is domain Y then X is an attributive property, or is a value property. |

## Typology | The property "is dt1" is a sub-property of "is nary property". |

## Description | If X is dt1 Y then Y is a dimensional value typing r. |

## Typology | The property "is dt2" is a sub-property of "is nary property". |

## Description | If X is dt2 Y then Y is a dimensional attribution r. |

## Typology | The property "is dvt3" is a sub-property of "is nary property". |

## Description | If X is dvt3 Y then Y is a dimensional value typing r. If X is dvt3 Y then X is a dimensional value type. |

## Typology | The property "is efc4" is a sub-property of "is nary property". |

## Description | If X is efc4 Y then Y is a compound cardinality r. If X is efc4 Y then X is a compound cardinality constraint. |

## Typology | The property "is eu3" is a sub-property of "is nary property". |

## Description | If X is eu3 Y then Y is an ext unique r. If X is eu3 Y then X is an external uniqueness. |

## Typology | The property "is first" is a sub-property of "is participant". |

## Description | |

## Others | If X is first Y then X is a relationship constraint, or is a value comparison constraint. |

## Typology | The property "is jo3" is a sub-property of "is nary property". |

## Description | If X is jo3 Y then Y is a joining r. If X is jo3 Y then X is a join constraint. |

## Typology | The property "is linked to2" is a sub-property of "is nary property". |

## Description | If X is linked to2 Y then Y is a role playing r. If X is linked to2 Y then X is a role. |

## Description | The following properties are sub-properties of "is nary property": "is vtc4", "is vr3", "is vr2", "is vr1", "is vp2", "is ve3", "is ve2", "is ve1", "is rvc4", "is rolj2", "is role2", "is role1", "is rol1", "is relj1", "is rel4", "is rel3", "is rel2", "is rel1", "is plays1", "is ot3", "is ot2", "is of3", "is linked to2", "is jo3", "is eu3", "is efc4", "is dvt3", "is dt2", "is dt1", "is dim2", "is dim1", "is cc2", "is cc1", "is avc4", "is att3", "is ap3" and "is ap1". |

## Typology | The property "is of3" is a sub-property of "is nary property". |

## Description | If X is of3 Y then Y is a role playing r. If X is of3 Y then X is a cardinality constraint. The object property "is of3" is functional. |

## Typology | The property "is ot2" is a sub-property of "is nary property". |

## Description | If X is ot2 Y then Y is a card o r. If X is ot2 Y then X is an object type. |

## Typology | The property "is ot3" is a sub-property of "is nary property". |

## Description | If X is ot3 Y then Y is a dimensional attribution r. If X is ot3 Y then X is an object type. |

## Description | The property "is propert part of" is a sub-property of "is part of". The property "is part of" is transitive. |

## Typology | The property "is part player" is a sub-property of "is participant". |

## Others | If X is part player Y then Y is an attributive property, is a data type, or is an object type. If X is part player Y then X is a composite aggregate, is a part, or is a shared aggregate. |

## Other | No information. |

## Description | The following properties are sub-properties of "is participant": "is whole player", "is second", "plays super", "plays sub", "is part player" and "is first". If X is participant Y then Y is an entity. If X is participant Y then X is an entity. |

## Typology | The property "is plays1" is a sub-property of "is nary property". |

## Description | If X is plays1 Y then Y is a role playing r. If X is plays1 Y then X is an entity type. |

## Typology | The property "is propert part of" is a sub-property of "is part of". |

## Description | The property "is propert part of" is transitive. |

## Description | If X is range Y then Y is a data type. If X is range Y then X is an attributive property. |

## Other | No information. |

## Typology | The property "is rel1" is a sub-property of "is nary property". |

## Description | If X is rel1 Y then Y is an ext unique r. If X is rel1 Y then X is a relationship. |

## Typology | The property "is rel2" is a sub-property of "is nary property". |

## Description | If X is rel2 Y then Y is a compound cardinality r. If X is rel2 Y then X is a relationship. |

## Typology | The property "is rel3" is a sub-property of "is nary property". |

## Description | If X is rel3 Y then Y is a card r r. If X is rel3 Y then X is a relationship. |

## Typology | The property "is rel4" is a sub-property of "is nary property". |

## Description | If X is rel4 Y then Y is a dimensional attribution r. If X is rel4 Y then X is a relationship. |

## Typology | The property "is relj1" is a sub-property of "is nary property". |

## Description | If X is relj1 Y then Y is a joining r. If X is relj1 Y then X is a relationship. |

## Typology | The property "is rol1" is a sub-property of "is nary property". |

## Description | If X is rol1 Y then Y is a constraining values r r. |

## Typology | The property "is role1" is a sub-property of "is nary property". |

## Description | If X is role1 Y then Y is a compound cardinality r. |

## Typology | The property "is role2" is a sub-property of "is nary property". |

## Description | If X is role2 Y then Y is an ext unique r. |

## Typology | The property "is rolj2" is a sub-property of "is nary property". |

## Description |

## Typology | The property "is rvc4" is a sub-property of "is nary property". |

## Description | If X is rvc4 Y then Y is a constraining values r r. If X is rvc4 Y then X is a role value constraint. |

## Typology | The property "is second" is a sub-property of "is participant". |

## Description | |

## Others | If X is second Y then X is a relationship constraint, or is a value comparison constraint. |

## Typology | The property "is ve1" is a sub-property of "is nary property". |

## Description | If X is ve1 Y then Y is a constraining values v r. If X is ve1 Y then X is a value enumeration. The object property "is ve1" is functional. |

## Typology | The property "is ve2" is a sub-property of "is nary property". |

## Description | If X is ve2 Y then Y is a constraining values a r. If X is ve2 Y then X is a value enumeration. The object property "is ve2" is functional. |

## Typology | The property "is ve3" is a sub-property of "is nary property". |

## Description | If X is ve3 Y then Y is a constraining values r r. If X is ve3 Y then X is a value enumeration. The object property "is ve3" is functional. |

## Typology | The property "is vp2" is a sub-property of "is nary property". |

## Description | If X is vp2 Y then Y is a constraining values v r. If X is vp2 Y then X is a value property. |

## Typology | The property "is vr1" is a sub-property of "is nary property". |

## Description | If X is vr1 Y then Y is a constraining values a r. If X is vr1 Y then X is a value range. The object property "is vr1" is functional. |

## Typology | The property "is vr2" is a sub-property of "is nary property". |

## Description | If X is vr2 Y then Y is a constraining values r r. If X is vr2 Y then X is a value range. The object property "is vr2" is functional. |

## Typology | The property "is vr3" is a sub-property of "is nary property". |

## Description | If X is vr3 Y then Y is a constraining values v r. If X is vr3 Y then X is a value range. The object property "is vr3" is functional. |

## Typology | The property "is vtc4" is a sub-property of "is nary property". |

## Description | If X is vtc4 Y then Y is a constraining values v r. If X is vtc4 Y then X is a value type constraint. |

## Typology | The property "is whole player" is a sub-property of "is participant". |

## Others | If X is whole player Y then Y is an attributive property, is a data type, or is an object type. If X is whole player Y then X is a composite aggregate, is a part, or is a shared aggregate. |

## Typology | A join constraint is a constraint. |

## Description | A join constraint is participant exactly four roles. A join constraint is jo3 exactly one joining r. A join constraint is participant at least three relationships, and is participant at most four relationships. If X is jo3 Y then X is a join constraint. |

## Examples | The following are join constraints: join subset constraints, join equality constraints, and join disjointness constraints. |

## Typology | A join disjointness constraint is both a join constraint, and a disjoint roles. |

## Distinctions | No join disjointness constraint is a join subset constraint, or a join equality constraint. |

## Typology | A join equality constraint is both a role equality, and a join constraint. |

## Distinctions | No join disjointness constraint is a join equality constraint. |

## Typology | |

## Distinctions | No join equality constraints or join disjointness constraints are join subset constraints. |

## Typology | A joining r is a reified n ary. |

## Description | subClassOf(class('#JoiningR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#rolj2')), class('#Role')), objectSomeValuesFrom(objectInverseOf(objectProperty('#relj1')), class('#Relationship')), objectSomeValuesFrom(objectInverseOf(objectProperty('#jo3')), class('#JoinConstraint'))]). If any of the following relationships hold between X and Y then Y is a joining r: "is rolj2", "is relj1" and "is jo3". |

## Typology | A lesser than is a comparison. |

## Others |

## Typology | |

## Examples | Purely reflexives, and global reflexivities are local reflexivities. |

## Distinctions | The following are disjoint: irreflexivities, local reflexivities, symmetries, and transitivities. The following are disjoint: antisymmetries, local reflexivities, symmetries, and transitivities. |

## Typology | A mandatory is a mandatory constraint. |

## Description | A mandatory is declared on exactly one role. |

## Typology | A mandatory constraint is a constraint. |

## Description | |

## Examples | Mandatories, and disjunctive mandatories are mandatory constraints. |

## Typology | |

## Description | A mapped to both is range exactly one data type, and is domain exactly one value type. |

## Distinctions | No mapped to is a multivalued attribute. |

## Typology | A maximum cardinality is an abstract. |

## Description | A maximum cardinality is propert part of a cardinality constraint. A maximum cardinality has as c value an integer. |

## Typology | A maximum value is an abstract. |

## Description | A maximum value is propert part of a value range. A maximum value has as value a literal. |

## Typology | A minimum cardinality is an abstract. |

## Description | A minimum cardinality is propert part of a cardinality constraint. A minimum cardinality has as c value an integer. |

## Typology | A minimum value is an abstract. |

## Description | A minimum value is propert part of a value range. A minimum value has as value a literal. |

## Typology | A multivalued attribute is an attribute. |

## Distinctions | No mapped to is a multivalued attribute. |

## Typology | A nested object type is an object type. |

## Description | A nested object type objectifies exactly one relationship. |

## Typology | A not equal is a comparison. |

## Others |

## Typology | An object type is an entity type. |

## Description | If any of the following relationships hold between X and Y then X is an object type: "is ot3" and "is ot2". subClassOf(class('#ObjectType'), objectMaxCardinality('1', objectInverseOf(objectProperty('#declaredOn')), class('#CompletenessConstraint'))). subClassOf(class('#ObjectType'), objectSomeValuesFrom(objectInverseOf(objectProperty('#identifies')), class('#IdentificationConstraint'))). If X has as strong Y then Y is an object type. |

## Others | disjointUnion(class('#EntityType'), class('#DataType'), class('#ObjectType'), class('#Qualifier'), class('#ValueProperty')). |

## Examples | The following are object types: weak object types, nested object types, and associative entity types. |

## Typology | |

## Others | |

## Distinctions | No attributive property cardinality is an object type cardinality. |

## Other | No information. |

## Typology | A part is a part whole. |

## Description | A part is participant at most two attributive properties. A part is part player exactly one attributive property, and is whole player exactly one composite attribute. |

## Typology | A part whole is a relationship. |

## Examples | Shared aggregates, and parts are part wholes. |

## Distinctions | The following are disjoint: attributive properties, part wholes, and subsumptions. |

## Typology | The property "plays sub" is a sub-property of "is participant". |

## Description | If X plays sub Y then Y is an entity. If X plays sub Y then X is a subsumption. |

## Typology | The property "plays super" is a sub-property of "is participant". |

## Description | If X plays super Y then Y is an entity. If X plays super Y then X is a subsumption. |

## Typology | A purely reflexive is a local reflexivity. |

## Typology | |

## Description | A qualified identification is partially identifies exactly one qualified relationship. |

## Distinctions |

## Typology | A qualified relationship is a relationship. |

## Description | subClassOf(class('#QualifiedRelationship'), objectMaxCardinality('2', objectInverseOf(objectProperty('#declaredOn')), class('#Qualifier'))). subClassOf(class('#QualifiedRelationship'), objectSomeValuesFrom(objectInverseOf(objectProperty('#declaredOn')), class('#Qualifier'))). |

## Distinctions | The following are disjoint: attributive properties, qualified relationships, and subsumptions. |

## Typology | A qualifier is an entity type. |

## Description | A qualifier is declared on exactly one thing that is a qualified relationship, or is a role. A qualifier has as part something that is an attribute, or is a dimensional attribute. |

## Others |

## Examples | The following are reified n aries: role playing rs, joining rs and ext unique rs, and so on (11 items in total). |

## Typology | A relationship is an entity. |

## Description | If any of the following relationships hold between X and Y then X is a relationship: "is relj1", "is rel4", "is rel3", "is rel2" and "is rel1". A relationship contains at least two roles. A relationship is reified as at most one nested object type. A relationship is participant exactly two entities. A relationship is rel1 at least two ext unique rs, or is rel1 exactly zero ext unique rs. |

## Others | |

## Examples | The following are relationships: subsumptions, qualified relationships and part wholes, and so on (4 items in total). |

## Distinctions | The following are disjoint: entity types, relationships, and roles. |

## Typology | A relationship constraint is a constraint. |

## Description | A relationship constraint both is second exactly one role, and is first exactly one role. A relationship constraint is participant exactly two roles. |

## Examples | The following are relationship constraints: transitivities, symmetries and local reflexivities, and so on (5 items in total). |

## Typology | A relationship equality is an equality constraint. |

## Description | A relationship equality is declared on at least two relationships. |

## Typology | |

## Description | If any of the following relationships hold between X and Y then X is a role: "is rolj2", "is role2", "is role1", "is rol1" and "is linked to2". subClassOf(class('#Role'), [objectMaxCardinality('1', objectInverseOf(objectProperty('#declaredOn')), class('#Qualifier')), objectMaxCardinality('1', objectInverseOf(objectProperty('#declaredOn')), class('#Mandatory'))]). A role both is role2 at least two ext unique rs, or is role2 exactly zero ext unique rs, and is role1 at least two compound cardinality rs, or is role1 exactly zero compound cardinality rs. If any of the following relationships hold between X and Y then Y is a role: "is second" and "is first". subClassOf(class('#Role'), objectMaxCardinality('4', objectInverseOf(objectProperty('#participant')), class('#RelationshipConstraint'))). subClassOf(class('#Role'), objectExactCardinality('1', objectInverseOf(objectProperty('#contains')), class('#Relationship'))). |

## Others | |

## Distinctions | The following are disjoint: entity types, relationships, and roles. |

## Typology | A role equality is an equality constraint. |

## Description | A role equality is declared on at least two roles. |

## Examples |

## Typology | A role playing r is a reified n ary. |

## Description | subClassOf(class('#RolePlayingR'), [objectSomeValuesFrom(objectInverseOf(objectProperty('#plays1')), class('#EntityType')), objectSomeValuesFrom(objectInverseOf(objectProperty('#of3')), class('#CardinalityConstraint')), objectSomeValuesFrom(objectInverseOf(objectProperty('#linkedTo2')), class('#Role'))]). If any of the following relationships hold between X and Y then Y is a role playing r: "is plays1", "is of3" and "is linked to2". |

## Typology | |

## Description | A role value constraint is rvc4 exactly one constraining values r r. If X is rvc4 Y then X is a role value constraint. |

## Others | disjointUnion(class('#ValueConstraint'), class('#AttributeValueConstraint'), class('#RoleValueConstraint'), class('#ValueTypeConstraint')). A constraining values r r is defined as a role value constraint. |

## Distinctions |

## Typology | A shared aggregate is a part whole. |

## Description | A shared aggregate is part player at most one data type, and is whole player at most one data type, or is part player at most one object type, and is whole player at most one object type. A shared aggregate is part player something that is a data type, or is an object type, and is whole player something that is a data type, or is an object type. |

## Examples | A composite aggregate is a shared aggregate. |

## Typology | |

## Description | A single identification is declared on exactly one thing that is an attribute, or is a value type. |

## Typology | A strongly intransitive is an intransitivity. |

## Typology | A subset constraint is a constraint. |

## Typology | A subsumption is a relationship. |

## Description | A subsumption both plays super exactly one entity, and plays sub exactly one entity. If any of the following relationships hold between X and Y then X is a subsumption: "plays super" and "plays sub". |

## Distinctions | The following are disjoint: attributive properties, qualified relationships, and subsumptions. The following are disjoint: attributive properties, part wholes, and subsumptions. |

## Typology | A symmetry is a relationship constraint. |

## Distinctions | The following are disjoint: irreflexivities, local reflexivities, symmetries, and transitivities. The following are disjoint: antisymmetries, local reflexivities, symmetries, and transitivities. |

## Typology | A transitivity is a relationship constraint. |

## Distinctions | The following are disjoint: irreflexivities, local reflexivities, symmetries, and transitivities. The following are disjoint: antisymmetries, local reflexivities, symmetries, and transitivities. |

## Typology | An uniqueness constraint is a constraint. |

## Others | disjointUnion(class('#UniquenessConstraint'), class('#ExternalUniqueness'), class('#InternalUniqueness')). |

## Examples | Internal uniqueness, and external uniqueness are uniqueness constraints. |

## Typology | |

## Description | A value comparison constraint is second exactly one role, has as type exactly one data type, is first exactly one role, and is comparison operator exactly one comparison. A value comparison constraint is participant exactly two roles. If X is comparison operator Y then X is a value comparison constraint. |

## Typology | A value constraint is a constraint. |

## Others | disjointUnion(class('#ValueConstraint'), class('#AttributeValueConstraint'), class('#RoleValueConstraint'), class('#ValueTypeConstraint')). |

## Examples | The following are value constraints: value type constraints, role value constraints, and attribute value constraints. |

## Typology | A value enumeration is an abstract. |

## Description | If any of the following relationships hold between X and Y then X is a value enumeration: "is ve3", "is ve2" and "is ve1". A value enumeration is ve1 a constraining values v r, is ve2 a constraining values a r, or is ve3 a constraining values r r. A value enumeration is part of something that is an attribute value constraint, is a role value constraint, or is a value type constraint. |

## Typology | A value property is an entity type. |

## Description | A value property is domain an object type. If X is vp2 Y then X is a value property. |

## Others | disjointUnion(class('#ValueProperty'), class('#DimensionalValueType'), class('#ValueType')). |

## Examples | Value types, and dimensional value types are value properties. |

## Typology | A value range is an abstract. |

## Description | If any of the following relationships hold between X and Y then X is a value range: "is vr3", "is vr2" and "is vr1". A value range has as type exactly one data type. A value range is part of something that is a role value constraint, or is a value type constraint. |

## Typology | A value type is a value property. |

## Description | subClassOf(class('#ValueType'), objectMaxCardinality('1', objectInverseOf(objectProperty('#participant')), class('#SingleIdentification'))). subClassOf(class('#ValueType'), objectExactCardinality('1', objectInverseOf(objectProperty('#domain')), class('#MappedTo'))). |

## Others | disjointUnion(class('#ValueProperty'), class('#DimensionalValueType'), class('#ValueType')). |

## Typology | |

## Description | A value type constraint is vtc4 exactly one constraining values v r. If X is vtc4 Y then X is a value type constraint. |

## Others | A constraining values v r is defined as a value type constraint. |

## Distinctions | No role value constraints or attribute value constraints are value type constraints. |

## Typology | |

## Description | A weak identification identifies exactly one weak object type. A weak identification is declared on an attributive property, and is declared on a relationship. |

## Distinctions |

## Typology | A weak object type is an object type. |

## Description | A weak object type has as strong exactly one object type. subClassOf(class('#WeakObjectType'), objectSomeValuesFrom(objectInverseOf(objectProperty('#identifies')), class('#WeakIdentification'))). If X has as strong Y then X is a weak object type. |