-
Key: OCL23-1
-
Legacy Issue Number: 13944
-
Status: closed
-
Source: NASA ( Dr. Nicolas F. Rouquette)
-
Summary:
Specification: Object Constraint Language, formal/06-05-01
Section: 7.6 Collection Operations
Summary:
The concept of transitive closure is very useful for specifying well-formedness constraints on binary relations.
For a binary relation r:A->A and elements x,y,z in A, r(x,y) is true when r relates x to y and r is transitive whenever for any x,y,z in A, r(x,y) and r(y,z) imply r(x,z). The transitive closure of a binary relation r:A->A is the smallest relation, ^r:A->A, that contains r and is transitive.
In the UML specification, the definition of Classifier::allParents() : Classifier[*] as “all the direct and indirect ancestors of a generalized Classifier” could be equivalently paraphrased as the transitive closure of the Classifier::parents() : Classifier[*] relation.
Specifying the notion of transitive closure for the OCL specification can be problematic as this notion refers to a meta-property not expressible in first order logic (i.e., the smallest relation satisfying a given property). However, the notion of transitive closure can be specified in the context of a particular API for evaluating OCL iterator expressions such as that of the Eclipse OCL implementation of the OCL2.0 specification:
A synopsis of the algorithm for computing the transitive closure as an OCL iterator expression is available here:
http://dev.eclipse.org/newslists/news.eclipse.modeling.mdt.ocl/msg01390.html
-
Reported: OCL 2.1 — Sun, 31 May 2009 04:00 GMT
-
Disposition: Resolved — OCL 2.3
-
Disposition Summary:
No Data Available
-
Updated: Fri, 6 Mar 2015 20:58 GMT