TemporalControlConstruct#

Fully qualified class name of the UML model DDI-CDI 1.0: DDICDIModels::DDICDILibrary::Classes::Process::TemporalControlConstruct

Definition#

Declarative control flow operator where the continuation of the execution flow depends on the finalization of one or more preceding activities/steps.

  • XORJoin: Given three activities A, B and C, if XORJoin(A, B) -> C, then C is executed after either A or B finishes executing. XORJoin is sometimes referred to as simple merge.

  • ANDJoin: Given three activities A, B and C, if ANDJoin(A, B) -> C, then C is executed after both A and B finish executing. ANDJoin is sometimes referred to as synchronization.

  • XORSplit: Given three activities A, B and C, if XORSplit(A) -> (B, C), then either B or C is executed, not both, after A finishes executing. XORSplit is sometimes referred to as exclusive choice.

  • ANDSplit: Given three activities A, B and C, if ANDSplit(A) -> (B, C), then both B and C are executed after A finishes executing.

Diagram#

Diagram

Inheritance#

Inheritance
      ᐊ── Process::TemporalControlConstruct

Attributes#

Attributes
Attributes#

Name

Inherited from

Description

Data Type

Multiplicity

Default value

temporalControl

- own class -

TemporalControl is a property of type TemporalControlConstructType. There are four members of this enumeration: AND-split, XOR-split, AND-join and XOR-join.

TemporalOperator

1..1

description

Process::ControlLogic

A description of the control logic in human-readable language.

String

0..1

displayLabel

Process::ControlLogic

A human-readable display label for the object. Supports the use of multiple languages. Repeat for labels with different content, for example, labels with differing length limitations.

LabelForDisplay

0..*

identifier

Process::ControlLogic

Identifier for objects requiring short- or long-lasting referencing and management.

Identifier

0..1

name

Process::ControlLogic

Human understandable name (linguistic signifier, word, phrase, or mnemonic). May follow ISO/IEC 11179-5 naming principles, and have context provided to specify usage.

ObjectName

0..*

workflow

Process::ControlLogic

Reference to the system or standard from which the workflow was taken.

ControlledVocabularyEntry

0..1

Associations#

Associations
Associations#

Direction

Association

Description

Multiplicity of TemporalControlConstruct

Package of Other Class

Other Class

Multiplicity of other class

Aggregation Kind

Inherited from

to

Activity hasInternal ControlLogic

An activity is embedded in the control construct which launches it.

0..*

- own package -

Activity

0..*

none

Process::ControlLogic

from

ControlLogic has InformationFlowDefinition

A control construct has zero or more information flow definitions each of which provides the control construct with zero or more input and output parameters used or produced in the step/sub-step with which it is associated.

0..*

- own package -

InformationFlowDefinition

0..*

shared

Process::ControlLogic

to

ControlLogic hasSubControlLogic ControlLogic

Control logic is a container of control logic which is in turn a container of control logic ad infinitum so that it is able to represent the structure of a program.

0..*

- own package -

ControlLogic

0..1

none

Process::ControlLogic

from

ControlLogic informs ProcessingAgent

Control logic informs a processing agent. The information may be deterministic or non-deterministic.

0..*

- own package -

ProcessingAgent

0..*

none

Process::ControlLogic

from

ControlLogic invokes Activity

Control logic invokes an activity deterministically (either conditionally or unconditionally) or non-derministically (based on temporal constraints or rule-based scheduling).

0..*

- own package -

Activity

1..*

none

Process::ControlLogic

Encodings#

Syntax representations / encodings

All syntax representations except the Canonical XMI are provided as reference points for specific implementations, or for use as defaults if sufficient in the form presented.

Fragment for the class TemporalControlConstruct (entire model as XMI)

 1<packagedElement xmlns:StandardProfile="http://www.omg.org/spec/UML/20131001/StandardProfile"
 2                  xmlns:uml="http://www.omg.org/spec/UML/20131001"
 3                  xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
 4                  xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct"
 5                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct"
 6                  xmi:type="uml:Class">
 7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-ownedComment"
 8                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct-ownedComment"
 9                  xmi:type="uml:Comment">
10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct"/>
11      <body>Definition 
12==========
13Declarative control flow operator where the continuation of the execution flow depends on the finalization of one or more preceding activities/steps.
14
15- XORJoin: Given three activities A, B and C, if XORJoin(A, B) -&gt; C, then C is executed after either A or B finishes executing. XORJoin is sometimes referred to as simple merge.
16- ANDJoin: Given three activities A, B and C, if ANDJoin(A, B) -&gt; C, then C is executed after both A and B finish executing. ANDJoin is sometimes referred to as synchronization.
17- XORSplit: Given three activities A, B and C, if XORSplit(A) -&gt; (B, C), then either B or C is executed, not both, after A finishes executing. XORSplit is sometimes referred to as exclusive choice.
18- ANDSplit: Given three activities A, B and C, if ANDSplit(A) -&gt; (B, C), then both B and C are executed after A finishes executing.</body>
19   </ownedComment>
20   <name>TemporalControlConstruct</name>
21   <generalization xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-generalization"
22                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct-generalization"
23                    xmi:type="uml:Generalization">
24      <general xmi:idref="DDICDIModels-DDICDILibrary-Classes-Process-TemporalConstraints"/>
25   </generalization>
26   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-temporalControl"
27                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct-temporalControl"
28                    xmi:type="uml:Property">
29      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-temporalControl-ownedComment"
30                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct-temporalControl-ownedComment"
31                     xmi:type="uml:Comment">
32         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-temporalControl"/>
33         <body>TemporalControl is a property of type TemporalControlConstructType. There are four members of this enumeration: AND-split, XOR-split, AND-join and XOR-join.</body>
34      </ownedComment>
35      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-temporalControl-lowerValue"
36                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct-temporalControl-lowerValue"
37                   xmi:type="uml:LiteralInteger">
38         <value>1</value>
39      </lowerValue>
40      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Process-TemporalControlConstruct-temporalControl-upperValue"
41                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#TemporalControlConstruct-temporalControl-upperValue"
42                   xmi:type="uml:LiteralUnlimitedNatural">
43         <value>1</value>
44      </upperValue>
45      <name>temporalControl</name>
46      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-Enumerations-TemporalOperator"/>
47   </ownedAttribute>
48</packagedElement>

Fragment for the class TemporalControlConstruct (entire XML Schema)

 1<xs:element name="TemporalControlConstruct"
 2            type="TemporalControlConstructXsdType"
 3            xml:id="TemporalControlConstruct">
 4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::Process::TemporalControlConstruct -->
 5  <xs:annotation>
 6    <xs:documentation>Definition 
 7          ==========
 8          Declarative control flow operator where the continuation of the execution flow depends on the finalization of one or more preceding activities/steps.
 9          
10          - XORJoin: Given three activities A, B and C, if XORJoin(A, B) -&gt; C, then C is executed after either A or B finishes executing. XORJoin is sometimes referred to as simple merge.
11          - ANDJoin: Given three activities A, B and C, if ANDJoin(A, B) -&gt; C, then C is executed after both A and B finish executing. ANDJoin is sometimes referred to as synchronization.
12          - XORSplit: Given three activities A, B and C, if XORSplit(A) -&gt; (B, C), then either B or C is executed, not both, after A finishes executing. XORSplit is sometimes referred to as exclusive choice.
13          - ANDSplit: Given three activities A, B and C, if ANDSplit(A) -&gt; (B, C), then both B and C are executed after A finishes executing.</xs:documentation>
14  </xs:annotation>
15</xs:element>
16<xs:complexType name="TemporalControlConstructXsdType"
17                xml:id="TemporalControlConstructXsdType">
18  <xs:annotation>
19    <xs:documentation>Definition 
20          ==========
21          Declarative control flow operator where the continuation of the execution flow depends on the finalization of one or more preceding activities/steps.
22          
23          - XORJoin: Given three activities A, B and C, if XORJoin(A, B) -&gt; C, then C is executed after either A or B finishes executing. XORJoin is sometimes referred to as simple merge.
24          - ANDJoin: Given three activities A, B and C, if ANDJoin(A, B) -&gt; C, then C is executed after both A and B finish executing. ANDJoin is sometimes referred to as synchronization.
25          - XORSplit: Given three activities A, B and C, if XORSplit(A) -&gt; (B, C), then either B or C is executed, not both, after A finishes executing. XORSplit is sometimes referred to as exclusive choice.
26          - ANDSplit: Given three activities A, B and C, if ANDSplit(A) -&gt; (B, C), then both B and C are executed after A finishes executing.</xs:documentation>
27  </xs:annotation>
28  <xs:complexContent>
29    <xs:extension base="TemporalConstraintsXsdType">
30      <xs:sequence>
31        <xs:element name="temporalControl"
32                    type="TemporalOperatorXsdType"
33                    minOccurs="1"
34                    maxOccurs="1"
35                    xml:id="TemporalControlConstruct-temporalControl">
36          <xs:annotation>
37            <xs:documentation>TemporalControl is a property of type TemporalControlConstructType. There are four members of this enumeration: AND-split, XOR-split, AND-join and XOR-join.</xs:documentation>
38          </xs:annotation>
39        </xs:element>
40      </xs:sequence>
41    </xs:extension>
42  </xs:complexContent>
43</xs:complexType>

Fragment for the class TemporalControlConstruct (entire JSON Schema)

  1"cls-TemporalControlConstruct": {
  2  "description": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/TemporalControlConstruct",
  3  "type": "object",
  4  "properties": {
  5    "@context": {
  6      "$ref": "#/defs/at-context"
  7    },
  8    "@id": {
  9      "type": "string",
 10      "format": "iri-reference"
 11    },
 12    "@type": {
 13      "const": "TemporalControlConstruct"
 14    },
 15    "temporalControl": {
 16      "$comment": "cardinality 1..1 – from cdi:TemporalControlConstruct",
 17      "$ref": "#/defs/enum-TemporalOperator"
 18    },
 19    "description": {
 20      "$comment": "cardinality 0..1 – from cdi:ControlLogic",
 21      "$ref": "#/defs/xsd:string"
 22    },
 23    "displayLabel": {
 24      "$comment": "cardinality 0..-1 – from cdi:ControlLogic",
 25      "if": { "type": "array" },
 26      "then": { "items": { "$ref": "#/defs/dt-LabelForDisplay" } },
 27      "else": { "$ref": "#/defs/dt-LabelForDisplay" }
 28    },
 29    "identifier": {
 30      "$comment": "cardinality 0..1 – from cdi:ControlLogic",
 31      "$ref": "#/defs/dt-Identifier"
 32    },
 33    "name": {
 34      "$comment": "cardinality 0..-1 – from cdi:ControlLogic",
 35      "if": { "type": "array" },
 36      "then": { "items": { "$ref": "#/defs/dt-ObjectName" } },
 37      "else": { "$ref": "#/defs/dt-ObjectName" }
 38    },
 39    "workflow": {
 40      "$comment": "cardinality 0..1 – from cdi:ControlLogic",
 41      "$ref": "#/defs/dt-ControlledVocabularyEntry"
 42    },
 43    "has_InformationFlowDefinition": {
 44      "description": "ControlLogic_has_InformationFlowDefinition",
 45      "$comment": "cardinality 0..-1",
 46      "anyOf": [
 47        {
 48          "$ref": "#/defs/target-InformationFlowDefinition"
 49        },
 50        {
 51          "type": "array",
 52          "items": {
 53            "$ref": "#/defs/target-InformationFlowDefinition"
 54          }
 55        }
 56      ]
 57    },
 58    "hasSubControlLogic": {
 59      "description": "ControlLogic_hasSubControlLogic_ControlLogic",
 60      "$comment": "cardinality 0..-1",
 61      "anyOf": [
 62        {
 63          "$ref": "#/defs/target-ControlLogic"
 64        },
 65        {
 66          "type": "array",
 67          "items": {
 68            "$ref": "#/defs/target-ControlLogic"
 69          }
 70        }
 71      ]
 72    },
 73    "informs": {
 74      "description": "ControlLogic_informs_ProcessingAgent",
 75      "$comment": "cardinality 0..-1",
 76      "anyOf": [
 77        {
 78          "$ref": "#/defs/target-ProcessingAgent"
 79        },
 80        {
 81          "type": "array",
 82          "items": {
 83            "$ref": "#/defs/target-ProcessingAgent"
 84          }
 85        }
 86      ]
 87    },
 88    "invokes": {
 89      "description": "ControlLogic_invokes_Activity",
 90      "$comment": "cardinality 1..-1",
 91      "anyOf": [
 92        {
 93          "$ref": "#/defs/target-Activity"
 94        },
 95        {
 96          "type": "array",
 97          "items": {
 98            "$ref": "#/defs/target-Activity"
 99          }
100        }
101      ]
102    },
103    "hasInternal_OF_Activity": {
104      "description": "Activity_hasInternal_ControlLogic",
105      "$comment": "cardinality 0..-1",
106      "anyOf": [
107        {
108          "$ref": "#/defs/target-Activity"
109        },
110        {
111          "type": "array",
112          "items": {
113            "$ref": "#/defs/target-Activity"
114          }
115        }
116      ]
117    },
118    "hasSubControlLogic_OF_ControlLogic": {
119      "description": "ControlLogic_hasSubControlLogic_ControlLogic",
120      "$comment": "cardinality 0..1",
121      "$ref": "#/defs/target-ControlLogic"
122    },
123    "sameAs": {
124      "$ref": "#/defs/owl:sameAs"
125    }
126  },
127  "required": ["temporalControl","invokes","@type"],
128  "additionalProperties": false
129},
130"target-TemporalControlConstruct": {
131  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/TemporalControlConstruct",
132  "anyOf": [
133    { "$ref": "#/defs/cls-TemporalControlConstruct" },
134    { "type": "string", "format": "iri-reference" }
135  ]
136},

Fragment for the class TemporalControlConstruct (main ontology)

 1# class TemporalControlConstruct
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::Process::TemporalControlConstruct
 3cdi:TemporalControlConstruct
 4  a rdfs:Class, owl:Class, ucmis:Class;
 5  rdfs:label "TemporalControlConstruct";
 6  rdfs:comment "Definition \n==========\nDeclarative control flow operator where the continuation of the execution flow depends on the finalization of one or more preceding activities/steps.\n\n- XORJoin: Given three activities A, B and C, if XORJoin(A, B) -> C, then C is executed after either A or B finishes executing. XORJoin is sometimes referred to as simple merge.\n- ANDJoin: Given three activities A, B and C, if ANDJoin(A, B) -> C, then C is executed after both A and B finish executing. ANDJoin is sometimes referred to as synchronization.\n- XORSplit: Given three activities A, B and C, if XORSplit(A) -> (B, C), then either B or C is executed, not both, after A finishes executing. XORSplit is sometimes referred to as exclusive choice.\n- ANDSplit: Given three activities A, B and C, if ANDSplit(A) -> (B, C), then both B and C are executed after A finishes executing."@en;
 7  rdfs:subClassOf cdi:TemporalConstraints;
 8.
 9
10cdi:TemporalControlConstruct-temporalControl
11  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
12  rdfs:label "temporalControl";
13  rdfs:comment "TemporalControl is a property of type TemporalControlConstructType. There are four members of this enumeration: AND-split, XOR-split, AND-join and XOR-join."@en;
14  rdfs:domain cdi:TemporalControlConstruct;
15  rdfs:range cdi:TemporalOperator;
16.

Fragment for the class TemporalControlConstruct (entire JSON-LD)

 1{
 2  "@context": [
 3    "TemporalConstraints.jsonld",
 4    {
 5      "cdi": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/",
 6      "xsd": "http://www.w3.org/2001/XMLSchema#",
 7
 8      "temporalControl": {
 9        "@id": "cdi:TemporalControlConstruct-temporalControl",
10        "@type": "@vocab",
11        "@context": {
12          "AndJoin": "cdi:AndJoin"
13      ,    "AndSplit": "cdi:AndSplit"
14      ,    "XorJoin": "cdi:XorJoin"
15      ,    "XorSplit": "cdi:XorSplit"
16        }
17      },
18      
19      " comment ": "tag:json-should-support-trailing-commas"
20    }
21  ],
22  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2025-08-29 14:34:54.",
23  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::Process::TemporalControlConstruct"
24}

Fragment for the class TemporalControlConstruct (entire SHACL - Shapes Constraint Language)

 1# class TemporalControlConstruct
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::Process::TemporalControlConstruct
 3<#TemporalControlConstruct> a sh:NodeShape;
 4    sh:targetClass cdi:TemporalControlConstruct;
 5	sh:message "See http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/TemporalControlConstruct";
 6	sh:closed true;
 7	sh:ignoredProperties ( owl:sameAs );
 8    sh:property [
 9			sh:path rdf:type;
10			sh:in (   cdi:TemporalControlConstruct
11			 ) ;
12    ];
13    # attributes
14    sh:property <#TemporalControlConstruct-temporalControl>;
15    # associations from TemporalControlConstruct
16    # associations to TemporalControlConstruct
17
18    # ---- superclass: TemporalConstraints
19    # attributes
20    # associations from TemporalConstraints
21    # associations to TemporalConstraints
22
23    # ---- superclass: NonDeterministicDeclarative
24    # attributes
25    # associations from NonDeterministicDeclarative
26    # associations to NonDeterministicDeclarative
27
28    # ---- superclass: ControlLogic
29    # attributes
30    sh:property <#ControlLogic-description>;
31    sh:property <#ControlLogic-displayLabel>;
32    sh:property <#ControlLogic-identifier>;
33    sh:property <#ControlLogic-name>;
34    sh:property <#ControlLogic-workflow>;
35    # associations from ControlLogic
36    sh:property <#ControlLogic_has_InformationFlowDefinition>;
37    sh:property <#ControlLogic_hasSubControlLogic_ControlLogic>;
38    sh:property <#ControlLogic_informs_ProcessingAgent>;
39    sh:property <#ControlLogic_invokes_Activity>;
40    # associations to ControlLogic
41    sh:property <#rev_Activity_hasInternal_ControlLogic>;
42    sh:property <#rev_ControlLogic_hasSubControlLogic_ControlLogic>;
43
44
45
46
47
48
49
50
51
52.
53
54<#TemporalControlConstruct-temporalControl> a sh:PropertyShape ;
55    sh:path cdi:TemporalControlConstruct-temporalControl;
56    sh:node <#TemporalOperator>
57    ;
58    sh:minCount 1;
59    sh:maxCount 1;
60.

Fragment for the class TemporalControlConstruct (entire ShEx - Shape Expressions)

1# class TemporalControlConstruct
2# based on the UML class DDICDIModels::DDICDILibrary::Classes::Process::TemporalControlConstruct
3cdi:TemporalControlConstructShape CLOSED {
4	a [cdi:TemporalControlConstruct];
5	cdi:TemporalControlConstruct-temporalControl	@cdi:TemporalOperatorShape;
6		&cdi:TemporalConstraintsProperties;
7	}