KerML 1.1b1 RTF Avatar
  1. OMG Issue

KERML11 — exists(selectByKind(X)) is not a Boolean condition

  • Key: KERML11-214
  • Status: open  
  • Source: Diversitas Systems Engineering Ltd ( Geoffrey Tullener)
  • Summary:
    Feature::checkFeatureDataValueSpecialization: exists(selectByKind(X)) is not a Boolean condition
    
    Where:          KerML 1.0 (formal/2026-03-01), ยง8.3.3.3.4 Feature, PDF p.191 (printed 165)
    Published OCL:  ownedTyping.type->exists(selectByKind(DataType)) implies specializesFromLibrary('Base::dataValues')
    Correction:     ownedTyping.type->exists(oclIsKindOf(DataType)) implies specializesFromLibrary('Base::dataValues')
    Proof of fault: exists needs a Boolean body; selectByKind yields a collection, so the condition can never hold.
    Likely cause:   Original error, replicated across a family. Three rules share the ill-typed exists(selectByKind(X)) pattern (DataType, Class, Structure).
    Nearest rule:   Feature::checkFeatureOccurrenceSpecialization (KerML 1.0 PDF p.192 (printed 166)): ownedTyping.type->exists(selectByKind(Class)) implies specializesFromLibrary('Occurrences::occurrences')
    Same defect in: Feature::checkFeatureDataValueSpecialization, Feature::checkFeatureOccurrenceSpecialization, Feature::checkFeatureObjectSpecialization
    Basis of fix:   The only well-typed reading of the prose; OMG's reference implementation behaves the same way.
    

    Provenance: found by deterministic checks of the OCL against the metamodel and OMG's reference implementation; the argument was reviewed and challenged by the reporter before filing. Further information on these methods is available on request.

    Not blocking: we are proceeding with the correction above in our own implementation.

  • Reported: KerML 1.0 — Tue, 27 Oct 2026 18:47 GMT
  • Updated: Thu, 29 Oct 2026 23:15 GMT