KerML 1.0b2 FTF Avatar
  1. OMG Issue

KERML — Some readonly features are intended to have changing values

  • Key: KERML-49
  • Status: closed  
  • Source: NIST ( Mr. Conrad Bock)
  • Summary:

    Read only features (Feature::isReadOnly=true) are described as

    Values of read only features on each instance of their domain are the same during the entire existence of that instance

    but the libraries sometimes apply it to features with values that might be intended to change over the lifetime of an instance. For example, Clause 9.2.12.2.4 (Clock) says

    A Clock provides a scalar currentTime that advances montonically over its lifetime.

    but Clocks::(Basic)Clock::currentTime are readonly:

    Clock { ...
      readonly feature currentTime : NumericalValue[1] {
        doc /* A scalar time reference that advances over the lifetime of the Clock. */ } ... }
    BasicClock { ... readonly feature :>> currentTime : Real; }
    

    Might be others, including features appear at the package level. For example, could check defaultClock, defaultMonitor, and defaultFrame in Clocks.kerml, Observation.kerml, and SpatialFrames.kerml, respectively.

  • Reported: KerML 1.0a1 — Fri, 28 Apr 2023 17:59 GMT
  • Disposition: Resolved — KerML 1.0b2
  • Disposition Summary:

    Remove incorrect uses of "readonly"

    In the Kernel Model Libraries, the keyword "readonly" is used only in the Kernel Semantic Library, in the following places:

    1. Clocks.kerml
      • readonly feature universalClock : Clock[1]
      • In Clock: readonly feature currentTime : NumericalValue[1]
      • In BasicClock: readonly feature :>> currentTime : Real
    2. Links.kerml, in Link:
      • readonly feature participant: Anything[2..*] nonunique ordered;
      • readonly end feature source: Anything[0..*] subsets participant;
      • readonly end feature target: Anything[0..*] subsets participant;
    3. Metaobjects.kerml
      • In Metaobject: abstract readonly feature annotatedElement : Element[1..*]
      • In SemanticMetadata: abstract readonly feature redefines annotatedElement : Type[1]
    4. Observation.kerml
      • readonly feature defaultMonitor[1] : ChangeMonitor
    5. SpatialFrames.kerml
      • readonly feature defaultFrame : SpatialFrame[1]
    6. StatePerformances.kerml, in StatePerformance:
      • readonly feature incomingTransitionTrigger : MessageTransfer [0..1] default null
    7. Transfers.kerml, in Transfer:
      • readonly feature isInstant: Boolean[1]
      • readonly feature isMove: Boolean[1] default true
      • readonly feature isPush: Boolean[1] default true

    Of these, the readonly keywords should be removed from Clocks::Clock::currentTime and Clocks::BasicClock::currentTime, consistent with the original point of the issue.

  • Updated: Tue, 1 Jul 2025 15:01 GMT