-
Key: SYSML21-709
-
Status: open
-
Source: Diversitas Systems Engineering Ltd ( Geoffrey Tullener)
-
Summary:
TransitionUsage::deriveTransitionUsageGuardExpression: TransitionUsage::guardExpression selects trigger memberships Where: SysML 2.0 (formal/2026-03-02), ยง8.3.18.9 TransitionUsage, PDF p.375 (printed 343) Published OCL: guardExpression = ownedFeatureMembership->selectByKind(TransitionFeatureMembership)->select(kind = TransitionFeatureKind::trigger).transitionFeature->selectByKind(Expression) Correction proposed: guardExpression = ownedFeatureMembership->selectByKind(TransitionFeatureMembership)->select(kind = TransitionFeatureKind::guard).transitionFeature->selectByKind(Expression) Proof of fault: Trigger features must be AcceptActionUsages and none is an Expression, so OMG's OCL yields the empty set for every possible model. Likely cause: Copy, edit left incomplete. Two of three words edited (guardExpression, Expression); the kind filter still says trigger. Nearest rule: TransitionUsage::deriveTransitionUsageTriggerAction (SysML 2.0 PDF p.376 (printed 344)): triggerAction = ownedFeatureMembership->selectByKind(TransitionFeatureMembership)->select(kind = TransitionFeatureKind::trigger).transitionFeature->selectByKind(AcceptActionUsage) Basis of fix: kind = guard follows from the property's name and the exact type match; effect is excluded by meaning, not proof. Also: The rule's prose is copied from the trigger rule too ("The triggerActions ... with kind = trigger"). Suggested prose: "The guardExpressions of a TransitionUsage are the transitionFeatures of the ownedFeatureMemberships of the TransitionUsage with kind = guard, which must all be Expressions."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: SysML 2.0 — Tue, 27 Oct 2026 18:38 GMT
-
Updated: Fri, 30 Oct 2026 21:31 GMT
SYSML21 — TransitionUsage::guardExpression selects trigger memberships
- Key: SYSML21-709
- OMG Task Force: Systems Modeling Language (SysML) 2.1 RTF