KerML 1.0b4 FTF Avatar
  1. OMG Issue

KERML_ — Navigability of AnnotatingElement<->Annotation meta-association

  • Key: KERML_-119
  • Status: closed  
  • Source: Dassault Systemes ( Mr. Tomas Juknevicius)
  • Summary:

    Annotation relationship creation modifies navigable AnnotatingElement::annotation property.

    There is a navigable AnnotatingElement::annotation property, so it means AnnotatingElement is modified if Annotation is connected to it. KerML allows Annotation to be defined outside AnnotatingElement, for example AnnotatingElement can be owned in rootNamespace1, but Annotation connecting to that AnnotatingElement can be owned in rootNamespace2.

    This causes exactly same problems with models serialization as UML had with NamedElement::clientDependency before making it derived.

    If possible AnnotatingElement::annotation should be non-navigable or derived.

  • Reported: KerML 1.0b2 — Mon, 28 Oct 2024 08:15 GMT
  • Disposition: Resolved — KerML 1.0b4
  • Disposition Summary:

    Revise abstract syntax for Annotation

    It was not actually intended that the Annotation relationship for an AnnotatingElement every be owned within a different root Namespace than the AnnotatingElement. Indeed, the textual notation only allows two possible ownerships for an Annotation:

    1. The Annotation is owned by its annotatedElement, in which case the annotatingElement is owned by the Annotation as an ownedRelatedElement.
    2. The Annotation is owned by its annotatingElement.
      In both these cases, the Annotation and its AnnotatingElement are necessarily contained within the same root Namespace.

    This proposal therefore retains the bidirectional annotation/annotatedElement association, but revises the abstract syntax so that the ownership of an Annotation is restricted consistently with the cases allowed in the textual concrete syntax.

    1. Adds a composite ownedAnnotatingElement/owningAnnotatingRelationship association to explicitly model the case in which an Annotation owns its annotatingElement. (The case in which the Annotation is owned by its annotatingElement is already handled by the existing ownedAnnotatingRelationship/owningAnnotatingElement association.)
    2. Makes Annotation::annotatingElement and AnnotatingElement::annotations derived from the other associations between Annotation and AnnotatingElement.
    3. Adds validation constraints to Annotation that require an Annotation to be owned by either it's annotatedElement or its annotatingElement and, if it is owned by its annotatedElement, that is own its annotatingElement.
  • Updated: Sat, 19 Jul 2025 18:58 GMT
  • Attachments: