-
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
KERML11 — exists(selectByKind(X)) is not a Boolean condition
- Key: KERML11-214
- OMG Task Force: Kernel Modeling Language (KerML) 1.1 RTF