## ABSTRACT (class)

### Examples

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

No information.

## ANTISYMMETRY (class)

### Examples

An asymmetry is an antisymmetry.

### Distinctions

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

## ASYMMETRY (class)

### Typology

An asymmetry is both an irreflexivity, and an antisymmetry.

## ATTRIBUTE (class)

### Typology

An attribute is an attributive property.

### Description

An attribute is declared as at most one single identification.

If X is att3 Y then X is an attribute.

### Others

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

## ATTRIBUTE VALUE CONSTRAINT (class)

### Definition

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

### 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')).

## ATTRIBUTIVE PROPERTY (class)

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

## ATTRIBUTIVE PROPERTY CARDINALITY (class)

### Others

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

## CARD O R (class)

### 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".

## CARD R R (class)

### 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".

## CARDINALITY CONSTRAINT (class)

### 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')).

## COMPARISON (class)

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

## COMPLETENESS CONSTRAINT (class)

### Description

A completeness constraint is participant at least two object types.

A completeness constraint is declared on exactly one subsumption.

## COMPOSITE AGGREGATE (class)

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

## COMPOSITE ATTRIBUTE (class)

### Description

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

### Others

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

## COMPOUND CARDINALITY CONSTRAINT (class)

### Definition

A compound cardinality constraint is defined as a compound cardinality r.

### Description

If X is efc4 Y then X is a compound cardinality constraint.

### Others

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

## COMPOUND CARDINALITY R (class)

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

## CONSTRAINING VALUES A R (class)

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

## CONSTRAINING VALUES R R (class)

### Definition

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

### 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')))))).

## CONSTRAINING VALUES V R (class)

### Definition

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

### 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')))))).

## CONSTRAINT (class)

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

## CONTAINS (object property)

### Typology

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

## DATA TYPE (class)

### 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')).

## DIMENSION (class)

### Typology

A dimension is an abstract.

### Description

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

## DIMENSIONAL ATTRIBUTE (class)

### Definition

A dimensional attribute is defined as a dimensional attribution r.

### Others

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

### 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".

### Others

A dimensional attribute is defined as a dimensional attribution r.

## DIMENSIONAL VALUE TYPE (class)

### Definition

A dimensional value type is defined as a dimensional value typing r.

### Description

If X is dvt3 Y then X is a dimensional value type.

### Others

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

## DIMENSIONAL VALUE TYPING R (class)

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

## DISJOINT OBJECT TYPES (class)

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

## DISJOINT RELATIONSHIPS (class)

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

## DISJOINT ROLES (class)

### Description

A disjoint roles is declared on at least two roles.

### Others

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

### Distinctions

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

## DISJOINTNESS CONSTRAINT (class)

### Others

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

### Examples

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

## DISJUNCTIVE MANDATORY (class)

### Description

A disjunctive mandatory is declared on at least two roles.

## ENTITY (class)

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

## ENTITY TYPE (class)

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

## EQUAL OR GREATER THAN (class)

### Others

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

## EQUAL OR LESSER THAN (class)

### Others

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

## EQUAL TO (class)

### Typology

An equal to is a comparison.

### Others

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

## EXT UNIQUE R (class)

### 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".

## EXTERNAL IDENTIFICATION (class)

### Others

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

## EXTERNAL UNIQUENESS (class)

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

## GREATER THAN (class)

### Typology

A greater than is a comparison.

### Others

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

## HAS AS C VALUE (data property)

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

## HAS AS PART (object property)

### Description

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

## HAS AS STRONG (object property)

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

## HAS AS TYPE (object property)

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

## HAS AS VALUE (data property)

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

## IDENTIFICATION CONSTRAINT (class)

### 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')).

No information.

## INTERNAL IDENTIFICATION (class)

### Others

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

## INTERNAL UNIQUENESS (class)

### Others

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

## INTRANSITIVITY (class)

### Typology

An intransitivity is an irreflexivity.

## IRREFLEXIVITY (class)

### Distinctions

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

## IS AP1 (object property)

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

## IS AP3 (object 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.

## IS ATT3 (object 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.

If X is att3 Y then X is an attribute.

## IS AVC4 (object property)

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

## IS CC1 (object property)

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

## IS CC2 (object property)

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

## IS COMPARISON OPERATOR (object property)

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

No information.

## IS DECLARED ON (object property)

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

## IS DIM1 (object 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.

If X is dim1 Y then X is a dimension.

## IS DIM2 (object property)

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

If X is dim2 Y then X is a dimension.

## IS DOMAIN (object property)

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

## IS DT1 (object 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.

If X is dt1 Y then X is a data type.

## IS DT2 (object property)

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

If X is dt2 Y then X is a data type.

## IS DVT3 (object property)

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

## IS EFC4 (object property)

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

## IS EU3 (object property)

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

## IS FIRST (object property)

### Typology

The property "is first" is a sub-property of "is participant".

### Description

If X is first Y then Y is a role.

### Others

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

## IS JO3 (object property)

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

## IS LINKED TO2 (object property)

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

## IS NARY PROPERTY (object property)

### 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".

## IS OF3 (object property)

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

## IS OT2 (object property)

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

## IS OT3 (object property)

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

## IS PART OF (object property)

### Description

The property "is propert part of" is a sub-property of "is part of".

The property "is part of" is transitive.

## IS PART PLAYER (object property)

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

No information.

## IS PARTICIPANT (object property)

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

## IS PLAYS1 (object property)

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

## IS PROPERT PART OF (object property)

### Typology

The property "is propert part of" is a sub-property of "is part of".

### Description

The property "is propert part of" is transitive.

## IS RANGE (object property)

### Description

If X is range Y then Y is a data type.

If X is range Y then X is an attributive property.

No information.

## IS REL1 (object property)

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

## IS REL2 (object property)

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

## IS REL3 (object property)

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

## IS REL4 (object property)

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

## IS RELJ1 (object property)

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

## IS ROL1 (object property)

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

If X is rol1 Y then X is a role.

## IS ROLE1 (object property)

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

If X is role1 Y then X is a role.

## IS ROLE2 (object property)

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

If X is role2 Y then X is a role.

## IS ROLJ2 (object property)

### Typology

The property "is rolj2" is a sub-property of "is nary property".

### Description

If X is rolj2 Y then Y is a joining r.

If X is rolj2 Y then X is a role.

## IS RVC4 (object property)

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

## IS SECOND (object property)

### Typology

The property "is second" is a sub-property of "is participant".

### Description

If X is second Y then Y is a role.

### Others

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

## IS VE1 (object property)

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

## IS VE2 (object property)

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

## IS VE3 (object property)

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

## IS VP2 (object property)

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

## IS VR1 (object 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.

## IS VR2 (object property)

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

## IS VR3 (object property)

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

## IS VTC4 (object property)

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

## IS WHOLE PLAYER (object property)

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

## JOIN CONSTRAINT (class)

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

## JOIN DISJOINTNESS CONSTRAINT (class)

### Typology

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

## JOIN EQUALITY CONSTRAINT (class)

### Typology

A join equality constraint is both a role equality, and a join constraint.

## JOINING R (class)

### 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".

## LESSER THAN (class)

### Typology

A lesser than is a comparison.

### Others

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

## LOCAL REFLEXIVITY (class)

### Distinctions

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

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

## MANDATORY (class)

### Description

A mandatory is declared on exactly one role.

## MAPPED TO (class)

### Typology

A mapped to is an attribute.

### Description

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

## MAXIMUM CARDINALITY (class)

### Typology

A maximum cardinality is an abstract.

### Description

A maximum cardinality has as c value an integer.

## MAXIMUM VALUE (class)

### Typology

A maximum value is an abstract.

### Description

A maximum value has as value a literal.

## MINIMUM CARDINALITY (class)

### Typology

A minimum cardinality is an abstract.

### Description

A minimum cardinality has as c value an integer.

## MINIMUM VALUE (class)

### Typology

A minimum value is an abstract.

### Description

A minimum value has as value a literal.

## NESTED OBJECT TYPE (class)

### Description

A nested object type objectifies exactly one relationship.

## NOT EQUAL (class)

### Typology

A not equal is a comparison.

### Others

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

## OBJECT TYPE (class)

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

## OBJECT TYPE CARDINALITY (class)

### Others

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

No information.

## PART (class)

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

## PART WHOLE (class)

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

## PLAYS SUB (object property)

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

## PLAYS SUPER (object property)

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

## QUALIFIED RELATIONSHIP (class)

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

## QUALIFIER (class)

### 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

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

## REIFIED N ARY (class)

### Examples

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

## RELATIONSHIP (class)

### 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

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

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

## RELATIONSHIP CONSTRAINT (class)

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

## RELATIONSHIP EQUALITY (class)

### Description

A relationship equality is declared on at least two relationships.

## ROLE (class)

### Typology

A role is an entity.

### 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

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

### Distinctions

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

## ROLE EQUALITY (class)

### Description

A role equality is declared on at least two roles.

## ROLE PLAYING R (class)

### 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".

## ROLE VALUE CONSTRAINT (class)

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

## SHARED AGGREGATE (class)

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

## SINGLE IDENTIFICATION (class)

### Description

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

## SUBSUMPTION (class)

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

## SYMMETRY (class)

### Distinctions

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

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

## TRANSITIVITY (class)

### Distinctions

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

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

## UNIQUENESS CONSTRAINT (class)

### Others

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

## VALUE COMPARISON CONSTRAINT (class)

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

## VALUE CONSTRAINT (class)

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

## VALUE ENUMERATION (class)

### 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 part of something that is an attribute value constraint, is a role value constraint, or is a value type constraint.

## VALUE PROPERTY (class)

### Typology

A value property is an entity type.

### Description

If X is vp2 Y then X is a value property.

### Others

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

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

## VALUE RANGE (class)

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

## VALUE TYPE (class)

### 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')).

## VALUE TYPE CONSTRAINT (class)

### 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

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

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

## WEAK IDENTIFICATION (class)

### Description

A weak identification identifies exactly one weak object type.

## WEAK OBJECT TYPE (class)

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