KerML 1.1b1 RTF Avatar
  1. OMG Issue

KERML11 — ForAll and Exists Should be Model-Level Evaluable

  • Key: KERML11-87
  • Status: open   Implementation work Blocked
  • Source: Dassault Systemes ( Mrs. Gintare Krisciuniene)
  • Summary:

    ControlFunctions::forAll() and exists() are currently not model-level evaluable.
    This precludes their usage in profile building e.g. specifying constraints for MetadataDefinitions (aka “stereotypes”) of custom domains..
    Thus:
    1) These operations shall be model-level evaluable IFF the inner predicate that they are using is model-level evaluable.
    2) Reference implementation shall be able to evaluate meta-level assert constraints (that are defined against stereotyped model elements)
    3) A test case in the conformance WG should check that constraints carrying such operations are (at least) mode-level evaluable (and evaluated by the tools that claim conformance);

    Example:
    /**** Some domain library - e.g. UAF *****/

    constraint def StrategicRule;

    abstract metadata def SubjectOfStrategicRule :> Metaobjects::SemanticMetadata{
    :>> annotatedElement: KerML::Type {
    assert constraint onlyStrategicRules {
    ownedFeature
    -> ControlFunctions::select

    { in x; x istype SysML::AssertConstraintUsage}

    -> ControlFunctions::forAll

    { in y : KerML::Type; y.specializes(StrategicRule meta SysML::ConstraintDefinition) }

    }
    }
    }

    /****** User Model ******/

    #SubjectOfStrategicRule MyEnterprise

    { assert constraint strategy1 : StrategicRule; //valid assert constraint strategy2; //invalid - must specialize StrategicRule }
  • Reported: KerML 1.0 — Fri, 10 Oct 2025 14:37 GMT
  • Updated: Fri, 10 Oct 2025 15:41 GMT