KerML 1.0b4 FTF Avatar
  1. OMG Issue

KERML_ — Need to revise derivation of AnnotatingElement::ownedAnnotatingRelationship

  • 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_-135 to KERML_-119 makes Annotation::annotatingElement derived, with the derivation

    annotatingElement =
        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_-119 ensure 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