EA Toolsets project : OsMmRelations

HomePage :: PageIndex :: Guest Logon
[ OsEATools | MetaModel | Overview | Base-principles and requirements | Model-objects | Entities | Relations | Models | Categories ]


Metamodel: Relations


A relation represents a perceived relationship between any two entities.

A relation-type is a template (‘class’) for a specific type of relation.

(Relations are always binary, between two entities. An apparent n-ary relation is logically a cluster of relations of the same type of which one end of each relation connects in the same way to the same entity.)

A relation is always descriptive. It may optionally also imply semantics of relationship, to be verified within a model-type and model-instance.

Each end of the relation identifies the entity-type(s) to which it may connect, by specifying the matching ‘linkable’ connection-interface. Since these connection-interfaces may occur at any level in the entity-type stack, a relation may be linked to any entity-type which includes the respective connection anywhere in its stack – hence a relation does not need to be defined on a per-entity-type level, thus minimising the number of relations that need to be defined on adding a new entity-type to the metamodel repository.

A relation-type may also specify that it may not be connected to a given connection-type. (To support modal-logics, it should also be possible to allow or prevent connection based on property-values within the entity-type or its instances: this principle should be included within the metamodel design, but may be left for implementation at a later stage.)

A relation-type is constructed as a stack of subclasses, equivalent to the subclass stack for entity-types. A relation-type may therefore be configured to connect with any combination of the presence and/or absence (and/or, at a later stage, computed modal-logic) of connections within the entity-type stack.

As for entity-types, each member of the relation-type subclass-stack may carry any number of its own properties and/or display-methods. Likewise an instance of a relation may be reconverted back to a relation-type.

In certain cases, a relation-type may connect to instances of another relation-type rather than to an entity-type. (This is required for some model-types such as Object Role Modeling [ORM].) To support this, a relation-type may optionally expose its own ‘linkable’ connection-interface property, exactly as for entity-types.


[ OsEATools | MetaModel | Overview | Base-principles and requirements | Model-objects | Entities | Relations | Models | Categories ]
There are 2 comments on this page. [Display comments/form]