SysML 2.1b1 RTF Avatar
  1. OMG Issue

SYSML21 — TransitionUsage::guardExpression selects trigger memberships

  • 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