Typos in several KerML OCL constraint bodies
-
Key: KERML11-198
-
Status: open
-
Source: Budapest University of Technology and Economics ( Dr. Vince Molnar)
-
Summary:
Several OCL constraint bodies and constraint names in the KerML metamodel contain spelling typos that prevent the OCL from parsing or that misname the rule itself. The affected sites are:
- In 8.3.2.4.5 Namespace, the body condition on operation resolveLocal references the property owningNamspace (missing e). Should be owningNamespace.
- In 8.3.3.3.4 Feature, checkFeatureObjectSpecialization calls specializesFromLibary (missing r). Should be specializesFromLibrary.
- In 8.3.3.1.10 Type, the rule deriveTypeOwnedConjugator references the type literal Conjugator, which does not exist in the metamodel. Should be Conjugation.
- In 8.3.3.3.4 Feature, the rule deriveFeatureType references the type literal Types (plural). Should be Type.
- In 8.3.4.7.3 Expression, the body of checkCondition references the bare name result where it should reference the let-bound variable results (plural — the let-binding holds a Sequence of Expressions). Without the s the bare name resolves to Expression::result (a single Feature property), which silently triggers an implicit singleton coercion and changes the semantics.
- In 8.3.4.12.3 MetadataFeature, the body of deriveMetadataFeatureMetaclass references the bare name metaClassTypes (capital C) where it should reference the let-bound variable metaclassTypes (lowercase c) declared on the line immediately above as let metaclassTypes : Sequence(Type) = .... The body's else metaClassTypes->first() is a single-character case typo on the let-binding name.
- In 8.3.4.8.4 FeatureChainExpression, the bodies of checkFeatureChainExpressionTargetRedefinition and checkFeatureChainExpressionSourceTargetRedefinition reference the bare name sourceTargetFeature (without parentheses, treating the operation as a property) where they should reference the let-bound variable sourceParameter declared on the line above as let sourceParameter : Feature = sourceTargetFeature() in. Two sites with the same shape.
- In 8.3.3.3.4 Feature, the body of isCompatibleWith references the bare name supertype where it should reference the operation parameter otherType. The description ("if the otherType is also a Feature and …") confirms the intended name; supertype is not in scope at this site.
- In 8.3.2.4.3 Membership, the body condition on operation isDistinguishableFrom contains five occurrences of the property name shortMemberName. The metamodel property is memberShortName.
- In 8.3.2.4.3 Membership, the same body uses oclKindOf (missing Is) where the standard OCL operation is oclIsKindOf.
- In 8.3.4.7.3 Expression and 8.3.4.7.4 Function, the bodies of checkExpressionResultBindingConnector / checkFunctionResultBindingConnector reference featureMembersip (missing h). Should be featureMembership.
- In 8.3.3.1.10 Type, the rule named validateSpecificationSpecificNotConjugated (located on the Specialization metaclass at 8.3.3.1.8) starts with the wrong word Specification. The rule belongs to Specialization and checks the specific end of a Specialization, so the prefix should be Specialization.
- In 8.3.2.4.5 Namespace, the rule validateNamespaceDistinguishibility is misspelled — the noun is distinguishability (distinguish + ability, not ibility).
Each item above is purely a spelling correction and does not change the intent of the constraint or the metamodel structure.
-
Reported: KerML 1.0b2 — Fri, 8 May 2026 16:54 GMT
-
Updated: Sat, 9 May 2026 20:51 GMT