-
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 if and only if 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: Sat, 25 Oct 2025 20:33 GMT
KERML11 — ForAll and Exists Should be Model-Level Evaluable
- Key: KERML11-87
- OMG Task Force: Kernel Modeling Language (KerML) 1.1 RTF