-
Key: KERML11-215
-
Status: open
-
Source: Diversitas Systems Engineering Ltd ( Geoffrey Tullener)
-
Summary:
Feature::checkFeaturePortionSpecialization: includes(oclIsKindOf(X)) compares types with a Boolean Where: KerML 1.0 (formal/2026-03-01), ยง8.3.3.3.4 Feature, PDF p.194 (printed 168) Published OCL: isPortion and ownedTyping.type->includes(oclIsKindOf(Class)) and owningType <> null and (owningType.oclIsKindOf(Class) or owningType.oclIsKindOf(Feature) and owningType.oclAsType(Feature).type->exists(oclIsKindOf(Class))) implies specializesFromLibrary('Occurrence::Occurrence::portions') Correction: isPortion and ownedTyping.type->exists(oclIsKindOf(Class)) and owningType <> null and (owningType.oclIsKindOf(Class) or owningType.oclIsKindOf(Feature) and owningType.oclAsType(Feature).type->exists(oclIsKindOf(Class))) implies specializesFromLibrary('Occurrences::Occurrence::portions') Proof of fault: includes tests a collection of Types for a Boolean value, which it can never contain. Likely cause: Original error, replicated across a family. Three rules share includes(oclIsKindOf(X)) (portion, suboccurrence, subobject). Nearest rule: Feature::checkFeatureSuboccurrenceSpecialization (KerML 1.0 PDF p.194 (printed 168)): isComposite and ownedTyping.type->includes(oclIsKindOf(Class)) and owningType <> null and (owningType.oclIsKindOf(Class) or owningType.oclIsKindOf(Feature) and owningType.oclAsType(Feature).type->exists(oclIsKindOf(Class))) implies specializesFromLibrary('Occurrence::Occurrence::suboccurrences') Same defect in: Feature::checkFeaturePortionSpecialization, Feature::checkFeatureSuboccurrenceSpecialization, Feature::checkFeatureSubobjectSpecialization Basis of fix: The same body uses the intended form two lines later; counts match OMG's reference export. Note: The library path 'Occurrence::Occurrence::portions' (for Occurrences::) is already reported in KERML11-205/206; this issue is the includes/exists condition only.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:48 GMT
-
Updated: Thu, 29 Oct 2026 23:10 GMT
KERML11 — includes(oclIsKindOf(X)) compares types with a Boolean
- Key: KERML11-215
- OMG Task Force: Kernel Modeling Language (KerML) 1.1 RTF