Legacy Issue Number: 19061
Source: Thematix Partners LLC ( Edward Barkmeyer)
The model of Relationships in clause 8.12 requires the explicit construction of a RangeRole object when the ExplicitAttribute is created, and the creation of a DomainRole object and a Relationship object when an INVERSE attribute is created (and possibly when a UsedIn construct requires them). As modeled, the association from ExplicitAttribute to Relationship is 1-to-many, and it is derived from ExplicitAttribute.RangeRole.in-relationship. But both of those associations are 1-to-1. So it is not clear how a 1-to-many association can be derived from them. On the Inverse side, the InverseAttribute creates a unique DomainRole and a unique Relationship. There is one Relationship per InverseAttribute. So, either the same RangeRole must participate in all of the Relationships, or the ExplicitAttribute relates to one RangeRole per Relationship.
Also, for Eclipse EMF purposes, it would be good if one of the associations to each Role is composite.
Reported: EXPRESS 1.0 — Fri, 1 Nov 2013 04:00 GMT
Disposition: Resolved — EXPRESS 1.1
EXPRESS allows a subtype of the range of an ExplicitAttribute to declare an InverseAttribute whose range is subtype of the EntityType that declares the ExplicitAttribute. Consequently, an ExplicitAttribute can correspond to several technically different Relationships, each of which specifies a specific domain and range. The model in clause 8.12 must be revised to reflect this, while correcting the noted error.
As a consequence, the relationship between a Role and the EntityType that plays it is not derived (contradicting the v1.0 model) it is part of the definition of the specific modeled Relationship, and the derivation of the inverse relationships involves filtering functions. Conversely, the relationship between the ExplicitAttribute and the RangeRoles it defines is derivable from the Relationships it creates (1-to-1).
Given this structure of multiple Relationship objects, each Relationship object is the appropriate container for its Roles.
This change affects implementations. It properly enables the capture of all allowable EXPRESS language constructs. Existing implementations either ignore Relationships, or assume that they are 1-to-1 with ExplicitAttributes (which is probably the case for most published EXPRESS models).
Issue 13870 revises the text to move the Relationships associations from InvertibleAttribute to ExplicitAttribute, and the necessary changes overlap. The changes associated with Issue 19061are therefore merged with the changes in Issue 13870.
see Issue 13870
Updated: Mon, 9 Mar 2015 14:34 GMT