-
Key: KERML_-146
-
Status: closed
-
Source: Model Driven Solutions ( Mr. Ed Seidewitz)
-
Summary:
The current derivation constraint for AnnotatingElement::ownedAnnotatingRelationship is
ownedAnnotatingRelationship = ownedRelationship-> selectByKind(Annotation)-> select(a | a.annotatingElement = self)
Resolution
KERML_-135toKERML_-119makes Annotation::annotatingElement derived, with the derivationannotatingElement = if ownedAnnotatingElement <> null then ownedAnnotatingElement else owningAnnotatingElement endif
But Annotation::owningAnnotatedElement does not have its own derivation, but is, rather, determined as the inverse property to AnnotatingElement::ownedAnnotatingRelationship. This means that the derivations for AnnotatingElement::ownedAnnotatingRelationship circularly depend on each other and are, therefore, not well defined.
-
Reported: KerML 1.0b2 — Thu, 9 Jan 2025 21:57 GMT
-
Disposition: Resolved — KerML 1.0b4
-
Disposition Summary:
Update the derivation
The updates in the resolution to
KERML_-119ensure that an Annotation is owned either by its annotatingElement or by its annotatedElement. Therefore, checking that an Annotation is not owned by its annotatedElement is equivalent to checking that it is owned by its annotatingElement. And annotatedElement is not derived, so updating the derivation of ownedAnnotatingRelationship to use annotatedElement removes the circularity identified in the issue. -
Updated: Sat, 19 Jul 2025 18:59 GMT
KERML_ — Need to revise derivation of AnnotatingElement::ownedAnnotatingRelationship
- Key: KERML_-146
- OMG Task Force: Kernel Modeling Language (KerML) 1.0 FTF 2