blob: 63ccfde358024d29518b8436bae91081477a9b6e [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
<uml:Profile xmi:id="_Data-ConstraintProfile" name="ConstraintProfile" URI="http://www.omg.org/spec/AML/20150501/ConstraintProfile.xmi" metamodelReference="_Data-ConstraintProfile-packageImport-1">
<ownedComment xmi:id="_Data-ConstraintProfile-ownedComment">
<body>The constraint profile defines the modeling elements that may be applied to a reference models and archetypes. These elements “constrain” the target model narrowing the semantics and syntax. These elements are drawn from ADL 2.0 and ISO 13606.</body>
</ownedComment>
<packageImport xmi:id="_Data-ConstraintProfile-packageImport-1">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
</packageImport>
<packageImport xmi:id="_18_0_2aa0151_1431659404287_721712_5722">
<importedPackage xmi:type="uml:Profile" href="ReferenceModelProfile.uml#_Data-ReferenceModelProfile"/>
</packageImport>
<packageImport xmi:id="_18_0_2aa0151_1431659416821_241067_5723">
<importedPackage xmi:type="uml:Profile" href="TerminologyProfile.uml#_Data-TerminologyProfile"/>
</packageImport>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint" name="ComplexObjectConstraint">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A «ComlexObjectConstraint» is a Classifier constraining (directly or indirectly) a Reference Model Classifier.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A ComplexObjectConstraint may constrain the existence, cardinality and/or possible values of any or all of the constrained Reference Model Classifier attributes.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A ComplexObjectConstraint maps to an [AOM] C_COMPLEX_OBJECTl.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>It defines constraints on a Reference Model Classifier.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The constrained Reference Model Classifier is modeled as the general Classifier for the ComplexObjectConstraint (which corresponds to the C_OBJECT/rm_type_name property in the [AOM] Model).&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The owned properties of a ComplexObjectConstraint correspond to the attributes of a C_COMPLEX_OBJECT (which are C_ATTRIBUTEs in the [AOM] model).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Each owned Property (i.e., C_ATTRIBUTE) constrains a Reference Model attribute (whose name corresponds to the C_ATTRIBUTE/rm_attr_name in [AOM]).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The constrained Reference Model attribute is modeled in UML using either a subsetsProperty or redefinesProperty .&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The constraining Property is subject to the rules for subsetting/redefinition within UML, which in general means it may have a multiplicity range within the constrained Property's multiplicity range, and the type of the Property must be a valid subset of the constrained Property's type.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A Reference Model Property may have multiple subsetting/redefining Properties.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Together, the Properties define an ordering for contained instances, and must overall conform to multiplicity constraints of the Reference Model Property.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The types of constraining Properties will generally be archetype-specific subtypes of corresponding Reference Model types referenced by the Reference Model Properties.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In the case of primitive types, the archetype model will generally reference the same type referenced by the Reference Model (e.g., string, integer, etc.).&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In addition to the multiplicity and type constraints, each constraining Property may express additional constraints in the form of UML Constraints.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The UML Constraint will be owned by the Classifier owning the Property, but will specifically be defined to constrain the Property.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The specification of the Constraint is a ValueSpecification, typically in the form of a UML Expression which evaluates to the required Boolean result of a Constraint Specification.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A UML Expression consists of a symbol (i.e., an operator) and a set of operands (which are also ValueSpecifications).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The various expressions used in [AOM] may be represented in the form of these expression trees.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] concept of default_value for a Classifier is modeled as the defaultValue for the Property typed by the Classifier.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] concept of assumed_value for a Classifier is modeled as a constraint containing an expression whose symbol is 'assumed_value' and whose operand is the ValueSpecification for the Classifier (e.g., a LiteralSpecification or an InstanceValue whose instance is an EnumerationLiteral).&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] node_id is modeled as a tag value on the inherited ObjectConstraint Stereotype and constitutes a reference to a term defined in the Archetype Terminology model.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] concept of is_frozen is modeled in AML as isLeaf.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The overall structure of an Archetype can be described as a containment structure consisting of [AOM] C_COMPLEX_OBJECT==&amp;gt;C_ATTRIBUTE==&amp;gt;C_COMPLEX_OBJECT...&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Normally the aggregation kind of each Property (C_ATTRIBUTE ) is composite.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Within [AOM], there is a notion of a &amp;quot;Proxy&amp;quot;, which is basically a reference to a C_COMPLEX_OBJECT (instead of a composite).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In UML, this is modeled at the Property level using an aggregation of &amp;quot;none&amp;quot; (instead of composite).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&amp;#160; T&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>hus, in UML the [AOM] C_COMPLEX_OBJECT_PROXY is not explicitly part of the AML model (but is instead mapped to the aggregation of the Property).&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A ComplexObjectConstraint may represent the concept of an [AOM] C_ARCHETYPE_ROOT. When an attribute has a type which is a ComplexObjectConstraint in another Archetype Package, there is an implicit C_ARCHETYPE_ROOT with appropriate archetype_id.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A Property owned by a ComplexObjectConstraint may express ownership of the [AOM] concept of ARCHETYPE_SLOT as a UML Constraint on that Property wherein the specification is a UML Expression with an operand of &amp;quot;and&amp;quot;, &amp;quot;includes&amp;quot;, or &amp;quot;excludes&amp;quot;.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-singleParent" name="singleParent">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-singleParent-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Every constraint must specialize exactly one Class.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-singleParent-specification">
<language>OCL</language>
<body>self.base_Classifier.generalization->size() = 1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-allAttributeConstraints" name="allAttributeConstraints">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-allAttributeConstraints-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>All owned attributes are attribute constraints. &amp;#160;Each must subset or redefine a reference model property. &amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-allAttributeConstraints-specification">
<language>OCL</language>
<body> self.namespace.stereotypedBy('ComplexObjectConstraint')
implies
((self.subsettedProperty->notEmpty()) or( self.redefinedProperty->notEmpty()))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VARCN-_archetype_concept_validity" name="[AOM] VARCN- archetype concept validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VARCN-_archetype_concept_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The node_id of the root object of the archetype must be of the form id1{.1}*, where the number of ‘.1’ components equals the specialization depth, and must be defined in the terminology.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VARCN-_archetype_concept_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.supplierDependency->exists(d|d.stereotypedBy('ArchetypeDefinition'))
implies
self.id.oclAsType(EnumerationLiteral)->forAll(e|e.name.match('id1(\\.1)*')) </body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCARM-_attribute_name_reference_model_validity" name="[AOM] VCARM- attribute name reference model validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCARM-_attribute_name_reference_model_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An attribute name introducing an attribute constraint block must be defined in the underlying information model as an attribute (stored or computed) of the type which introduces the enclosing object block.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCARM-_attribute_name_reference_model_validity-specification">
<language>English</language>
<body>This [AOM] Validation Rule is enforced by UML type constraints for subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCAEX-_archetype_attribute_reference_model_existence_conformance" name="[AOM] VCAEX- archetype attribute reference model existence conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCAEX-_archetype_attribute_reference_model_existence_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The existence of an attribute must conform, i.e. be the same or narrower, to the existence of the corresponding attribute in the underlying information model.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCAEX-_archetype_attribute_reference_model_existence_conformance-specification">
<language>English</language>
<body>The [AOM] validation rule is enforced by UML validation rules for subsetted or redefined properties.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCAM-_archetype_attribute_reference_model_multiplicity_conformance" name="[AOM] VCAM- archetype attribute reference model multiplicity conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCAM-_archetype_attribute_reference_model_multiplicity_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The multiplicity, i.e. whether an attribute is multiply- or single-valued, of an attribute must conform to that of the corresponding attribute in the underlying information model.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCAM-_archetype_attribute_reference_model_multiplicity_conformance-specification">
<language>English</language>
<body>This validation rule is enforced by UML Constraints on subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VDIFV-_archetype_attribute_differential_path_validity_" name="[AOM] VDIFV- archetype attribute differential path validity:">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VDIFV-_archetype_attribute_differential_path_validity_-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An archetype may only have a differential path if it is specialized.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VDIFV-_archetype_attribute_differential_path_validity_-specification">
<language>English</language>
<body>An archetype may only have a differential path if it is specialized.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VDIFP-_specialised_archetype_attribute_differential_path_validity" name="[AOM] VDIFP- specialised archetype attribute differential path validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VDIFP-_specialised_archetype_attribute_differential_path_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If an attribute constraint has a differential path, the path must exist in the flat parent, and also be valid with respect to the reference model, i.e. in the sense that it corresponds to a legal potential construction of objects.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VDIFP-_specialised_archetype_attribute_differential_path_validity-specification">
<language>English</language>
<body>If an attribute constraint has a differential path,
the path must exist in the flat parent,
and also be valid with respect to the reference model,
i.e. in the sense that it corresponds to a legal potential construction of objects.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSANCE-_specialised_archetype_attribute_node_existence_conformance" name="[AOM] VSANCE- specialised archetype attribute node existence conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSANCE-_specialised_archetype_attribute_node_existence_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The existence of a redefined attribute node in a specialized archetype must conform to the existence of the corresponding node in the flat parent archetype, by having an identical range, or a range wholly contained by the latter.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSANCE-_specialised_archetype_attribute_node_existence_conformance-specification">
<language>English</language>
<body>This [AOM] Validation Rule is enforced by UML type and cardinality constraints associated with subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSAM-_specialised_archetype_attribute_multiplicity_conformance" name="[AOM] VSAM- specialised archetype attribute multiplicity conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSAM-_specialised_archetype_attribute_multiplicity_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The multiplicity, i.e. whether an attribute is multiply- or single-valued, of a redefined attribute must conform to that of the corresponding attribute in the parent archetype.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSAM-_specialised_archetype_attribute_multiplicity_conformance-specification">
<language>English</language>
<body>The [AOM] validation rule is enforced by UML multiplicity constraints applicable to subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACSO-_single-valued_attribute_child_object_occurrences_validity" name="[AOM] VACSO- single-valued attribute child object occurrences validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACSO-_single-valued_attribute_child_object_occurrences_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The occurrences of a child object of a single-valued attribute cannot have an upper limit greater than 1.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] validation rule is realized by UML redefinition and/or property subsetting constraints. &amp;#160;We verify in this UML Constraint that Properties within a &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>ComplexObjectConstraint&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>» &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>are indeed redefined or subsetted.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACSO-_single-valued_attribute_child_object_occurrences_validity-specification">
<language>OCL</language>
<body>self.namespace.stereotypedBy('ComplexObjectConstraint')
implies(
self.subsettedProperty->notEmpty() or self.redefinedProperty->notEmpty()
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACMCU-_cardinality_occurrences_upper_bound_validity" name="[AOM] VACMCU- cardinality/occurrences upper bound validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACMCU-_cardinality_occurrences_upper_bound_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>When a cardinality with a finite upper bound is declared on an attribute, for all immediate child objects for which an occurrences constraint is stated, the occurrences must either have an open upper bound (i.e. n..*) which is interpreted as the maximum value allowed within the cardinality, or else a finite upper bound which is = the cardinality upper bound.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACMCU-_cardinality_occurrences_upper_bound_validity-specification">
<language>English</language>
<body>The [AOM] cardinality attribute of C_ATTRIBUTE is derived in UML from the set of sibling Properties subsetting/redefining a common Reference Model Property.
The derivation is implemented as part of the AML-UML to [AOM] QVT transformation.
The derived cardinality is computed from the sum of the lower and sum of the upper multiplicity ranges for the related Properties.
The collection type characteristics are also derived from the related Properties.
In summary, the [AOM] validation rule is enforced during provisioning from AML-UML to [AOM].
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACMCO-_cardinality_occurrences_orphans" name="[AOM] VACMCO- cardinality/occurrences orphans">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACMCO-_cardinality_occurrences_orphans-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>It must be possible for at least one instance of one optional child object (i.e. an object for which the occurrences lower bound is 0) and one instance of every mandatory child object (i.e. object constraints for which the occurrences lower bound is &amp;gt;= 1) to be included within the cardinality range.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACMCO-_cardinality_occurrences_orphans-specification">
<language>OCL</language>
<body>self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
.subsettedProperty->union(self.redefinedProperty)
->select(r|r.upper>0)
->forAll(refProperty|
self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
.lower->sum()&lt;=(refProperty.upper-1)
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCACA-_archetype_attribute_reference_model_cardinality_conformance" name="[AOM] VCACA- archetype attribute reference model cardinality conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCACA-_archetype_attribute_reference_model_cardinality_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The cardinality of an attribute must conform, i.e. be the same or narrower, to the cardinality of the corresponding attribute in the underlying information model.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCACA-_archetype_attribute_reference_model_cardinality_conformance-specification">
<language>English</language>
<body>This cardinality rule is enforced by UML constraints on subsetted and/or redefined properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_WACMCL-_cardinality_occurrences_lower_bound_validity" name="[AOM] WACMCL- cardinality/occurrences lower bound validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_WACMCL-_cardinality_occurrences_lower_bound_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>When a cardinality with a finite upper bound is stated on an attribute, for all immediate child objects for which an occurrences constraint is stated, the sum of occurrences lower bounds should be lower than the cardinality upper limit.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_WACMCL-_cardinality_occurrences_lower_bound_validity-specification">
<language>OCL</language>
<body>self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
.subsettedProperty->union(self.redefinedProperty)
->select(r|r.upper>0)
->forAll(refProperty|
self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
.lower->sum()&lt;=refProperty.upper
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSANCC-_specialised_archetype_attribute_node_cardinality_conformance" name="[AOM] VSANCC- specialised archetype attribute node cardinality conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSANCC-_specialised_archetype_attribute_node_cardinality_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The cardinality of a redefined (multiply-valued) attribute node in a specialized archetype, must conform to the cardinality of the corresponding node in the flat parent archetype by either being identical, or being wholly contained by the latter.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSANCC-_specialised_archetype_attribute_node_cardinality_conformance-specification">
<language>English</language>
<body>This [AOM] validation rule is enforced by UML constraints related to cardinality of subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCATU-_attribute_uniqueness" name="[AOM] VCATU- attribute uniqueness">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCATU-_attribute_uniqueness-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Sibling attributes occurring within an object node must be uniquely named with respect to each other, in the same way as for class definitions in an object reference model.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VCATU-_attribute_uniqueness-specification">
<language>English</language>
<body>The [AOM] Validation Rule is enforced by UML Namespace constraints for names.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VUNT-_use_node_reference_model_type_validity" name="[AOM] VUNT- use_node reference model type validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VUNT-_use_node_reference_model_type_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The Reference Model type mentioned in an [AOM] C_COMPLEX_OBJECT_PROXY node must be the same as or a supertype (according to the Reference Model) of the Reference Model type of the node referred to.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VUNT-_use_node_reference_model_type_validity-specification">
<language>English</language>
<body>The [AOM] validation rule is enforced by UML type constraints related to subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VUNP-_use_node_path_validity" name="[AOM] VUNP- use_node path validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VUNP-_use_node_path_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The path mentioned in a use_node statement must refer to an object node defined elsewhere in the same archetype or any of its specialization parent archetypes, that is not itself an internal reference node, and which carries a node identifier if one is needed at the reference point.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Note that the AML representation for a use_node is a &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>«&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>ComplexObjectConstraint&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>» &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>owned property which has aggregation=none. &amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VUNP-_use_node_path_validity-specification">
<language>OCL</language>
<body>(self.namespace.stereotypedBy('ComplexObjectConstraint') and self.aggregation=AggregationKind::none)
implies(
(self.type.getNearestPackage()=self.getNearestPackage())
or self.getNearestPackage().packageImport.importedPackage->includes(self.type.getNearestPackage())
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSUNT-_use_node_specialisation_parent_validity" name="[AOM] VSUNT- use_node specialisation parent validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSUNT-_use_node_specialisation_parent_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] C_COMPLEX_OBJECT_PROXY node may be redefined in a specialized archetype by another C_COMPLEX_OBJECT_PROXY (e.g. in order to redefine occurrences), or by a C_COMPLEX_OBJECT structure that legally redefines the target C_COMPLEX_OBJECT node referred to by the reference.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSUNT-_use_node_specialisation_parent_validity-specification">
<language>English</language>
<body>A proxy is modeled using a Property aggregation of none.
The aggregation of a redefined/subsetted Property, and consequently whether or not the node is a Proxy, may be different than the archetype Property.
Therefore, it is permitted to use a proxy or regular node in a specialized archetype.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VOBAV-_object_node_assumed_value_validity" name="[AOM] VOBAV- object node assumed value validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VOBAV-_object_node_assumed_value_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The value of an assumed value must fall within the value space defined by the constraint to which it is attached.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VOBAV-_object_node_assumed_value_validity-specification">
<language>English</language>
<body>The value of an assumed value must fall within the value space defined by the constraint to which it is attached.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACDF-_constraint_code_validity" name="[AOM] VACDF- constraint code validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACDF-_constraint_code_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Each value set code (ac-code) used in a term constraint in the archetype definition must be defined in the term_definitions part of the terminology of the current archetype.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VACDF-_constraint_code_validity-specification">
<language>OCL</language>
<body>(self._'context'.stereotypedBy('ComplexObjectConstraint')
and self.specification.oclIsKindOf(Expression)
and (self.specification.oclAsType(Expression).symbol='=')
)
implies
self.specification.oclAsType(Expression).operand
->forAll(o|o.oclIsKindOf(InstanceValue)
and o.oclAsType(InstanceValue).instance.stereotypedBy('ArchetypeTerm')
and o.oclAsType(InstanceValue).instance.getNearestPackage().nestingPackage.nestingPackage=self.getNearestPackage()
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSONPI-_specialised_archetype_prohibited_object_node_[AOM]_node_id_validity" name="[AOM] VSONPI- specialised archetype prohibited object node [AOM] node id validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSONPI-_specialised_archetype_prohibited_object_node_[AOM]_node_id_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A redefined object node in a specialized archetype with occurrences matching {0} must have exactly the same node id as the node in the flat parent being redefined.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_VSONPI-_specialised_archetype_prohibited_object_node_[AOM]_node_id_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.attribute->select(a|a.upper=0).type->forAll(t|
t.oclAsType(Classifier).general
->forAll(g|g.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id
->forAll(e|e=t.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first())
)
)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_OBJECT_Invariant_Rm_type_name_valid" name="[AOM] C_OBJECT:Invariant:Rm_type_name_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_OBJECT_Invariant_Rm_type_name_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An [AOM] rm_type_name maps to the name of the Reference Model Classifier which is the supertype of an Archetype Classifier.&amp;#160;&amp;#160;The Reference Model Classifier must have a non-empty name.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_OBJECT_Invariant_Rm_type_name_valid-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|not(g.name.oclIsUndefined()) and (g.name&lt;>''))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Invariant_Prohibited_validity" name="[AOM] C_COMPLEX_OBJECT:Invariant:Prohibited_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Invariant_Prohibited_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman,serif;&quot;>A UML Property &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman,serif;&quot;>with upper multiplicity of 0 is prohibited from having any value.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Invariant_Prohibited_validity-specification">
<language>English</language>
<body>This Constraint is enforced by UML semantic for a Multiplicity upper bound of 0.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Invariant_Any_allowed_validity" name="[AOM] C_COMPLEX_OBJECT:Invariant:Any_allowed_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Invariant_Any_allowed_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An [AOM] C_COMPLEX_OBJECT/attributes which is empty maps to a UML Property whose type is a Reference Model Classifier (i.e., no additional Constraints on value).&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Invariant_Any_allowed_validity-specification">
<language>English</language>
<body>The invariant is definitional; it defines representation for a Property which has no value constraints (beyond the Reference Model type).</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_InvariantAttributes_valid" name="[AOM] C_COMPLEX_OBJECT:InvariantAttributes_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_InvariantAttributes_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] C_COMPLEX_OBJECT/attributes attribute must be defined. &amp;#160;This is mapped to AML ownedAttributes, which is always defined (but may be empty).&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_InvariantAttributes_valid-specification">
<language>English</language>
<body>The [AOM] invariant is always satisfied since its mapping to UML is ownedAttributes, which is a collection and is never oclIsUndefined().</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Tuples_valid" name="[AOM] C_COMPLEX_OBJECT:Tuples_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Tuples_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-size:10pt; font-weight:normal; font-family:Times New Roman; color:#000000;&quot;>The [AOM] C_COMPLEX_OBJECT/attribute_tuples is a list of C_ATTRIBUTE_TUPLE. &amp;#160;Each member of C_ATTRIBUTE_TUPLE must &amp;#160;be a member of &lt;/span>&lt;span style=&quot;font-size:10pt; font-weight:normal; font-family:Times New Roman; color:#000000;&quot;>C_COMPLEX_OBJECT/attributes.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-size:10pt; font-weight:normal; font-family:Times New Roman; color:#000000;&quot;>The [AOM] &lt;/span>&lt;span style=&quot;font-size:10pt; font-weight:normal; font-family:Times New Roman; color:#000000;&quot;>C_ATTRIBUTE_TUPLE maps to a UML Classifier nested inside this Complex Object, and specializes this Complex Object. &amp;#160;Each ownedAttribute of the nested Classifier must subset or redefine a Property owned by this Complex Object.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_COMPLEX_OBJECT_Tuples_valid-specification">
<language>OCL</language>
<body> self.base_Classifier.oclIsKindOf(Class)
implies
self.base_Classifier.oclAsType(Class).nestedClassifier
->select(n|n.general->exists(g|g=self.base_Classifier)).attribute
->forAll(a|a.subsettedProperty->forAll(s|s.namespace=self.base_Classifier)and a.redefinedProperty->forAll(s|s.namespace=self.base_Classifier))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_PRIMITIVE_OBJECT_Invariant_Representation_validity" name="[AOM] C_PRIMITIVE_OBJECT:Invariant:Representation_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_PRIMITIVE_OBJECT_Invariant_Representation_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] C_PRIMITIVE_OBJECT is mapped to an AML Property which is constrained by a UML Constraint and whose type resolves to a recognized AML Primitive Type (resides in either the UML Type Library or the XML Type Library). &amp;#160;Resolving a type may include navigating the &amp;lt;&amp;lt;MappedDataType&amp;gt;&amp;gt; Abstraction from a Reference Model type to one of the AML Primitive Types.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_PRIMITIVE_OBJECT_Invariant_Representation_validity-specification">
<language>OCL</language>
<body>(
self.namespace.stereotypedBy('ComplexObjectConstraint')
and (
(self.type.namespace.name='PrimitiveTypes')
or(self.type.namespace.name='XMLPrimitiveTypes')
or self.type.clientDependency->select(d|d.stereotypedBy('MappedDataType')).supplier->exists(t|(t.namespace.name='PrimitiveTypes')or(t.namespace.name='XMLPrimitiveTypes'))
)
)
implies
self.namespace.ownedRule->notEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_PRIMITIVE_OBJECT_Invariant_Assumed_value_valid" name="[AOM] C_PRIMITIVE_OBJECT:Invariant:Assumed_value_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_PRIMITIVE_OBJECT_Invariant_Assumed_value_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] C_PRIMITIVE_OBJECT/assumed_value maps to an AML Constraint on a Property whose specification includes a type-specific declaration of the assumed value. &amp;#160;The assumed value is a ValueSpecification which should be typed in accordance with the type of the Property and should have a value in conformance with the constraints expressed on that Property's Type.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_PRIMITIVE_OBJECT_Invariant_Assumed_value_valid-specification">
<language>English</language>
<body>The [AOM] C_PRIMITIVE_OBJECT/assumed_value maps to an AML Constraint on a Property whose specification includes a type-specific declaration of the assumed value.  
The assumed value is a ValueSpecification which should be typed in accordance with the type of the Property and should have a value in conformance with the constraints expressed on that Property's Type.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_BOOLEAN_Invariant_Binary_consistency" name="[AOM] C_BOOLEAN:Invariant:Binary_consistency">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_BOOLEAN_Invariant_Binary_consistency-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A Constraint on a Boolean typed Property is expressed as an &amp;quot;or&amp;quot; of LiteralBooleans.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_BOOLEAN_Invariant_Binary_consistency-specification">
<language>OCL</language>
<body>(
self.constrainedElement.oclIsKindOf(Property)
and self.constrainedElement.oclAsType(Property).namespace.stereotypedBy('ComplexObjectConstraint')
and (self.constrainedElement.oclAsType(Property).type.name='Boolean')
and self.specification.oclIsKindOf(Expression)
and ( self.specification.oclAsType(Expression).symbol='or')
)
implies(
self.specification.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(LiteralBoolean))
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_BOOLEAN_Invariant_Prototype_value_consistency" name="[AOM] C_BOOLEAN:Invariant:Prototype_value_consistency">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_BOOLEAN_Invariant_Prototype_value_consistency-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>[AOM] P_C_BOOLEAN/constraint maps to the operands of an 'or' Expression, each operand being a LiteralBoolean, and each operand having a unique value.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_BOOLEAN_Invariant_Prototype_value_consistency-specification">
<language>English</language>
<body>Each operand of an 'or' Expression must be a unique value.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_DATE_Invariant_Pattern_validity" name="[AOM] C_DATE:Invariant:Pattern_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_DATE_Invariant_Pattern_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An [AOM] C_DATE/pattern_constraint (if present) maps to a the first operand of a 'P_C_DATE' Expression, where that first operand is a LiteralString named 'pattern_constraint' and its value must conform to the ISO 8601 date constraint pattern. &lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_DATE_Invariant_Pattern_validity-specification">
<language>English</language>
<body>An [AOM] C_DATE/pattern_constraint (if present) maps to a the first operand of a 'P_C_DATE' Expression,
where that first operand is a LiteralString named 'pattern_constraint' and its value must conform to the ISO 8601 date constraint pattern.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_TERMINOLOGY_CODE_Invariant_Terminology_id_validity" name="[AOM] C_TERMINOLOGY_CODE:Invariant:Terminology_id_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_TERMINOLOGY_CODE_Invariant_Terminology_id_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;color:#000000; font-family:Times New Roman; font-weight:normal; font-size:10pt;&quot;>An [AOM] C_TERMINOLOGY_CODE/constraint maps to a UML Constraint. The Constraint is owned by a &amp;#160;Complex Object Constraint Classifier, but constrains a Property. &amp;#160;The Constraint has a specification of a &amp;quot;=&amp;quot; Expression. &amp;#160;The Expression must have an operand which is an InstanceValue. &amp;#160;The InstanceValue has an instance which must be an Archetype Term from the Archetype's Identifier Definition Enumeration.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_C_TERMINOLOGY_CODE_Invariant_Terminology_id_validity-specification">
<language>OCL</language>
<body>self
->forAll(constraint|
constraint.namespace.stereotypedBy('ComplexObjectConstraint')
and constraint.constrainedElement->forAll(ce|ce.oclIsKindOf(Property))
and constraint.specification.oclIsKindOf(Expression)
and (constraint.specification.oclAsType(Expression).symbol='=')
and constraint.specification.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(InstanceValue))
)
implies
self.specification.oclAsType(Expression).operand->forAll(o|o.oclAsType(InstanceValue).instance.stereotypedBy('ArchetypeTerm'))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_ASSERTION_Invariant_Tag_valid" name="[AOM] ASSERTION:Invariant:Tag_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_ASSERTION_Invariant_Tag_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt; font-weight:normal; color:#000000;&quot;>An [AOM] tag maps to the name of a UML Constraint and must either be defined or be a non-empty String.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_ASSERTION_Invariant_Tag_valid-specification">
<language>OCL</language>
<body>(
self.constrainedElement.oclIsKindOf(Property)
and self.constrainedElement.oclAsType(Property).namespace.stereotypedBy('ComplexObjectConstraint')
)
implies(
self.name.oclIsUndefined()
or (self.name&lt;>'')
) </body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_ASSERTION_Invariant_Expression_valid" name="[AOM] ASSERTION:Invariant:Expression_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_ASSERTION_Invariant_Expression_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt; font-weight:normal; color:#000000;&quot;>An [AOM] ASSERTION/expression must exist and must be of type Boolean. &amp;#160;It maps to a UML Constraint/specification.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_ASSERTION_Invariant_Expression_valid-specification">
<language>English</language>
<body>This [AOM] invariant is enforced by the UML constraint that a Constraint specification must be of type Boolean.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_QUERY_VARIABLE_Invariant_Context_valid" name="[AOM] QUERY_VARIABLE:Invariant:Context_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_QUERY_VARIABLE_Invariant_Context_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] QUERY_VARIABLE maps to a UML InstanceSpecification whose specification is an OpaqueExpression. &amp;#160;The [AOM] QUERY_VARIABLE/context maps to the name of the UML OpaqueExpression. &amp;#160;The name of the OpaqueExpression must be either undefined or non-empty. &amp;#160;The [AOM] QUERY_VARIABLE/query_id maps to the name of the UML InstanceSpecification. &amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_QUERY_VARIABLE_Invariant_Context_valid-specification">
<language>OCL</language>
<body>(
self.namespace.stereotypedBy('ComplexObjectConstraint')
and not(self.specification.oclIsUndefined())
and self.specification.oclIsKindOf(OpaqueExpression)
)
implies(
self.specification.name.oclIsUndefined()
or(self.specification.name&lt;>'')
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_ITEM_Invariant_Type_valid" name="[AOM] EXPR_ITEM:Invariant:Type_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_ITEM_Invariant_Type_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt;&quot;>The [AOM] EXPR_ITEM/type must be defined. &amp;#160; It maps to a UML ValueSpecification/type.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_ITEM_Invariant_Type_valid-specification">
<language>OCL</language>
<body>self.getNearestPackage().stereotypedBy('Archetype')
implies
not(self.type.oclIsUndefined())</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_UNARY_OPERATOR_Invariant_operand_valid" name="[AOM] EXPR_UNARY_OPERATOR:Invariant:operand_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_UNARY_OPERATOR_Invariant_operand_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-size:10pt; font-weight:normal; font-family:Times New Roman; color:#000000;&quot;>An [AOM] &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>EXPR_UNARY_OPERATOR maps to a UML Expression having a symbol which is one of the defined [AOM] unary operators and which has exactly one operand.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_UNARY_OPERATOR_Invariant_operand_valid-specification">
<language>OCL</language>
<body>(
self.getNearestPackage().stereotypedBy('Archetype')
and(
(self.symbol='=')
or (self.symbol='&lt;>')
or (self.symbol='&lt;=')
or (self.symbol='&lt;')
or (self.symbol='>=')
or (self.symbol='>')
or (self.symbol='matches')
or (self.symbol='and')
or (self.symbol='or')
or (self.symbol='xor')
or (self.symbol='implies')
or (self.symbol='for_all')
or (self.symbol='exists')
or (self.symbol='+')
or (self.symbol='-')
or (self.symbol='*')
or (self.symbol='/')
or (self.symbol='^')
)
)
implies
(self.operand->size()=1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_BINARY_OPERATOR_Invariant_left_operand_valid" name="[AOM] EXPR_BINARY_OPERATOR:Invariant:left_operand_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_BINARY_OPERATOR_Invariant_left_operand_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] &amp;#160;EXPR_BINARY_OPERATOR maps to a UML Expression whose symbol is one of the defined [AOM] binary operators and which has exactly two operands.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_BINARY_OPERATOR_Invariant_left_operand_valid-specification">
<language>OCL</language>
<body>(
self.getNearestPackage().stereotypedBy('Archetype')
and(
(self.symbol='=')
or (self.symbol='&lt;>')
or (self.symbol='&lt;=')
or (self.symbol='&lt;')
or (self.symbol='>=')
or (self.symbol='>')
or (self.symbol='matches')
or (self.symbol='and')
or (self.symbol='or')
or (self.symbol='xor')
or (self.symbol='implies')
or (self.symbol='for_all')
or (self.symbol='exists')
or (self.symbol='+')
or (self.symbol='-')
or (self.symbol='*')
or (self.symbol='/')
or (self.symbol='^')
)
)
implies
(self.operand->size()=2)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_BINARY_OPERATOR_Invariant_right_operand_valid" name="[AOM] EXPR_BINARY_OPERATOR:Invariant:right_operand_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_BINARY_OPERATOR_Invariant_right_operand_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] EXPR_BINARY_OPERATOR maps to a UML Expression&amp;#160;whose symbol is one of the defined [AOM] binary operators and which has exactly two operands.
&lt;/span>&lt;br>&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_EXPR_BINARY_OPERATOR_Invariant_right_operand_valid-specification">
<language>OCL</language>
<body>(
self.getNearestPackage().stereotypedBy('Archetype')
and(
(self.symbol='=')
or (self.symbol='&lt;>')
or (self.symbol='&lt;=')
or (self.symbol='&lt;')
or (self.symbol='>=')
or (self.symbol='>')
or (self.symbol='matches')
or (self.symbol='and')
or (self.symbol='or')
or (self.symbol='xor')
or (self.symbol='implies')
or (self.symbol='for_all')
or (self.symbol='exists')
or (self.symbol='+')
or (self.symbol='-')
or (self.symbol='*')
or (self.symbol='/')
or (self.symbol='^')
)
)
implies
(self.operand->size()=2)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_OPERATOR_KIND_Invariant_Validity" name="[AOM] OPERATOR_KIND:Invariant:Validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_OPERATOR_KIND_Invariant_Validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;color:#000000; font-family:Times New Roman; font-weight:normal; font-size:10pt;&quot;>The [AOM] OPERATOR_KIND is mapped to a UML Expression symbol. &amp;#160;The UML Expressions symbol must correspond to one of the operators defined in [AOM] OPERATOR_KIND.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-[AOM]_OPERATOR_KIND_Invariant_Validity-specification">
<language>OCL</language>
<body>(
self.getNearestPackage().stereotypedBy('Archetype')
and(
(self.symbol='=')
or (self.symbol='&lt;>')
or (self.symbol='&lt;=')
or (self.symbol='&lt;')
or (self.symbol='>=')
or (self.symbol='>')
or (self.symbol='matches')
or (self.symbol='and')
or (self.symbol='or')
or (self.symbol='xor')
or (self.symbol='implies')
or (self.symbol='for_all')
or (self.symbol='exists')
or (self.symbol='+')
or (self.symbol='-')
or (self.symbol='*')
or (self.symbol='/')
or (self.symbol='^')
)
)
implies(
(self.operand->size()=2)
or (self.operand->size()=1)
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-TerminologyProfile-ArchetypeTerm-[AOM]_VATDF-_value_code_validity" name="[AOM] VATDF- value code validity">
<ownedComment xmi:id="_Data-TerminologyProfile-ArchetypeTerm-[AOM]_VATDF-_value_code_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Each value code (at-code) used in a term constraint within an Archetype must be an Archetype Term defined in the same Archetype. &amp;#160;A term constraint in AML is modeled as a Constraint on a Property, where the Constraint specification is an &amp;quot;=&amp;quot; Expression and the operands are Archetype Terms.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-TerminologyProfile-ArchetypeTerm-[AOM]_VATDF-_value_code_validity-specification">
<language>OCL</language>
<body>self->select(constraint|constraint.namespace.stereotypedBy('ComplexObjectConstraint') and constraint.constrainedElement->forAll(ce|ce.oclIsKindOf(Property)))
->select(c|c.specification
->forAll(e|e.oclIsKindOf(Expression) and (e.oclAsType(Expression).symbol='=') and (e.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(InstanceValue))))
).constrainedElement
implies
self.specification.oclAsType(Expression).operand.oclAsType(InstanceValue)
->forAll(o|o.instance.stereotypedBy('ArchetypeTerm') and (o.namespace.namespace.namespace.namespace=self.namespace.namespace))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VATDA-_value_set_assumed_value_code_validity" name="[AOM] VATDA- value set assumed value code validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VATDA-_value_set_assumed_value_code_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Each value code (at-code) used as an assumed_value for a value set in a term constraint must exist in a value set within the terminology definition.&amp;#160;&amp;#160;In AML, the assumed_value is defined as part of the specification of a Constraint on the Property, where the assumed_value is an &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman,serif;&quot;>«ArchetypeTerm». &amp;#160;The &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman,serif;&quot;>«ArchetypeTerm» may represent a value code (at-code) or a value set (ac-code). &amp;#160;In any case, the term will be in the Identifier Definition.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman,serif;&quot;>Note that this [AOM] Validty rule maps to the same form of Constraint as rule VATDF.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VATDA-_value_set_assumed_value_code_validity-specification">
<language>OCL</language>
<body>self->select(constraint|constraint.namespace.stereotypedBy('ComplexObjectConstraint') and constraint.constrainedElement->forAll(ce|ce.oclIsKindOf(Property)))
->select(c|c.specification
->forAll(e|e.oclIsKindOf(Expression) and (e.oclAsType(Expression).symbol='=') and (e.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(InstanceValue))))
).constrainedElement
implies
self.specification.oclAsType(Expression).operand.oclAsType(InstanceValue)
->forAll(o|o.instance.stereotypedBy('ArchetypeTerm') and (o.namespace.namespace.namespace.namespace=self.namespace.namespace))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONIF-_specialised_archetype_object_node_identifier_validity_in_flat_siblings" name="[AOM] VSONIF- specialised archetype object node identifier validity in flat siblings">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONIF-_specialised_archetype_object_node_identifier_validity_in_flat_siblings-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] C_OBJECT/node_id must be valid with respect to any sibling C_OBJECT nodes.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] C_OBJECT/node_id is mapped to a UML Constraint Object &amp;#160;id tag value. &amp;#160;The Constraint Object may be applied to a Classifier, or it the Classifier is not in the same Archetype, to the Property which is typed by the external Classifier. &amp;#160;This [AOM] Validation rule is mapped to an AML Constraint which requires that the id tag values for owned attributes of a Complex Object Constraint are unique.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONIF-_specialised_archetype_object_node_identifier_validity_in_flat_siblings-specification">
<language>OCL</language>
<body>self.base_Classifier.oclIsKindOf(Class)
implies
self.base_Classifier.oclAsType(Class).ownedAttribute->forAll(attribute|
(
attribute.stereotypedBy('ObjectConstraint')
and
(
self.base_Classifier.oclAsType(Class).ownedAttribute->select(a|a&lt;>attribute)->forAll(sibling|
(
sibling.stereotypedBy('ObjectConstraint')
and
not(sibling.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
)
or(
sibling.type.stereotypedBy('ObjectConstraint')
and
not(sibling.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
)
)
)
)
or(
attribute.type.stereotypedBy('ObjectConstraint')
and
(
self.base_Classifier.oclAsType(Class).ownedAttribute->select(a|a&lt;>attribute)->forAll(sibling|
(
sibling.stereotypedBy('ObjectConstraint')
and
not(sibling.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
)
or(
sibling.type.stereotypedBy('ObjectConstraint')
and
not(sibling.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
)
)
)
)
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_COMPLEX_OBJECT_PROXY_Invariant_Consistency" name="[AOM] C_COMPLEX_OBJECT_PROXY:Invariant:Consistency">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_COMPLEX_OBJECT_PROXY_Invariant_Consistency-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; color:#000000; font-size:10pt;&quot;>An [AOM] C_COMPLEX_OBJECT_PROXY can not be a proxy for any allowed Reference Model Classifier. &amp;#160;This [AOM] Invariant is mapped to an AML Constraint that a Property of a Complex Object Constraint, whose aggregation is none, can not be (directly) typed by a Reference Model Classifier.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_COMPLEX_OBJECT_PROXY_Invariant_Consistency-specification">
<language>OCL</language>
<body>((self.aggregation=AggregationKind::none) and self.namespace.stereotypedBy('ComplexObjectConstraint'))
implies
self.type.getNearestReferenceModel().oclIsUndefined()
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_validity" name="[AOM] C_ATTRIBUTE:Invariant:Children_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] C_ATTRIBUTE/children may be undefined, meaning the attribute type may be any legal type of the Reference Model attribute, or there is a non-empty list of archetype-specific children (types derived from the Reference Model type). &amp;#160;An [AOM] C_ATTRIBUTE with undefined children maps to an AML Property whose type is the same as the Reference Model attribute's type. &amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] C_ATTRIBUTE with children maps to a list of Properties which subset or redefine the Reference Model attribute, but whose types are in the Archetype.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This [AOM] Invariant maps to an AML Constraint that the type of a Property may be (directly) a Reference Model Type only if it has no siblings which subset or redefine the same Reference Model attribute.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_validity-specification">
<language>OCL</language>
<body>(
self.namespace.stereotypedBy('ComplexObjectConstraint')
and not(self.type.getNearestReferenceModel().oclIsUndefined())
)
implies
self.namespace.oclAsType(Class).ownedAttribute
->select(a|
(a&lt;>self)
and not(a.subsetsProperty->includes(self.subsetsProperty->first()))
and not(a.redefinesProperty->includes(self.redefinesProperty->first()))
)
->isEmpty()
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_orphans_validity" name="[AOM] C_ATTRIBUTE:Invariant:Children_orphans_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_orphans_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-weight:normal; font-family:Times New Roman; color:#000000; font-size:10pt;&quot;>If this is a Property with a bounded upper limit, then the minimum number of possible children must be less than or equal to the upper value of the constrained Property.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_orphans_validity-specification">
<language>OCL</language>
<body>self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
.subsettedProperty->union(self.redefinedProperty)
->select(r|r.upper>0)
->forAll(refProperty|
self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
->select(p|p.lower>0)
->size()&lt;refProperty.upper
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_occurrences_lower_sum_validity" name="[AOM] C_ATTRIBUTE:Invariant:Children_occurrences_lower_sum_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_occurrences_lower_sum_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-weight:normal; font-family:Times New Roman; color:#000000; font-size:10pt;&quot;>If the upper multiplicity of this Property is bounded, then the sum of the multiplicity lower bounds of children is less than or equal to the upper multiplicity of the constrained Property.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Children_occurrences_lower_sum_validity-specification">
<language>OCL</language>
<body>self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
.subsettedProperty->union(self.redefinedProperty)
->select(r|r.upper>0)
->forAll(refProperty|
self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
.lower->sum()&lt;=refProperty.upper
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Cardinality_valid" name="[AOM] C_ATTRIBUTE:Invariant:Cardinality_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Cardinality_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] C_ATTRIBUTE/is_multiple is false if children are alternative child objects (e.g., a choice); otherwise a value of true means children are a collection of independent child objects. &amp;#160;The [AOM] C_ATTRIBUTE/is_multiple =false maps to AML Properties which have an aggregation of 'shared', wherease a value of true maps to AML Properties which have an aggregation of 'composite'. &amp;#160;The sibling AML Properties mapped to the [AOM] children must all have the same aggregation kind.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Cardinality_valid-specification">
<language>OCL</language>
<body>self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
.subsettedProperty->union(self.redefinedProperty)
->select(r|r.upper>0)
->forAll(refProperty|
self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
->forAll(p|p.aggregation=self.aggregation)
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Alternatives_valid" name="[AOM] C_ATTRIBUTE:Invariant:Alternatives_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Alternatives_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&lt;span style=&quot;font-weight:normal; color:#000000; font-family:Times New Roman; font-size:10pt;&quot;>If this is a Property whose upper bound is 1, then the occurrences of all children have an upper bound of 1.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Alternatives_valid-specification">
<language>OCL</language>
<body>self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
.subsettedProperty->union(self.redefinedProperty)
->select(r|r.upper=1)
->forAll(refProperty|
self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
->forAll(p|p.upper=1)
)
</body>
</specification>
</ownedRule>
<generalization xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-generalization" general="_Data-ConstraintProfile-ObjectConstraint"/>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ComplexObjectConstraint-base_Classifier" name="base_Classifier" visibility="private" association="_Data-ConstraintProfile-packagedElement-14">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ObjectConstraint" name="ObjectConstraint">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
An «ObjectConstraint» models a restriction on the possible values, types, cardinalities and/or other aspects of the base NamedElement.&lt;span>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-right:0in;margin-left:0in;font-size:10.0pt;margin-bottom:0in;&quot;>
If an «ObjectConstraint» is applied to a UML Classifier, the Classifier may only have ownedAttributes which subset or redefine an inherited attribute.&lt;span>&amp;#160; &lt;/span>If an «ObjectConstraint» is applied to a UML Property, the Property may specify the value space, type, and/or cardinality subject to the UML Property subset/redefinition semantics.
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-right:0in;margin-left:0in;font-size:10.0pt;margin-bottom:0in;&quot;>
&lt;span>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-right:0in;margin-left:0in;font-size:10.0pt;margin-bottom:0in;&quot;>
«ObjectConstraint» is a specialization of «IdentifiedItem», thus allowing the base NamedElements to be assigned unique identifiers from external namespaces.&lt;span>&amp;#160; &lt;/span>In particular, when modeling [AOM], the value of the id will be an «ArchetypeTerm», thus enabling multiple natural language terminology definitions, technology bindings, and value set compositions for the underlying UML named elements.
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-right:0in;margin-left:0in;font-size:10.0pt;margin-bottom:0in;&quot;>
&lt;span>&amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-redefinesGeneralization" name="redefinesGeneralization">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-redefinesGeneralization-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This Classifier must have exactly one generalization, and that is a &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman,serif;&quot;>«Constraint» &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Generalization.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-redefinesGeneralization-specification">
<language>OCL</language>
<body>self.base_NamedElement.oclIsKindOf(Classifier) implies(
self.base_NamedElement.oclAsType(Classifier).generalization->forAll(x|x.stereotypedBy('Constrains'))
and
(self.base_NamedElement.oclAsType(Classifier).generalization->size() = 1)
)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCORM-_object_constraint_type_name_existence" name="[AOM] VCORM- object constraint type name existence">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCORM-_object_constraint_type_name_existence-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A type name introducing an object constraint block must be defined in the underlying information model&amp;#160;.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCORM-_object_constraint_type_name_existence-specification">
<language>English</language>
<body>All Reference Model types are explicitly inherited and/or referenced as types from an archetype structure.
Thus the UML model will always use types defined in the underlying Reference Model information model.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCORMT_-_object_constraint_type_validity" name="[AOM] VCORMT - object constraint type validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCORMT_-_object_constraint_type_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A type name introducing an object constraint block must be the same as or conform to the type stated in the underlying information model of its owning attribute.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCORMT_-_object_constraint_type_validity-specification">
<language>English</language>
<body>This [AOM] validation rule is enforced by UML type conformance constraints associated with subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOCD-_object_constraint_definition_validity" name="[AOM] VCOCD- object constraint definition validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOCD-_object_constraint_definition_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An object constraint block consists of one of the following (depending on subtype): &lt;/span>
&lt;/p>
&lt;ul>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>an ‘any’ constraint; &lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>a reference; &lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>an inline definition of sub-constraints, &lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>or nothing, in the case where occurrences is set to {0}.&amp;#160;&lt;/span>
&lt;/li>
&lt;/ul>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOCD-_object_constraint_definition_validity-specification">
<language>English</language>
<body>This [AOM] rule is definitional; subtypes of Object Constraint define content and semantics.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOID-_object_node_identifier_validity" name="[AOM] VCOID- object node identifier validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOID-_object_node_identifier_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
Every object node must have a node identifier.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOID-_object_node_identifier_validity-specification">
<language>English</language>
<body>An object constraint may have an id (which maps to [AOM] node_id) specified as a tag.
If not specified, than an implicit node_id is based on the object constraint name.
In case of constraints on primitive types, the derived node_id may have an implied value starting with 'id9999'.
As a consequence of the UML defaults described, there will be a node identifier associated with every object constraint node.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOSU-_object_node_identifier_validity" name="[AOM] VCOSU- object node identifier validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOSU-_object_node_identifier_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Every object node identifier must be unique within the archetype.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VCOSU-_object_node_identifier_validity-specification">
<language>English</language>
<body>Object node identifiers are the names of Archetype Term EnumerationLiterals within the Definition Identifier and their uniqueness is enforced by UML name constraints.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONT-_specialised_archetype_object_node_meta-type_conformance" name="[AOM] VSONT- specialised archetype object node meta-type conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONT-_specialised_archetype_object_node_meta-type_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The meta-type of a redefined object constraint node (i.e. the [AOM] node type such as C_COMPLEX_OBJECT etc) in a specialized archetype must be the same as that of the corresponding node in the flat parent, with the following exceptions: &lt;/span>
&lt;/p>
&lt;ul>
&lt;li>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>a C_COMPLEX_OBJECT with no child attributes may be redefined by a node of any [AOM] type;&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>a C_COMPLEX_OBJECT_PROXY, may be redefined by a C_COMPLEX_OBJECT;&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>a ARCHTEYPE_SLOT may be redefined by C_ARCHETYPE_ROOT (i.e. ‘slot-filling’).&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>See also validity rules VDSSID and VARXID.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p style=&quot;font-family:times new roman,serif;margin-top:0in;margin-right:0in;margin-left:0in;font-size:10.0pt;margin-bottom:.0001pt;&quot;>
&lt;span style=&quot;font-size:10pt;&quot;>This [AOM] Validation rule maps to an AML Constraint:&lt;/span>
&lt;/p>
&lt;ul>
&lt;li style=&quot;font-family:times new roman,serif;margin-top:0in;margin-right:0in;margin-left:0in;font-size:10.0pt;margin-bottom:.0001pt;&quot;>
&lt;span style=&quot;font-size:10pt;&quot;>A &amp;#160;«ComplexObjectConstraint» may specialize a «ComplexObjectConstraint»&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-size:10pt;&quot;>An «ArchetypeRoot» may specialize an «ArchetypeSlot»&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-size:10pt;&quot;>An «ArchetypeRoot» may specialize an «ArchetypeRoot»&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-size:10pt;&quot;>An «ArchetypeSlot» may specialize an «ArchetypeSlot»&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONT-_specialised_archetype_object_node_meta-type_conformance-specification">
<language>OCL</language>
<body>(
(self.base_NamedElement.stereotypedBy('ComplexObjectConstraint') and not self.base_NamedElement.oclAsType(Classifier).general->forAll(g|g.getNearestReferenceModel().oclIsUndefined()))
implies
self.base_NamedElement.oclAsType(Classifier).general->forAll(g|g.stereotypedBy('ComplexObjectConstraint'))
)
and
(
(self.base_NamedElement.stereotypedBy('ArchetypeRoot') and not self.base_NamedElement.oclAsType(Classifier).general->forAll(g|g.getNearestReferenceModel().oclIsUndefined()))
implies
self.base_NamedElement.oclAsType(Classifier).general->forAll(g|g.stereotypedBy('ArchetypeRoot') or g.stereotypedBy('ArchetypeSlot'))
)
and
(
(self.base_NamedElement.stereotypedBy('ArchetypeSlot') and not self.base_NamedElement.oclAsType(Classifier).general->forAll(g|g.getNearestReferenceModel().oclIsUndefined()))
implies
self.base_NamedElement.oclAsType(Classifier).general->forAll(g|g.stereotypedBy('ArchetypeSlot'))
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONCT-_specialised_archetype_object_node_reference_type_conformance" name="[AOM] VSONCT- specialised archetype object node reference type conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONCT-_specialised_archetype_object_node_reference_type_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The Reference Model type of a redefined object node in a specialized archetype must conform to the reference model type in the corresponding node in the flat parent archetype by either being identical, or conforming via an inheritance relationship in the relevant Reference Model.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONCT-_specialised_archetype_object_node_reference_type_conformance-specification">
<language>English</language>
<body>This [AOM] validation rule is enforced by UML inheritance from the specialized archetype, which itself inherits directly or indirectly from a Reference Model.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONIN-_specialised_archetype_new_object_node_identifier_validity" name="[AOM] VSONIN- specialised archetype new object node identifier validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONIN-_specialised_archetype_new_object_node_identifier_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If an object constraint node in a specialized archetype is a new node with respect to the flat parent, and it carries a node identifier, the identifier must be a ‘new’ node identifier, specialized at the level of the child archetype.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONIN-_specialised_archetype_new_object_node_identifier_validity-specification">
<language>English</language>
<body> If an object constraint node in a specialized archetype is a new node with respect to the flat parent, and it carries a node identifier, the identifier must be a ‘new’ node identifier, specialized at the level of the child archetype.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONCO-_specialised_archetype_redefine_object_node_occurrences_validity" name="[AOM] VSONCO- specialised archetype redefine object node occurrences validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONCO-_specialised_archetype_redefine_object_node_occurrences_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The occurrences of a redefined object node in a specialized archetype, if stated, must conform to the occurrences in the corresponding node in the flat parent archetype by either being identical, or being wholly contained by the latter.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONCO-_specialised_archetype_redefine_object_node_occurrences_validity-specification">
<language>English</language>
<body>The [AOM] validation rule is enforced by UML multiplicity constraints for subsetted and/or redefined Properties.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONPT-_specialised_archetype_prohibited_object_node_[AOM]_type_validity" name="[AOM] VSONPT- specialised archetype prohibited object node [AOM] type validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONPT-_specialised_archetype_prohibited_object_node_[AOM]_type_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The occurrences of a redefined object constraint node in a specialized archetype, may only be prohibited (i.e. have upper bound of {0}) if the matching node in the parent is of the same [AOM] type.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONPT-_specialised_archetype_prohibited_object_node_[AOM]_type_validity-specification">
<language>OCL</language>
<body>(
self.namespace->select(n|n.stereotypedBy('ComplexObjectConstraint') ).oclAsType(Classifier).general->forAll(g|g.stereotypedBy('ComplexObjectConstraint'))
and (self.upper=0)
)
implies(
self.redefinedProperty.type->forAll(t|t=self.type)
and self.subsettedProperty.type->forAll(t|t=self.type)
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONPO-_specialised_archetype_object_node_prohibited_occurrences_validity" name="[AOM] VSONPO- specialised archetype object node prohibited occurrences validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONPO-_specialised_archetype_object_node_prohibited_occurrences_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The occurrences of a new (i.e. having no corresponding node in the parent Archetype) object constraint node in a specialized archetype, if stated, may not be ‘prohibited’, i.e. have an upper bound of {0}, since prohibition only makes sense for an existing node.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSONPO-_specialised_archetype_object_node_prohibited_occurrences_validity-specification">
<language>OCL</language>
<body>self.namespace->select(n|n.stereotypedBy('ComplexObjectConstraint') ).oclAsType(Classifier).general->select(g|g.stereotypedBy('ComplexObjectConstraint'))->isEmpty()
implies
(self.upper&lt;>0)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSSM-_specialised_archetype_sibling_order_validity" name="[AOM] VSSM- specialised archetype sibling order validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSSM-_specialised_archetype_sibling_order_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] SIBLING_ORDER/sibling_node_id must refer to a node found within the same container. &amp;#160;The [AOM] &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>SIBLING_ORDER/sibling_node_id maps to the sequence of Properties in the ownedAttribute of a Class.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_VSSM-_specialised_archetype_sibling_order_validity-specification">
<language>English</language>
<body>The order of sibling children are enforced by the UML semantics of List for the ordered Attributes of a Class.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_ARCHETYPE_CONSTRAIN_Invariant_path_exists" name="[AOM] ARCHETYPE_CONSTRAIN:Invariant:path_exists">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_ARCHETYPE_CONSTRAIN_Invariant_path_exists-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The path of this node relative to root of the archetype is defined.&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_ARCHETYPE_CONSTRAIN_Invariant_path_exists-specification">
<language>English</language>
<body>In AML, the path to a node is implicit. Thus, the path is never undefined and the path exists.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Rm_attribute_name_valid" name="[AOM] C_ATTRIBUTE:Invariant:Rm_attribute_name_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Rm_attribute_name_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This Property must redefine or subset a Reference Model Property&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Rm_attribute_name_valid-specification">
<language>OCL</language>
<body>self.base_NamedElement.oclIsKindOf(Property) implies
self.base_NamedElement.oclAsType(Property)->forAll(p|p.redefinedProperty->notEmpty() or p.subsettedProperty->notEmpty())
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Existence_valid" name="[AOM] C_ATTRIBUTE:Invariant:Existence_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Existence_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-weight:normal; font-family:Times New Roman; color:#000000; font-size:10pt;&quot;>In [AOM] C_ATTRIBUTE/existence must have a lower bound greater than or equal to 0 and upper bound of 1. &amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Existence_valid-specification">
<language>English</language>
<body>In AML, existence is implicit and will have a lower, upper in the range of this invariant.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_[Differential_path_valid" name="[AOM] C_ATTRIBUTE:Invariant:[Differential_path_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_[Differential_path_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-weight:normal; font-family:Times New Roman; color:#000000; font-size:10pt;&quot;>The [AOM] C_ATTRIBUTE/differential_path, if it exists, references the parent object of the C_ATTRIBUTE. &amp;#160;&lt;/span>&lt;span style=&quot;font-weight:normal; font-family:Times New Roman; color:#000000; font-size:10pt;&quot;>The [AOM] C_ATTRIBUTE/differential_path is derived during mapping from AML. &lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_[Differential_path_valid-specification">
<language>English</language>
<body>The [AOM] Invariant is enforced during mapping from AML to [AOM].</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Child_occurrences_validity" name="[AOM] C_ATTRIBUTE:Invariant:Child_occurrences_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Child_occurrences_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt; font-weight:normal; color:#000000;&quot;>The cardinality of children of property must be within the cardinality of the property.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_ATTRIBUTE_Invariant_Child_occurrences_validity-specification">
<language>English</language>
<body>The [AOM] invariant is implemented by UML constraints regarding cardinality of subsetted/redefined Properties.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_CARDINALITY_Invariant_Validity" name="[AOM] CARDINALITY:Invariant:Validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_CARDINALITY_Invariant_Validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>A lower interval cannot be unbounded.&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_CARDINALITY_Invariant_Validity-specification">
<language>English</language>
<body>UML types lower bound as Integer (instead of UnlimitedNatural). Thus, lower bound cannot be unbounded.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Node_id_valid" name="[AOM] C_OBJECT:Invariant:Node_id_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Node_id_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>If&amp;#160;the tag 'id' has a value, then it must be an Archetype Term EnumerationLiteral.&amp;#160;
&lt;/span>&lt;br>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>There are cases in which the tag has no value, such as for primitive types and other cases in which there is no term_definition available.&lt;/span>
&lt;/p>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Node_id_valid-specification">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<language>OCL</language>
<body>self.id
->forAll(i|i.stereotypedBy('ArchetypeTerm'))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Occurrences_validity" name="[AOM] C_OBJECT:Invariant:Occurrences_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Occurrences_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If the upper bound of a Property is 1, then the upper bound of children properties is 1.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Occurrences_validity-specification">
<language>English</language>
<body>This [AOM] invariant is enforced by the UML constraints covering cardinality of subsetted/redefined properties.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Sibling_order_validity" name="[AOM] C_OBJECT:Invariant:Sibling_order_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Sibling_order_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:TimesNewRomanPSMT; font-size:12pt; font-weight:normal; color:#000000;&quot;>If this Archetype is a specialization of another Archetype, then a sibling_order is implicitly derived from a merge of the parent with this Classifier.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_OBJECT_Invariant_Sibling_order_validity-specification">
<language>English</language>
<body>The [AOM] sibling_order is mapped from a merge of the current attribute children with the parent Classifier in the parent Archetype.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_SIBLING_ORDER_Invariant_sibling_node_id_validity" name="[AOM] SIBLING_ORDER:Invariant:sibling_node_id_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_SIBLING_ORDER_Invariant_sibling_node_id_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;The children of an attribute are ordered.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_SIBLING_ORDER_Invariant_sibling_node_id_validity-specification">
<language>English</language>
<body>The order of children of an attribute is enforced by the UML semantic for Property ordering.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_DEFINED_OBJECT_Invariant_Default_value_valid" name="[AOM] C_DEFINED_OBJECT:Invariant:Default_value_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_DEFINED_OBJECT_Invariant_Default_value_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt; font-weight:normal; color:#000000;&quot;>The default_value of a Property most conform to the type of the Property as well as any restrictions on the value range.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_DEFINED_OBJECT_Invariant_Default_value_valid-specification">
<language>English</language>
<body>Validation of type constraints for defaultValue of a Property is enforced by UML Property type and instance semantics.
Value restrictions are expressed as Constraints on the Property, but are not necessarily enforceable by UML semantics directly.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_COMPLEX_OBJECT_PROXY_Target_path_valid" name="[AOM] C_COMPLEX_OBJECT_PROXY:Target_path_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_COMPLEX_OBJECT_PROXY_Target_path_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt; font-weight:normal; color:#000000;&quot;>The [AOM] C_COMPLEX_OBJECT_PROXY maps to a UML Property having an aggregation of none and a type of the target object within the same «Archetype»&amp;#160; (i.e., an internal reference).
&lt;/span>&lt;span>&lt;br>
&lt;br>&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt; font-weight:normal; color:#000000;&quot;>An [AOM] target_path attribute is implicitly mapped to a UML Property type. &amp;#160;The UML Property type must be defined.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ObjectConstraint-[AOM]_C_COMPLEX_OBJECT_PROXY_Target_path_valid-specification">
<language>OCL</language>
<body>(self.oclIsKindOf(Property) and (self.oclAsType(Property).aggregation=AggregationKind::none)and self.namespace.stereotypedBy('ComplexObjectConstraint'))
implies
not(self.oclAsType(Property).type.oclIsUndefined())
</body>
</specification>
</ownedRule>
<generalization xmi:id="_18_0_2aa0151_1431783073032_448499_10140">
<general xmi:type="uml:Stereotype" href="TerminologyProfile.uml#_Data-TerminologyProfile-IdentifiedItem"/>
</generalization>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ObjectConstraint-base_NamedElement" name="base_NamedElement" visibility="private" association="_Data-ConstraintProfile-packagedElement-15">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ObjectConstraint-is_deprecated" name="is_deprecated" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ObjectConstraint-is_deprecated-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-size:12.0pt; color:black; font-family:TimesNewRomanPSMT,serif;&quot;>True if this node and by implication all sub-nodes are deprecated for use.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ObjectConstraint-is_deprecated-lowerValue"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-Constrains" name="Constrains">
<ownedComment xmi:id="_Data-ConstraintProfile-Constrains-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A «Constrains» Generalization specifies the Classifier to be constrained by the specific Object Constraint.&lt;span>&amp;#160; &lt;/span>The specific Classifier of the Generalization is an Object Constraint which may specify constraints on names, possible values, cardinalities, types, and other attributes of the general Classifier. &lt;span>&amp;#160;&lt;/span>The general of the Generalization may be either a Classifier in the Reference Model or another AML Object Constraint.&lt;span>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-bottom:0in;margin-top:0in;margin-right:0in;font-family:Times New Roman,serif;margin-left:0in;&quot;>
The «Constrains» Generalization maps to the [AOM] C_OBJECT/rm_type_name attribute when constraining a Reference Model Classifier, otherwise it maps to the [AOM] ARCHETYPE_CONSTRAINT/parent attribute.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-Constrains-specificObjectConstraint" name="specificObjectConstraint">
<ownedComment xmi:id="_Data-ConstraintProfile-Constrains-specificObjectConstraint-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The specific property must reference an ObjectConstraint.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Constrains-specificObjectConstraint-specification">
<language>OCL</language>
<body>self.base_Generalization.specific.stereotypedBy('ObjectConstraint')</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Constrains-constrainsRMElement" name="constrainsRMElement">
<ownedComment xmi:id="_Data-ConstraintProfile-Constrains-constrainsRMElement-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The general property must reference a Classifier within the Package extended by the ReferenceModel stereotype that is imported by the containing ArchetypeLibrary or it must reference another ObjectConstraint.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Constrains-constrainsRMElement-specification">
<language>OCL</language>
<body>(
self.base_Generalization.specific.namespace.oclAsType(Package).nestingPackage.packageImport.importedPackage
->select(p|p.stereotypedBy('ReferenceModel'))->exists(referenceModel|self.base_Generalization.general.getNearestReferenceModel()=referenceModel)
)
or
self.base_Generalization.general.stereotypedBy('ObjectConstraint')</body>
</specification>
</ownedRule>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Constrains-base_Generalization" name="base_Generalization" visibility="private" association="_Data-ConstraintProfile-packagedElement-4">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-4" memberEnd="_Data-ConstraintProfile-Constrains-base_Generalization _Data-ConstraintProfile-packagedElement-4-extension_" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-4-extension_">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-4-extension_" name="extension_" visibility="private" type="_Data-ConstraintProfile-Constrains" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-4">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-4-extension_-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ArchetypeLibrary" name="ArchetypeLibrary">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
An «ArchetypeLibrary» is a container of «Archetype»s.&lt;span>&amp;#160; &lt;/span>An archetype library imports exactly one «ReferenceModel» Package.&lt;span>&amp;#160; &lt;/span>The imported «ReferenceModel» provides metadata used to derive parts of Archetype identifiers. &lt;span>&amp;#160;&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
All Archetypes within a library constrain Classifiers and Properties within the same Reference Model.&lt;span>&amp;#160; &lt;/span>The Reference Model also specifies how to bind Reference Model Classifiers to AML Primitive Types (namely the UML Primitive Types plus the XML Primitive Types).
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-oneReferenceModel" name="oneReferenceModel">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-oneReferenceModel-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>There must be exactly one packageImport of a Package stereotyped as a ReferenceModel.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-oneReferenceModel-specification">
<language>OCL</language>
<body> self.base_Package.packageImport.importedPackage->select(stereotypedBy('ReferenceModel'))->size() = 1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-onlyArchetypes" name="onlyArchetypes">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-onlyArchetypes-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>All packaged elements must be Archetypes.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-onlyArchetypes-specification">
<language>OCL</language>
<body>self.base_Package.packagedElement->forAll(p|p.stereotypedBy('Archetype'))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-[AOM]_ARCHETYPE_HRID_Invariant_Rm_closure_validity" name="[AOM] ARCHETYPE_HRID:Invariant:Rm_closure_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-[AOM]_ARCHETYPE_HRID_Invariant_Rm_closure_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] ARCHETYPE_HRID:Rm_closure maps to the AML &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«ArchetypeLibrary» rm_package tag. &amp;#160;The rm_package tag must have a value, which is enforced by the multiplicity of the tag being [1].&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-[AOM]_ARCHETYPE_HRID_Invariant_Rm_closure_validity-specification">
<language>English</language>
<body>The [AOM] Invariant is enforced by the UML semantic for a required Property.</body>
</specification>
</ownedRule>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-base_Package" name="base_Package" visibility="private" association="_Data-ConstraintProfile-packagedElement-6">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-has_aom_ids" name="has_aom_ids" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-has_aom_ids-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If true, then all Archetypes in this Archetype Library use the id tag in «IdentifiedItem» to specify an «ArchetypeTerm» for binding model elements to multiple natural languages, technology bindings, and value set compositions.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The has_aom_ids must be true to enable round-trip engineering between [AOM] models and AML.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In this mode, the names of &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>«ArchetypeTerm» EnumerationLiterals will be based on the [AOM] naming conventions (they will be of the form “id*”, “ac*”, or “at*”).&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If false, a somewhat simplified modeling paradigm is available, and the id tag in «IdentifiedItem» is not used.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Transformation to [AOM] is not supported in this mode.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>It is assumed that there is a single Natural Language, and that language has no metadata.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The «Entry» Stereotype may be applied to a model element in order to specify a terminology name independent of the NamedElement name.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The description for the term may be specified in an ownedComment body.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In this case, code value constraints are modeled as «PermissibleValue» EnumerationLiterals. &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A (single) technology binding would be specified as the value (having type «ResourceReference») of the meaning tag on the «PermissibleValue».&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A set of «PermissibleValue»s would be owned by an «EnumeratedValueDomain» Enumeration.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A value set may be modeled using the valueSetBinding tag on the «EnumeratedValueDomain» Enumeration.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-has_aom_ids-defaultValue" value="true"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-rm_package" name="rm_package" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeLibrary-rm_package-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Name of the Reference Model Package in whose closure the rm_class is found (there can be more than one possibility in a reference model).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag corresponds to the [AOM] model attribute ARCHETYPE_HRID/rm_closure.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Since this does not necessarily correspond to a physical package in the UML Reference Model, the type of this tag is a String.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-6" memberEnd="_Data-ConstraintProfile-ArchetypeLibrary-base_Package _Data-ConstraintProfile-packagedElement-6-extension_" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-6-extension_">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-6-extension_" name="extension_" visibility="private" type="_Data-ConstraintProfile-ArchetypeLibrary" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-6">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-6-extension_-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-Archetype" name="Archetype">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An «Archetype» is a topic- or theme-based model of domain content, expressed in terms of constraints on a reference information model.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Since each «Archetype» constitutes an encapsulation of a set of data points pertaining to a topic, it is of a manageable, limited size, and has a clear boundary.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An «Archetype» includes descriptive meta-data, language information, annotations, revision history, the Archetype definition, rules, and terminology.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The Archetype definition for an Archetype is modeled using exactly one «ArchetypeDefinition» Usage.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The client of the Usage is the «Archetype» while the supplier of the Usage is the top level «ComplexObjectConstraint» Classifier constituting the definition of the «Archetype».&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The overall structure of an Archetype definition consists of the top level Classifier, which owns attributes which have compositions of Classifiers, which owns attributes, etc.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>All of the Classifiers in the Archetype definition are owned by the &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Archetype» Package.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«Archetype» Rules are represented in AML as Constraints owned by the «Archetype» and constraining the Archetype definition.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Archetype terminology is modeled in a nested Package with the name &amp;quot;ontology&amp;quot;.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Within the &amp;quot;ontology&amp;quot; Package, there are nested packages representing the terminology concepts in [AOM]:&lt;/span>
&lt;/p>
&lt;ul>
&lt;li>
&amp;#160;&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Terminology definitions.&amp;#160; The Terminology definitions package contains a set of «ResourceTranslation»s, one for each natural language translation of the definition identifiers referenced in the Archetype definition structure.&amp;#160; Additionally, there is an Identifier Definition Enumeration which serves to bind elements from the Archetype definition to the various natural language translations, the technology bindings, and value set compositions.&amp;#160; The name of the Terminology Package is the terminology identifier, a name such as ISO_639-1.&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>term_bindings.&amp;#160; &amp;#160;The term_bindings package contains technology bindings for codes defined in the Identifier Definition. &amp;#160;Each technology binding is modeled as an Enumeration.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;;line-height:normal; font-variant:normal;&quot;>·&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-weight:normal; font-size:10pt;;line-height:normal; font-variant:normal;&quot;>&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>terminology_extracts.&amp;#160; &amp;#160;The terminology_extracts package contains extracts from external terminologies such as SNOMED CT.&amp;#160; Each extract is modeled as an Enumeration consisting of codes and preferred term rubrics, enabling small value sets to be captured locally in the model.&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p style=&quot;font-size:10.0pt;margin-right:0in;text-indent:-.25in;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:.0001pt;margin-left:.5in;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>In [AOM], the name of an ARCHETYPE is specified in the attribute ARCHETYPE_HRID/physical_id, which is expressed using the following syntax:&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>[rm_publisher]-[rm_closure]-[rm_class].[concept_id].v[release_version]-[version_status].[build_count]&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>In AML, the physical_id is implicit, being derived from the following model elements:&lt;/span>
&lt;/p>
&lt;ul>
&lt;li>
&amp;#160;&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>rm_publisher.&amp;#160; This is the value of the «ReferenceModel»::rmPublisher tag, where «ReferenceModel» is imported by the containing «ArchetypeLibrary ».&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>rm_closure.&amp;#160;&amp;#160; This is the value of the «ArchetypeLibrary »::rm_package tag.&amp;#160; &lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>rm_class.&amp;#160; This is derived from the root (defining) class of this «Archetype».&amp;#160; The value is the name of the «ReferenceModel» Class specialized by the Archetype definition of this «Archetype».&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>concept_id.&amp;#160; The value is the name of the «Archetype» Package.&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>release_version.&amp;#160; The value is the full numeric version of this «Archetype», as specified in the release_version tag of this «Archetype».&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>version_status.&amp;#160; The value is the status of the version, as specified in the version_status tag of this «Archetype».&lt;/span>
&lt;/li>
&lt;li>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>build_count.&amp;#160; The value is the build_count, as specified in the build_count tag of this «Archetype»&lt;/span>
&lt;/li>
&lt;/ul>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The URI of the «Archetype» Package represents the [AOM] attribute ARCHETYPE/namespace.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«Archetype» specialization may be modeled using a PackageImport from some parent «Archetype».&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An «Archetype» Package contains (directly or indirectly) a set of constraints on «ReferenceModel» Classifiers.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The constrained Classifiers must be owned by the «ReferenceModel» imported from the nesting Package «ArchetypeLibrary».&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-mustBeOwned" name="mustBeOwned">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-mustBeOwned-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Every Archetype Package must be owned by a Package with an ArchetypeLibrary stereotype.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-mustBeOwned-specification">
<language>OCL</language>
<body> self.base_Package.owningPackage.stereotypedBy('ArchetypeLibrary')
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-ownsObjectConstraints" name="ownsObjectConstraints">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-ownsObjectConstraints-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Types (other than Associations) owned by an Archetype Package must be ObjectConstraints.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-ownsObjectConstraints-specification">
<language>OCL</language>
<body>self.base_Package.ownedType->select(x|x.oclIsKindOf(Classifier) and not(x.oclIsKindOf(Association)))->forAll(x|x.stereotypedBy('ObjectConstraint'))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-specializesArchetype" name="specializesArchetype">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-specializesArchetype-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;If an Archetype specializes another Archetype the ArchetypeDefinition supplier of both Archetypes must be the same. In other words, both Archetypes must constrain the same &amp;quot;root class&amp;quot; in the reference model.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-specializesArchetype-specification">
<language>OCL</language>
<body> self.base_Package.packageImport.importedPackage
->select(p|p.stereotypedBy('Archetype')).clientDependency
->select(t|t.stereotypedBy('ArchetypeDefinition')).supplier.oclAsType(Classifier).general
->forAll(x|self.base_Package.clientDependency->select(t|t.stereotypedBy('ArchetypeDefinition')).supplier.oclAsType(Classifier).general->includes(x))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VOKU-_object_key_unique" name="[AOM] VOKU- object key unique">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VOKU-_object_key_unique-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Within any keyed list in an archetype, including the description, terminology, and annotations sections, each item must have a unique key with respect to its siblings.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VOKU-_object_key_unique-specification">
<language>English</language>
<body>This [AOM] validation rule is enforced by the UML constraint that names within a namespace must be unique.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARDT-_archetype_definition_typename_validity" name="[AOM] VARDT- archetype definition typename validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARDT-_archetype_definition_typename_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] C_OBJECT/rm_type_name mentioned in the outer block of the archetype definition section must match the type mentioned in the [AOM] ARCHETYPE_HRID/rm_class.&amp;#160;&amp;#160;The [AOM] C_OBJECT/rm_type_name maps to the name of the AML Reference Model Class specialized by the archetype definition. &amp;#160;In other words, the [AOM] rm_type_name and rm_class map to a single element in AML.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARDT-_archetype_definition_typename_validity-specification">
<language>English</language>
<body>In AML, the typename in the archetype id is derived from the name of the constrained RM Type in the outer block of the archetype definition section,
so the [AOM] validity rule is always satisfied.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARID-_archetype_identifier_validity" name="[AOM] VARID- archetype identifier validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARID-_archetype_identifier_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The archetype must have an identifier that conforms to the openEHR specification for archetype identifiers.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARID-_archetype_identifier_validity-specification">
<language>OCL</language>
<body>self.release_version.match('[0-9]*(\\.[0-9]*(\\.[0-9]*)?)?')
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VDEOL-_original_language_specified" name="[AOM] VDEOL- original language specified">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VDEOL-_original_language_specified-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An original_language section containing the meta-data of the original authoring language must exist.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VDEOL-_original_language_specified-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency
->select(d|d.oclIsKindOf(Usage) and (d.name='original_language')).supplier
->select(s|s.stereotypedBy('ResourceTranslation'))
->notEmpty()
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARD-_description_specified" name="[AOM] VARD- description specified">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARD-_description_specified-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>For an ArchetypeType of 'archetype' or 'template', a description section containing the main meta-data of the archetype must exist.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARD-_description_specified-specification">
<language>OCL</language>
<body>(self.archetypeType.repr()&lt;>'template_overlay')
implies
self.base_Package.clientDependency.supplier->select(d|d.stereotypedBy('ResourceTranslation'))->notEmpty()
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VASID-_archetype_specialisation_parent_identifier_validity" name="[AOM] VASID- archetype specialisation parent identifier validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VASID-_archetype_specialisation_parent_identifier_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>[AOM] attribute AUTHORED_RESOURCE/parent_archetype_id must be the identifier of the immediate specialization parent archetype.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] attribute AUTHORED_RESOURCE/parent_archetype_id maps to an AML&amp;#160; packageImport from the «Archetype» Package to the parent «Archetype» Package. &amp;#160;There may be at most one imported &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>parent «Archetype» Package.
&lt;/span>&lt;span>&lt;br>&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VASID-_archetype_specialisation_parent_identifier_validity-specification">
<language>OCL</language>
<body>self.base_Package.packageImport.importedPackage->select(p|p.stereotypedBy('Archetype'))->size()&lt;=1
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VALC-_archetype_language_conformance" name="[AOM] VALC- archetype language conformance">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VALC-_archetype_language_conformance-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The languages defined in a specialized archetype must be the same as or a subset of those defined in the flat parent.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VALC-_archetype_language_conformance-specification">
<language>OCL</language>
<body> self.base_Package.packageImport.importedPackage
->forAll(superArch|self.base_Package.clientDependency.supplier->select(s|s.stereotypedBy('ResourceTranslation')).name
->forAll(language|superArch.clientDependency.supplier->select(s|s.stereotypedBy('ResourceTranslation')).name->exists(n|n=language))
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VACSD-_archetype_concept_specialisation_depth" name="[AOM] VACSD- archetype concept specialisation depth">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VACSD-_archetype_concept_specialisation_depth-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The specialization depth of the concept code must be one greater than the specialization depth of the parent archetype.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VACSD-_archetype_concept_specialisation_depth-specification">
<language>English</language>
<body>This [AOM] Validation Rule is definitional for AML-UML;
the specialisation_depth is implicitly derived from the number of parent-archetype specializations above the current archetype.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VATCD-_archetype_code_specialisation_level_validity" name="[AOM] VATCD- archetype code specialisation level validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VATCD-_archetype_code_specialisation_level_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Each archetype term (‘at’ code) and constraint code (‘ac’ code) used in the archetype definition part must have a specialization level no greater than the specialization level of the archetype.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VATCD-_archetype_code_specialisation_level_validity-specification">
<language>English</language>
<body>The specialization level used for archetype terms and constraint codes are derived and enforced during mapping to [AOM] to conform with the specialization level validity constraint.
 </body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Original_language_valid" name="[AOM] ARCHETYPE:Invariant:Original_language_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Original_language_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The Archetype must have a valid original language. &amp;#160;In AML, the original language is identified as a Usage from the Archetype to a Resource Translation.&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Original_language_valid-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency->select(d|d.oclIsKindOf(Usage) and (d.name='original_language')).supplier
->select(e|e.stereotypedBy('ResourceTranslation'))
->size()=1
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Concept_valid" name="[AOM] ARCHETYPE:Invariant:Concept_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Concept_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] invariant requires the concept_code to exist in the terminology definition. &amp;#160;In AML, the concept_code is the language-specific text for the top-level Archetype definition Classifier. &amp;#160;Thus in AML, this [AOM] invariant maps to the requirement that the Archetype definition Classifier must have an «Archetype» id tag whose value is a «ArchetypeTerm» &amp;#160;within an Identifier Definition. &amp;#160;Note that this Constraint ends up the same as [AOM] ARCHETYPE_TERMINOLOGY:Invariant:concept_code_validity.&lt;/span>
&lt;/p>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Concept_valid-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency
->select(d|d.stereotypedBy('ArchetypeDefinition')).supplier->exists(s|s.appliedStereotypeInstance.oclAsType(ComplexObjectConstraint).id->notEmpty())
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Definition_exists" name="[AOM] ARCHETYPE:Invariant:Definition_exists">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Definition_exists-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Every Archetype Package must have exactly one clientDependency which is an ArchetypeDefinition and whose supplier is a ComplexObjectConstraint within the same Archetype Package.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Definition_exists-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency
->exists(d|d.stereotypedBy('ArchetypeDefinition') )</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Terminology_exists" name="[AOM] ARCHETYPE:Invariant:Terminology_exists">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Terminology_exists-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A terminology definition must exist for an Archetype. &amp;#160;This [AOM] Invariant maps to the AML Constraint that an Archetype must have one or more Resource Transformations.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Terminology_exists-specification">
<language>OCL</language>
<body>self.base_Package.nestedPackage.nestedPackage.ownedType->exists(o|o.stereotypedBy('ResourceTranslation'))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Specialisation_validity" name="[AOM] ARCHETYPE:Invariant:Specialisation_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Specialisation_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] ARCHETYPE/is_specialised &amp;#160;value is true if this archetype is a specialization of another. &amp;#160;The [AOM] ARCHETYPE/specialisation_depth is larger than 0 if this archetype has a parent. &amp;#160;In AML, both is_specialised and specialisation_depth are derived, if required, during mapping.&lt;/span>
&lt;/p>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Specialisation_validity-specification">
<language>English</language>
<body>During AML transformations, is_specialised is derived and will be consistent with specialisation_depth, which is also derived.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Rules_valid" name="[AOM] ARCHETYPE:Invariant:Rules_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Rules_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;color:#000000; font-family:TimesNewRomanPSMT; font-weight:normal; font-size:10pt;&quot;>The [AOM] ARCHETYPE/rules, if present, must not be an empty list. &amp;#160; &lt;/span>&lt;span style=&quot;color:#000000; font-family:TimesNewRomanPSMT; font-weight:normal; font-size:10pt;&quot;>[AOM] ARCHETYPE/rules maps to AML &lt;/span>&lt;span style=&quot;font-family:Times New Roman,serif; font-size:10pt;&quot;>«Archetype» ownedRule Constraints. &amp;#160;An &lt;/span>&lt;span style=&quot;color:#000000; font-family:TimesNewRomanPSMT; font-weight:normal; font-size:10pt;&quot;>[AOM] ARCHETYPE/rules which has no value is mapped to an empty list of &lt;/span>&lt;span style=&quot;color:#000000; font-family:TimesNewRomanPSMT; font-weight:normal; font-size:10pt;&quot;>AML &lt;/span>&lt;span style=&quot;font-family:Times New Roman,serif; font-size:10pt;&quot;>«Archetype» ownedRule Constraints.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_Invariant_Rules_valid-specification">
<language>English</language>
<body>This [AOM] Invariant is definitional in AML. In AML, if rules is empty, it implies rules are undefined. </body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_HRID_Invariant_Concept_id_validity" name="[AOM] ARCHETYPE_HRID:Invariant:Concept_id_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_HRID_Invariant_Concept_id_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot;>
&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;>The [AOM] ARCHETYPE_HRIN/concept_id must have a value. &amp;#160;&lt;/span>&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;>[AOM] ARCHETYPE_HRIN/concept_id maps to &lt;/span>&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;>the name of the &lt;/span>&lt;span style=&quot;font-family:Times New Roman,serif; font-size:10pt;&quot;>«Archetype» Package.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_HRID_Invariant_Concept_id_validity-specification">
<language>OCL</language>
<body>not(self.base_Package.name.oclIsUndefined()) and (self.base_Package.name&lt;>'')</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_HRID_Invariant_Base_version_validity" name="[AOM] ARCHETYPE_HRID:Invariant:Base_version_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_HRID_Invariant_Base_version_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The tag &amp;#160;release_version MUST have a value.&lt;/span>
&lt;/p>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_HRID_Invariant_Base_version_validity-specification">
<language>English</language>
<body>The release_version tag is required, so this [AOM] invariant is enforced by [UML] semantics.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_OPERATIONAL_TEMPLATE_Invariant_Is_specialised" name="[AOM] OPERATIONAL_TEMPLATE:Invariant:Is_specialised">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_OPERATIONAL_TEMPLATE_Invariant_Is_specialised-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot;>
&lt;span style=&quot;color:#000000; font-family:Times New Roman; font-size:10pt;&quot;>An [AOM] OPERATIONAL_TEMPLATE maps to an AML Archetype with value of tag archetypeType =ArchetypeType::template.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_OPERATIONAL_TEMPLATE_Invariant_Is_specialised-specification">
<language>English</language>
<body>This [AOM] invariant is definitional in AML.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_OPERATIONAL_TEMPLATE_Invariant_Component_terminologies_existence" name="[AOM] OPERATIONAL_TEMPLATE:Invariant:Component_terminologies_existence">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_OPERATIONAL_TEMPLATE_Invariant_Component_terminologies_existence-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;color:#000000; font-family:Times New Roman; font-weight:normal; font-size:10pt;&quot;>An [AOM] OPERATIONAL_TEMPLATE maps to an AML Archetype with value of tag archetypeType=ArchetypeType::template. &amp;#160;Within the implicit context of an OPERATIONAL_TEMPLATE, there is a logical compendium of flattened terminologies from &lt;/span>&lt;span style=&quot;color:#000000; font-family:Times New Roman; font-weight:normal; font-size:10pt;&quot;>externally referenced archetypes&lt;/span>&lt;span style=&quot;color:#000000; font-family:Times New Roman; font-weight:normal; font-size:10pt;&quot;>.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_OPERATIONAL_TEMPLATE_Invariant_Component_terminologies_existence-specification">
<language>English</language>
<body>The compendium of terminologies from externally archetypes is derivable from the AML model.
Although not explicitly defined in AML, it is conceptually derivable from an Archetype.
The derived value would contain a list of the flattened terminologies from the externally referenced archetypes.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_original_language_validity" name="[AOM] ARCHETYPE_TERMINOLOGY:Invariant:original_language_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_original_language_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>There must exist an original language for the [AOM] ARCHETYPE_TERMINOLOGY. &amp;#160;This [AOM] invariant maps to the requirement that an AML Archetype Package must have exactly one Usage association named &amp;quot;terminology_original_language&amp;quot; whose supplier is a ResourceTranslation.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_original_language_validity-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency->select(d|d.oclIsKindOf(Usage) and (d.name='terminology_original_language')).supplier
->select(e|e.stereotypedBy('ResourceTranslation'))
->size()=1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_concept_code_validity" name="[AOM] ARCHETYPE_TERMINOLOGY:Invariant:concept_code_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_concept_code_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] ARCHETYPE/concept_code must be represented in the terminology definition. &amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] ARCHETYPE/concept_code is mapped to&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;> the AML language-specific text for the top-level Archetype definition Classifier. &amp;#160;Thus in AML, this [AOM] invariant maps to the requirement that the Archetype definition Classifier must have an «IdentifiedItem» id tag whose value is a «ArchetypeTerm» &amp;#160;within an Identifier Definition.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_concept_code_validity-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency
->select(d|d.stereotypedBy('ArchetypeDefinition')).supplier->exists(s|s.appliedStereotypeInstance.oclAsType(ComplexObjectConstraint).id->notEmpty())
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_term_definitions_validity" name="[AOM] ARCHETYPE_TERMINOLOGY:Invariant:term_definitions_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_term_definitions_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] ARCHETYPE_TERMINOLOGY/term_definitions maps to a set of AML &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«ResourceTranslation»s, one per language. &amp;#160; There must be one ore more &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«ResourceTranslation»s for an Archetype.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_term_definitions_validity-specification">
<language>OCL</language>
<body>self.base_Package.clientDependency->select(d|d.oclIsKindOf(Usage) and (d.name='original_language')).supplier
->exists(e|e.stereotypedBy('ResourceTranslation'))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_Parent_archetype_valid" name="[AOM] ARCHETYPE_TERMINOLOGY:Invariant:Parent_archetype_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_Parent_archetype_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot;>
&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;>The [AOM] ARCHETYPE/terminology is required. &amp;#160;&lt;/span>&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;>The [AOM] ARCHETYPE/terminology maps to a nested Package of the&lt;/span>&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;> &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«Archetype»&lt;/span>&lt;span style=&quot;font-weight:normal; font-family:TimesNewRomanPSMT; font-size:10pt; color:#000000;&quot;> Package named &amp;quot;ontology&amp;quot;. &lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_ARCHETYPE_TERMINOLOGY_Invariant_Parent_archetype_valid-specification">
<language>OCL</language>
<body>self.base_Package.nestedPackage->exists(p|p.name='ontology')</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARIABLE_DECLARATION_Invariant_Name_valid" name="[AOM] VARIABLE_DECLARATION:Invariant:Name_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARIABLE_DECLARATION_Invariant_Name_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An [AOM] VARIABLE_DECLARATION/name maps to a UML InstanceSpecification/name owned by an &amp;lt;&amp;lt;Archetype&amp;gt;&amp;gt; Package.&amp;#160;The name must be defined and not empty.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-Archetype-[AOM]_VARIABLE_DECLARATION_Invariant_Name_valid-specification">
<language>OCL</language>
<body>self.namespace.stereotypedBy('Namespace')
implies(
not( self.name.oclIsUndefined())
and(self.name&lt;>'')
)</body>
</specification>
</ownedRule>
<generalization xmi:id="_Data-ConstraintProfile-Archetype-generalization" general="_Data-ConstraintProfile-AuthoredResource"/>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-base_Package" name="base_Package" visibility="private" association="_Data-ConstraintProfile-packagedElement-8">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-archetypeType" name="archetypeType" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-archetypeType-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The archetypeType tag models the kind of the archetype.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The archetypeType value may be one of &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>archetype&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>, &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>template&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;> or &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>template_overlay&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>.&lt;/span>&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:Enumeration" href="TerminologyProfile.uml#_Data-TerminologyProfile-ArchetypeType"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-Archetype-archetypeType-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-amlVersion" name="amlVersion" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-amlVersion-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The version of the AML specification used to define this version of the Archetype.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-is_controlled" name="is_controlled" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-is_controlled-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The is_controlled tag indicates whether the archetype is change-controlled or not.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>If is_controlled is true, the Archetype should have a revision history section included, otherwise an Archetype may omit the revision history. This indicator enables Archetypes to be privately edited in an early development phase without generating large revision histories of little or no value.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>If this indicator is false, the Archetype is an &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>ad hoc&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>, uncontrolled artifact, not formally associated with any organization.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>This case is typical for an experimental archetype.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>If true, then the archetype must include a namespace which denotes the original authoring organization.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Data-ConstraintProfile-Archetype-is_controlled-defaultValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-is_generated" name="is_generated" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-is_generated-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A flag indicating whether the archetype was generated (&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&lt;i>is_generated&lt;/i>&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> = true) or authored (&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&lt;i>is_generated&lt;/i>&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> = false). This marker is used to support the migration to differential archetype representation introduced in ADL 1.5, to enable proper representation of specialized archetypes.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-Archetype-is_generated-lowerValue"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_Data-ConstraintProfile-Archetype-is_generated-defaultValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-release_version" name="release_version" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-release_version-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The release_version tag specifies the full numeric version of this Archetype.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In AOM, this identifier will consist of 3 parts: the major, the minor and the patch version.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-version_status" name="version_status" visibility="public" type="_Data-ConstraintProfile-VERSION_STATUS">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-version_status-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The version_status tag specifies the status of the version.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-build_count" name="build_count" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-build_count-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt;&quot;>The build_count tag specifies the number of builds since the last increment of any version part.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-other_metadata" name="other_metadata" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-other_metadata-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The other_metadata tag contains additional information about an Archetype.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-Archetype-other_metadata-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-Archetype-other_metadata-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-Archetype-other_metadata_id" name="other_metadata_id" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-Archetype-other_metadata_id-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The other_metadata_id tag contains the name associated with additional information about an Archetype.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>other_metadata_id Strings are matched to other_metadata Strings by order.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-Archetype-other_metadata_id-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-Archetype-other_metadata_id-upperValue" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-8" memberEnd="_Data-ConstraintProfile-Archetype-base_Package _Data-ConstraintProfile-packagedElement-8-extension_" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-8-extension_">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-8-extension_" name="extension_" visibility="private" type="_Data-ConstraintProfile-Archetype" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-8">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-8-extension_-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-AuthoredResource" name="AuthoredResource" isAbstract="true">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An «AuthoredResource» provides descriptive details about a &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>resource as well as metadata about governance and usage.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An «AuthoredResource» represents a combination of the [AOM] AUTHORED_RESOURCE and RESOURCE_DESCRIPTION model elements.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-copyright" name="copyright" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-copyright-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The copyright property records the copyright applying to the artefact, and is normally in the standard form ‘(c) name’ or ‘(c) year name’. The special character © may also be used (UTF-8 0xC2A9).&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-copyright-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-current_revision" name="current_revision" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-current_revision-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The current_revision tag specifies the most recent revision in revision_history if &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&lt;i>is_controlled&lt;/i>&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;> is true else “(uncontrolled)”.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-current_revision-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-custodian_namespace" name="custodian_namespace" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-custodian_namespace-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman,serif; font-size:10.0pt;&quot;>The custodian_namespace &amp;#160;tag specifies the formal namespace corresponding to the current custodian of the artefact. It enables the user of the artefact to determine the definitive maintainer and publisher&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-custodian_namespace-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-custodian_organisation" name="custodian_organisation" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-custodian_organisation-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The custodian_organisation tag specifies a human-readable organization identifier corresponding to the current custodian of the artefact. It enables the user of the artefact to determine the definitive maintainer and publisher.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-custodian_organisation-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-licence" name="licence" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-licence-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The licence (US: ‘license’) under which the artefact can be used. The recommended format is ‘licence name &amp;lt;reliable URL to licence statement&amp;gt;’.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-licence-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-lifecycle_state" name="lifecycle_state" visibility="public" type="_Data-ConstraintProfile-Lifecycle_state" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-lifecycle_state-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
The lifecycle_state property is used to record its state in a defined lifecycle. &amp;#160;The lifecycle state machine and versioning roles are explained fully in the openEHR Knowledge Artefact Identification [KIS] specification.&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_date" name="original_author_date" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_date-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
Date of original authoring of the resource.
&lt;/p>
&lt;p>
Maps to [AOM] RESOURCE_DESCRIPTION/original_author where id=&amp;quot;date&amp;quot;.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_date-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_email" name="original_author_email" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_email-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The original_author_email tag specifies the original author's email address.
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
Corresponds to [AOM] RESOURCE_DESCRIPTION/original_author where id=&amp;quot;email&amp;quot;.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_email-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_name" name="original_author_name" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_name-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The original_author_name &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>tag specifies the name of original author.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Maps to [AOM] RESOURCE_DESCRIPTION/original_author where id=&amp;quot;name&amp;quot;.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_name-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_organization" name="original_author_organization" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_organization-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The original_author_organization tag specifies the name of original author's organization.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-right:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Maps to [AOM] RESOURCE_DESCRIPTION/original_author where id=&amp;quot;organization&amp;quot;.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-original_author_organization-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-original_namespace" name="original_namespace" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-original_namespace-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The original publishing organization namespace, i.e. the original publishing environment where the artefact was first imported or created. The original_namespace property is normally the same value as archetype_id.namespace, unless the artefact has been forked into its current custodian, in which case archetype_id.namespace and custodian_namespace will be the same.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-original_namespace-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-original_publisher" name="original_publisher" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-original_publisher-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The original publishing organization, i.e. the original publishing environment where the artefact was first imported or created.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-original_publisher-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-other_contributors" name="other_contributors" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-other_contributors-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>other_contributors&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> property is a simple list of strings, one for each contributor. The recommended format of the string is one of:&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>• ‘first names last name, organization’&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>• ‘first names last name, organization &amp;lt;contributor email address&amp;gt;’&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-top:0in;margin-bottom:0in;margin-left:0in;margin-right:0in;font-family:Times New Roman,serif;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>• ‘first names last name, organization &amp;lt;organization email address&amp;gt;’&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-other_contributors-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-other_contributors-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails" name="otherDetails" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The otherDetails tag contains additional information about an Authored Resource.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails_id" name="otherDetails_id" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails_id-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The otherDetails_id tag contains the name associated with additional information about an Archetype.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>otherDetails_id Strings are matched to otherDetails Strings by order.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails_id-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-otherDetails_id-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-references" name="references" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-references-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The references tag contains external citations and references.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-references-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-references-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-references_id" name="references_id" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-references_id-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The references_id tag contains the name associated with external citations and references.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-bottom:0in;margin-top:0in;margin-right:0in;font-family:Times New Roman,serif;margin-left:0in;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>references_id Strings are matched to references Strings by order.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-references_id-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-references_id-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceDocumentLanguage" name="resourceDocumentLanguage" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceDocumentLanguage-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The language (e.g. [AOM], CEM, ...) of the source of the constraints, if any.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag has no mapping to [AOM].&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceDocumentLanguage-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceDocumentSyntax" name="resourceDocumentSyntax" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceDocumentSyntax-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The syntax of the resource document ([ADL], [XML], [XMI], ...).&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag has no mapping to [AOM].&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceDocumentSyntax-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceSource" name="resourceSource" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceSource-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A URI that references the source document (if any) from which the original resource was derived.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag has no mapping to [AOM].&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceSource-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceSourceURI" name="resourceSourceURI" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceSourceURI-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The resourceSourceURI &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>tag specifies an external identifier that uniquely identifies this Archetype. The format and structure of this identifier are determined by the rules of the &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>resourceDocumentLanguage&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;> and/or &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>resourceDocumentSyntax&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>. This identifier cannot be used as an identifier within AML itself as it may not always be present. It must be preserved, however, for export to external resources.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-right:0in;margin-top:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag has no mapping to [AOM].&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-resourceSourceURI-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-base_Namespace" name="base_Namespace" visibility="private" association="_Data-ConstraintProfile-packagedElement-12">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Namespace"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-resource_package_uri" name="resource_package_uri" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-resource_package_uri-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The optional &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>resource_package_uri&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;> property enables the recording of a reference to a package of archetypes or other resources, to which this archetype is considered to belong. It may be in the form of ‘text &amp;lt;URL&amp;gt;’.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag has no mapping to [AOM].&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-resource_package_uri-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-uid" name="uid" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-uid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
The &lt;span>uid&lt;/span> attribute defines a machine identifier equivalent to the human readable archetype_id.semantic_id, i.e. ARCHETYPE_HRID up to its major version, and changes whenever the latter does. It is defined as optional but to be practically useful would need to be mandatory for all archetypes within a custodian organization where this identifier was in use. It could in principle be synthesized at any time for a custodian that decided to implement it.&lt;span>&amp;#160; &lt;/span>This tag has no mapping to [AOM].
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-uid-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements" name="ip_acknowledgements" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The ip_acknowledgements tag contains acknowledgements about intellectual property.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements_id" name="ip_acknowledgements_id" visibility="public">
<ownedComment xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements_id-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The ip_acknowledgements_id tag contains the name associated with acknowledgements about intellectual property.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>ip_acknowledgements_id Strings are matched to ip_acknowledgements Strings by order.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements_id-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-AuthoredResource-ip_acknowledgements_id-upperValue" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ResourceTranslation" name="ResourceTranslation">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A «ResourceTranslation» models language-specific terminology definitions.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Each «ResourceTranslation» contains metadata about the language, metadata about the translation in the context of the Archetype, and an entry for each terminology definition associated with the identified elements within the Archetype definition.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A «ResourceTranslation» maps to [AOM] TRANSLATION_DETAILS and RESOURCE_DESCRIPTION_ITEM.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>A Resource Translation is associated with an Archetype Package via a Usage relationship named &amp;quot;original_language&amp;quot; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&lt;i>and&lt;/i>&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> a Usage named &amp;quot;terminology_original_language&amp;quot;.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The “original_language” Usage maps to [AOM] AUTHORED_RESOURCE/original_language and the “terminology_original_language” Usage maps to [AOM] ARCHETYPE_TERMINOLOGY/original_language.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ResourceTranslation-[AOM]_VOTM-_terminology_translations_validity" name="[AOM] VOTM- terminology translations validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-[AOM]_VOTM-_terminology_translations_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Translations must exist for term_definitions and constraint_definitions sections for all languages defined in the description / translations section.&amp;#160;&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ResourceTranslation-[AOM]_VOTM-_terminology_translations_validity-specification">
<language>OCL</language>
<body>self.base_Enumeration.ownedLiteral->notEmpty()
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ResourceTranslation-translationEntries" name="translationEntries">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-translationEntries-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>All of the ownedLiterals must be stereotyped by IdEntry.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ResourceTranslation-translationEntries-specification">
<language>OCL</language>
<body>self.base_Enumeration.ownedLiteral->forAll(ol|ol.stereotypedBy('IdEntry'))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ResourceTranslation-uniqueEntries" name="uniqueEntries">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-uniqueEntries-ownedComment">
<body>The ref tags of the ownedLiterals must all be unique. No two translation entries may reference the same identifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ResourceTranslation-uniqueEntries-specification">
<language>OCL</language>
<body>self.base_Enumeration.ownedLiteral->size()
=
self.base_Enumeration.ownedLiteral.appliedStereotype('IdEntry').oclAsType(IdEntry).ref->asSet()->size()
</body>
</specification>
</ownedRule>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-base_Enumeration" name="base_Enumeration" visibility="private" association="_Data-ConstraintProfile-packagedElement-16">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Enumeration"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-accreditation" name="accreditation" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-accreditation-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span>&amp;#160;&lt;/span>The accreditation tag is used to specify the credentials of the translator.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-accreditation-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details" name="other_translation_details" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The other_translation_details tag contains other details of a translation.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-right:0in;margin-top:0in;margin-bottom:0in;font-family:Times New Roman,serif;font-size:10.0pt;margin-left:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag maps to the value portion of the [AOM] TRANSLATION_DETAILS&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>other_details&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;> property.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details_id" name="other_translation_details_id" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details_id-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The other_translation_details_id tag contains the name associated with other details of a translation.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>other_translation_details_id Strings are matched to other_translation_details Strings by order.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details_id-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_translation_details_id-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-purpose" name="purpose" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-purpose-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The &lt;span>purpose&lt;/span> tag specifies the intended design concept of the artefact.&lt;span>&amp;#160; &lt;/span>This tag maps to the [AOM] attribute RESOURCE_DESCRIPTION_ITEM/purpose.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-keywords" name="keywords" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-keywords-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The &lt;span>keywords&lt;/span> tag is a list of keywords for the artifact.&lt;span>&amp;#160; &lt;/span>This tag maps to the [AOM] attribute RESOURCE_DESCRIPTION_ITEM/&lt;span>keyword&lt;/span>.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-keywords-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-keywords-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-use" name="use" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-use-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The &lt;span>use&lt;/span> tag specifies uses of the archetype. This tag maps to the attribute [AOM] RESOURCE_DESCRIPTION_ITEM/&lt;i>use&lt;/i>.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-use-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-misuse" name="misuse" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-misuse-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>misuse&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> tag specifies common errors of use, or apparently reasonable but wrong assumptions about use. This tag maps to the attribute [AOM] RESOURCE_DESCRIPTION_ITEM/misuse.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-misuse-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-copyright" name="copyright" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-copyright-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The &lt;u>copyright&lt;/u> property records the copyright applying to the artefact, and is normally in the standard form ‘(c) name’ or ‘(c) year name’. The special character © may also be used (UTF-8 0xC2A9).
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-copyright-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uri" name="original_resource_uri" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uri-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The &lt;span>original_resource_uri&lt;/span> tag specifies references to original resources for this natural language. This tag maps to [AOM] RESOURCE_DESCRIPTION_ITEM/&lt;span>original_resource_uri&lt;/span>.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uri-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uri-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uriId" name="original_resource_uriId" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uriId-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The original_resource_uriId tag contains the name associated with original resources for this natural language.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>original_resource_uriId Strings are matched to original_resource_uri Strings by order.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uriId-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-original_resource_uriId-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_details" name="other_details" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_details-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The other_details tag specifies additional information about the translation.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag maps to attribute [AOM] RESOURCE_DESCRIPTION_ITEM/other_detail.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_details-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_details-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_detailsId" name="other_detailsId" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_detailsId-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The other_detailsId tag contains the name associated with additional information about the translation.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>other_detailsId Strings are matched to other_details Strings by order.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_detailsId-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Data-ConstraintProfile-ResourceTranslation-other_detailsId-upperValue" value="*"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_name" name="author_name" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_name-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The author_name tag specifies the name of translation author.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag maps to [AOM] TRANSLATION_DETAILS/author item where id='name'.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_name-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_organization" name="author_organization" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_organization-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The author_name tag specifies the name author's organization.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag maps to [AOM] TRANSLATION_DETAILS/author item where id='organization'.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_organization-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_email" name="author_email" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_email-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The author_ email tag specifies the name author's e-mail address.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag maps to [AOM] TRANSLATION_DETAILS/author item where id='email'.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_email-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_date" name="author_date" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_date-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The author_ date tag specifies the date that the author made the translation.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>This tag maps to [AOM] TRANSLATION_DETAILS/author item where id='date'.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-author_date-lowerValue"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceTranslation-version_last_translated" name="version_last_translated" visibility="public" aggregation="composite">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceTranslation-version_last_translated-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman;&quot;>The &lt;/span>&lt;span style=&quot;font-family:Times New Roman;&quot;>version_last_translated&lt;/span>&lt;span style=&quot;font-family:Times New Roman;&quot;> tag is used to specify when the last translation was carried out for this language.&lt;/span>&lt;span style=&quot;font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman;&quot;>The value of the tag is expected to be a physical_id, as defined for the [AOM] attribute &lt;/span>&lt;span style=&quot;font-family:Times New Roman;&quot;>ARCHETYPE_HRID/physical_id.&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman;&quot;>This tag enables maintainers to know when new translations are needed for some or all languages.&lt;/span>
&lt;/p>
&lt;p style=&quot;font-family:Times New Roman,serif;margin-top:0in;margin-bottom:0in;font-size:10.0pt;margin-left:0in;margin-right:0in;&quot;>
&lt;span style=&quot;font-family:Times New Roman;&quot;>This tag maps to the [AOM] attribute TRANSLATION_DETAILS/version_last_translated.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-ResourceTranslation-version_last_translated-lowerValue"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ArchetypeDefinition" name="ArchetypeDefinition">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeDefinition-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The ArchetypeDefinition stereotype associates a ComplexObjectConstraint supplier with an&amp;#160;Archetype client, indicating that the ComplexObjectConstraint is the root definition of the client Archetype. &amp;#160;ArchetypeDefinition corresponds to the definition association between&amp;#160;ARCHETYPE and C_COMPLEX_OBJECT in the [AOM] model.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeDefinition-[AOM]_ARCHETYPE_HRID_Invariant_Rm_class_name_validity" name="[AOM] ARCHETYPE_HRID:Invariant:Rm_class_name_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeDefinition-[AOM]_ARCHETYPE_HRID_Invariant_Rm_class_name_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p align=&quot;left&quot; style=&quot;margin-top:0px;margin-bottom:0px;margin-left:0.0px;&quot;>
&lt;span style=&quot;font-weight:normal; font-family:Times New Roman; font-size:10pt; color:#000000;&quot;>The [AOM] ARCHETYPE_HRID/Rm_class maps to the name of the Reference Model Classifier which is the general of the top level Archetype definition Classifier. &amp;#160;The [AOM] invariant maps to the AML requirement that the top level Archetype definition Classifier must exist.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeDefinition-[AOM]_ARCHETYPE_HRID_Invariant_Rm_class_name_validity-specification">
<language>OCL</language>
<body>self.base_Usage.supplier->exists(s|s.stereotypedBy('ObjectConstraint') and s.oclAsType(Classifier).general->notEmpty())
</body>
</specification>
</ownedRule>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ArchetypeDefinition-base_Usage" name="base_Usage" visibility="private" association="_Data-ConstraintProfile-packagedElement-13">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Usage"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-12" memberEnd="_Data-ConstraintProfile-AuthoredResource-base_Namespace _Data-ConstraintProfile-packagedElement-12-extension_AuthoredResource" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-12-extension_AuthoredResource">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-12-extension_AuthoredResource" name="extension_AuthoredResource" visibility="private" type="_Data-ConstraintProfile-AuthoredResource" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-12">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-12-extension_AuthoredResource-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-13" memberEnd="_Data-ConstraintProfile-ArchetypeDefinition-base_Usage _Data-ConstraintProfile-packagedElement-13-extension_ArchetypeCurrentVersion" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-13-extension_ArchetypeCurrentVersion">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-13-extension_ArchetypeCurrentVersion" name="extension_ArchetypeCurrentVersion" visibility="private" type="_Data-ConstraintProfile-ArchetypeDefinition" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-13">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-13-extension_ArchetypeCurrentVersion-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-14" memberEnd="_Data-ConstraintProfile-ComplexObjectConstraint-base_Classifier _Data-ConstraintProfile-packagedElement-14-extension_ComplexObjectConstraint" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-14-extension_ComplexObjectConstraint">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-14-extension_ComplexObjectConstraint" name="extension_ComplexObjectConstraint" visibility="private" type="_Data-ConstraintProfile-ComplexObjectConstraint" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-14">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-14-extension_ComplexObjectConstraint-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-15" memberEnd="_Data-ConstraintProfile-ObjectConstraint-base_NamedElement _Data-ConstraintProfile-packagedElement-15-extension_ObjectConstraint" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-15-extension_ObjectConstraint">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-15-extension_ObjectConstraint" name="extension_ObjectConstraint" visibility="private" type="_Data-ConstraintProfile-ObjectConstraint" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-15">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-15-extension_ObjectConstraint-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-16" memberEnd="_Data-ConstraintProfile-ResourceTranslation-base_Enumeration _Data-ConstraintProfile-packagedElement-16-extension_ResourceTranslation" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-16-extension_ResourceTranslation">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-16-extension_ResourceTranslation" name="extension_ResourceTranslation" visibility="private" type="_Data-ConstraintProfile-ResourceTranslation" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-16">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-16-extension_ResourceTranslation-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ArchetypeSlot" name="ArchetypeSlot">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An «ArchetypeSlot» provides a set of constraints on the possible Archetypes that determines which other archetypes can appear at that point in the current archetype. It can be thought of like a keyhole, into which few or many keys might fit, depending on how specific its shape is. Logically it has the same semantics as a ComplexObjectConstraint, except that the constraints are expressed in another Archetype, not the current one.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>ArtchetypeSlot allows an archetype to have a composition relationship with any number of archetypes matching some constraint pattern. Depending on what archetypes are available within the system, the archetypes matched may vary.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Assertions are used in ArchetypeSlots, in order to express the ‘included’ and ‘excluded’ archetypes for the slot. In this case, each assertion is an expression that refers to parts of other archetypes, such as its identifier (e.g. ‘include archetypes with short_concept_name matching xxxx’).&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>Assertions are modeled in AML as a generic expression tree of unary prefix and binary infix operators.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>In AML, the assertions are modeled using a Constraint whose specification is a UML Expression.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The UML Expression construct enables representation of the generic [AOM] expression tree consisting of unary prefix and binary infix operators.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The top level Expression symbol for an Assertion will be 'include' or 'exclude' to reflect the kind of assertion to be made on the slot.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;margin-bottom:0in;font-size:10.0pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>An ArchetypeSlot can be redefined by:&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-left:.5in;font-family:Times New Roman,serif;margin-top:0in;margin-right:0in;font-size:10.0pt;text-indent:-.25in;margin-bottom:.0001pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;;font-variant:normal; line-height:normal;&quot;>·&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman; font-weight:normal;;font-variant:normal; line-height:normal;&quot;>&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>one or more ArchetypeRoot nodes taken together, considered to define a ‘filled’ version of the slot;&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-left:.5in;font-family:Times New Roman,serif;margin-top:0in;margin-right:0in;font-size:10.0pt;text-indent:-.25in;margin-bottom:.0001pt;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;;font-variant:normal; line-height:normal;&quot;>·&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman; font-weight:normal;;font-variant:normal; line-height:normal;&quot;>&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>an ArchetypeSlot.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If the UML attribute 'leaf' is set, the slot is closed to further filling either in further specializations or at runtime.&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>If leaf is not set, the slot remains open.&lt;/span>
&lt;/p>
&lt;p style=&quot;margin-top:0in;margin-left:0in;font-family:Times New Roman,serif;margin-right:0in;font-size:10.0pt;margin-bottom:0in;&quot;>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The redefinition of an ArchetypeSlot is modeled as a Generalization in UML, in which the general is an ArchetypeSlot and the specific is either a ArchetypeRoot or another ArchetypeSlot.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSP-_specialised_archetype_slot_definition_parent_validity" name="[AOM] VDSSP- specialised archetype slot definition parent validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSP-_specialised_archetype_slot_definition_parent_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The flat parent of the specialization of an archetype slot must not be closed (is_closed = False).&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSP-_specialised_archetype_slot_definition_parent_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|g.stereotypedBy('ARCHETYPE_SLOT'))
implies
self.base_Classifier.general->forAll(g|not(g.isLeaf))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSEV-_archetype_slot_‘exclude’_constraint_validity" name="[AOM] VDSEV- archetype slot ‘exclude’ constraint validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSEV-_archetype_slot_‘exclude’_constraint_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The ‘exclude’ constraint in an archetype slot must conform to the slot constraint validity rules.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSEV-_archetype_slot_‘exclude’_constraint_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.ownedRule.specification->select(r|r.oclAsType(Expression).symbol='includes')->notEmpty()
implies
self.base_Classifier.ownedRule.specification->select(r|r.oclAsType(Expression).symbol='excludes')->isEmpty()
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSM-_specialised_archetype_slot_definition_match_validity" name="[AOM] VDSSM- specialised archetype slot definition match validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSM-_specialised_archetype_slot_definition_match_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The set of archetypes matched from a library of archetypes by a specialized archetype slot definition must be a proper subset of the set matched from the same library by the parent slot definition.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSM-_specialised_archetype_slot_definition_match_validity-specification">
<language>English</language>
<body>The set of archetypes matched from a library of archetypes by a specialized archetype slot definition
must be a proper subset of the set matched from the same library by the parent slot definition.</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSID-_slot_redefinition_child_node_id" name="[AOM] VDSSID- slot redefinition child node id">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSID-_slot_redefinition_child_node_id-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>A slot node in a specialised archetype that redefines a slot node in the flat parent must have an identical node id.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSID-_slot_redefinition_child_node_id-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|g.stereotypedBy('ArchetypeRoot'))
implies
(self.base_Classifier.appliedStereotype('ArchetypeRoot').oclAsType(ArchetypeRoot).id
->forAll(e|e =self.base_Classifier.general.appliedStereotype('ArchetypeRoot').oclAsType(ArchetypeRoot).id->asSequence()->first())
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSC-_specialised_archetype_slot_definition_closed_validity" name="[AOM] VDSSC- specialised archetype slot definition closed validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSC-_specialised_archetype_slot_definition_closed_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>In the specialization of an archetype slot, either the slot can be specified to be closed (is_closed = True) or the slot can be narrowed, but not both.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSSC-_specialised_archetype_slot_definition_closed_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|g.stereotypedBy('ARCHETYPE_ROOT'))
implies
(self.base_Classifier.ownedRule->isEmpty()=self.base_Classifier.isLeaf)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSIV-_archetype_slot_‘include’_constraint_validity" name="[AOM] VDSIV- archetype slot ‘include’ constraint validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSIV-_archetype_slot_‘include’_constraint_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The ‘include’ constraint in an archetype slot must conform to the slot constraint validity rules.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_VDSIV-_archetype_slot_‘include’_constraint_validity-specification">
<language>OCL</language>
<body>(self.base_Classifier.ownedRule->select(r|r.specification.oclAsType(Expression).symbol='excludes')->notEmpty())
implies
(self.base_Classifier.ownedRule->select(r|r.specification.oclAsType(Expression).symbol='includes')->isEmpty())
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_ARCHETYPE_SLOT_Invariant_includes_valid" name="[AOM] ARCHETYPE_SLOT:Invariant:includes_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_ARCHETYPE_SLOT_Invariant_includes_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p style=&quot;margin-top:0px;margin-left:0.0px;margin-bottom:0px;&quot; align=&quot;left&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] ARCHETYPE_SLOT/&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>includes&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> is defined implies &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>ARCHETYPE_SLOT/&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>includes&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> is not empty. &amp;#160;&amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The [AOM] ARCHETYPE_SLOT/&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>includes&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;> maps to AML as a list of 'include' Expressions.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_ARCHETYPE_SLOT_Invariant_includes_valid-specification">
<language>English</language>
<body>The [AOM] Invariant is definitional for AML. An undefined [AOM] ARCHETYPE_SLOT/includes maps to an empty list of include Expressions.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_ARCHETYPE_SLOT_Invariant_excludes_valid" name="[AOM] ARCHETYPE_SLOT:Invariant:excludes_valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_ARCHETYPE_SLOT_Invariant_excludes_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] ARCHETYPE_SLOT/excludes is defined implies &lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>ARCHETYPE_SLOT/&lt;/span>&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>excludes is not empty. &amp;#160;&amp;#160;&lt;/span>
&lt;/p>
&lt;p>
&lt;span style=&quot;font-size:10pt; font-family:Times New Roman;&quot;>The [AOM] ARCHETYPE_SLOT/excludes maps to AML as a list of 'exclude' Expressions.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeSlot-[AOM]_ARCHETYPE_SLOT_Invariant_excludes_valid-specification">
<language>English</language>
<body>The [AOM] Invariant is definitional for AML. An undefined [AOM] ARCHETYPE_SLOT/excludes maps to an empty list of exclude Expressions.</body>
</specification>
</ownedRule>
<generalization xmi:id="_Data-ConstraintProfile-ArchetypeSlot-generalization" general="_Data-ConstraintProfile-ObjectConstraint"/>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ArchetypeSlot-base_Classifier" name="base_Classifier" visibility="private" association="_Data-ConstraintProfile-packagedElement-18">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-18" memberEnd="_Data-ConstraintProfile-ArchetypeSlot-base_Classifier _Data-ConstraintProfile-packagedElement-18-extension_ARCHETYPE_SLOT" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-18-extension_ARCHETYPE_SLOT">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-18-extension_ARCHETYPE_SLOT" name="extension_ARCHETYPE_SLOT" visibility="private" type="_Data-ConstraintProfile-ArchetypeSlot" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-18">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-18-extension_ARCHETYPE_SLOT-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ArchetypeRoot" name="ArchetypeRoot">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«ArchetypeRoot» is a specialization of «ComplexObjectConstraint » in which an external «Archetype» is being reused.&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160; &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The reuse reference to the external «Archetype» is modeled as a «Constrains» Generalization in which the specific Classifier is this «ArchetypeRoot» and the general is the top-level definition Classifier for the external &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«Archetype».&lt;/span>
&lt;/p>
&lt;p style=&quot;font-size:10.0pt;margin-bottom:0in;margin-top:0in;margin-right:0in;font-family:Times New Roman,serif;margin-left:0in;&quot;>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>An «ArchetypeRoot» does not own any attributes.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXNC-_external_reference_node_identifier_validity" name="[AOM] VARXNC- external reference node identifier validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXNC-_external_reference_node_identifier_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
If the reference object is a redefinition of either a slot node, or another external reference node, the node_id of the object must conform to (i.e. be the same or a child of) the node_id of the corresponding parent node.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
Note that the AML-UML transformation to [AOM] may coerce the node_id of provisioned C_ARCHETYPE_ROOT to a value in conformance with the [AOM] Validation Rule.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXNC-_external_reference_node_identifier_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|g.stereotypedBy('ArchetypeRoot')or g.stereotypedBy('ArchetypeSlot'))
implies
self.id.oclAsType(EnumerationLiteral)
->forAll(e|e.name.startsWith(self.base_Classifier.general.appliedStereotypeInstance.oclAsType(ObjectConstraint).id.oclAsType(EnumerationLiteral).name->asSequence()->first()))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXTV-_external_reference_type_validity" name="[AOM] VARXTV- external reference type validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXTV-_external_reference_type_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
This Archetype Root must conform to the type it references, which may be a Reference Model Classifier or an Archetype Classifier.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXTV-_external_reference_type_validity-specification">
<language>English</language>
<body>The [AOM] Validation Rule is enforced by UML semantics for inheritance,
since the «ArchetypeRoot» inherits from the «ArchetypeSlot» in the archetype parent archetype
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXS-_external_reference_conforms_to_slot" name="[AOM] VARXS- external reference conforms to slot">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXS-_external_reference_conforms_to_slot-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The archetype referenced must be in the same library as this archetype.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXS-_external_reference_conforms_to_slot-specification">
<language>OCL</language>
<body>self.base_Classifier.general.namespace.namespace->forAll(al|al=self.base_Classifier.namespace.namespace)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXR-_external_reference_refers_to_resolvable_artefact" name="[AOM] VARXR- external reference refers to resolvable artefact">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXR-_external_reference_refers_to_resolvable_artefact-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The archetype reference must refer to an artefact that can be found in the current repository.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXR-_external_reference_refers_to_resolvable_artefact-specification">
<language>English</language>
<body>In AML-UML, the archetype reference is modeled using inheritance, which enforces that the referenced artefact is accessible.
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXID-_external_reference_slot_filling_id_validity" name="[AOM] VARXID- external reference slot filling id validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXID-_external_reference_slot_filling_id_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
An external reference node defined as a filler for a slot in the parent archetype must have a node id that is a specialization of that of the slot.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
Note that mapping to [AOM] may coerce the value of C_ARCHETYPE_ROOT/node_id to a value in conformance with this [AOM] Validation Rule.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXID-_external_reference_slot_filling_id_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|g.stereotypedBy('ArchetypeRoot')or g.stereotypedBy('ArchetypeSlot'))
implies
self.id.oclAsType(EnumerationLiteral)
->forAll(e|e.name.startsWith(
self.base_Classifier.general.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id.oclAsType(EnumerationLiteral).name->asSequence()->first()
)
)
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_C_ARCHETYPE_ROOT_Invariant_Archetype_ref_validity" name="[AOM] C_ARCHETYPE_ROOT:Invariant:Archetype_ref_validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_C_ARCHETYPE_ROOT_Invariant_Archetype_ref_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>The &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«Archetype» Classifier must specialize an &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>«ObjectConstraint» Classifier which is the root of an Archetype definition.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_C_ARCHETYPE_ROOT_Invariant_Archetype_ref_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.general.supplierDependency.client->exists(g|g.stereotypedBy('Archetype'))
</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXAV-_external_reference_node_archetype_reference_validity" name="[AOM] VARXAV- external reference node archetype reference validity">
<ownedComment xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXAV-_external_reference_node_archetype_reference_validity-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>If this Archetype root is a redefinition of another external node, then that external node must have as an ancestor the Archetype definition which is the parent of this Archetype.&lt;/span>
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ArchetypeRoot-[AOM]_VARXAV-_external_reference_node_archetype_reference_validity-specification">
<language>OCL</language>
<body>self.base_Classifier.general->forAll(g|g.stereotypedBy('ArchetypeRoot'))
implies
self.base_Classifier.general.general
->forAll(g|g.namespace=self.base_Classifier.namespace.oclAsType(Package).packageImport.importedPackage->select(p|p.stereotypedBy('Archetype'))->asSequence()->first())
</body>
</specification>
</ownedRule>
<generalization xmi:id="_Data-ConstraintProfile-ArchetypeRoot-generalization" general="_Data-ConstraintProfile-ComplexObjectConstraint"/>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ArchetypeRoot-base_Classifier" name="base_Classifier" visibility="private" association="_Data-ConstraintProfile-packagedElement-20">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-20" memberEnd="_Data-ConstraintProfile-ArchetypeRoot-base_Classifier _Data-ConstraintProfile-packagedElement-20-extension_C_ARCHETYPE_ROOT" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-20-extension_C_ARCHETYPE_ROOT">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-20-extension_C_ARCHETYPE_ROOT" name="extension_C_ARCHETYPE_ROOT" visibility="private" type="_Data-ConstraintProfile-ArchetypeRoot" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-20">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-20-extension_C_ARCHETYPE_ROOT-lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_Data-ConstraintProfile-Lifecycle_state" name="Lifecycle_state">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The Lifecycle_state Enumeration is used to specify the state of an Archetype within its defined lifecycle. &lt;span>&amp;#160;&lt;/span>The lifecycle state machine and versioning rules are explained fully in the openEHR Knowledge Artefact Identification specification [&lt;span style=&quot;font-size:10.0pt; font-family:Times New Roman,serif;&quot;>KIS&lt;/span>].
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedLiteral xmi:id="_Data-ConstraintProfile-Lifecycle_state-unmanaged" name="unmanaged">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-unmanaged-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span>&amp;#160;&lt;/span>A code indicating that an artifact has no recognized owner organization.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-Lifecycle_state-in_development" name="in_development">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-in_development-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating that an artifact is actively being created or modified.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-Lifecycle_state-release_candidate" name="release_candidate">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-release_candidate-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman,serif; font-size:10.0pt;&quot;>A code indicating that an artifact is being considered for publication.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-Lifecycle_state-published" name="published">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-published-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating that an artifact is available and is in active use.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-Lifecycle_state-rejected" name="rejected">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-rejected-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating that an artifact is withdrawn from development prior to being published.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-Lifecycle_state-deprecated" name="deprecated">
<ownedComment xmi:id="_Data-ConstraintProfile-Lifecycle_state-deprecated-ownedComment">
<body>A code indicating that the artifact that is obsolete, suspended or withdrawn from active use</body>
</ownedComment>
</ownedLiteral>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_Data-ConstraintProfile-VERSION_STATUS" name="VERSION_STATUS">
<ownedComment xmi:id="_Data-ConstraintProfile-VERSION_STATUS-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
Status of this version, as one of a number of possible values: uncontrolled, prerelease, release, build.&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedLiteral xmi:id="_Data-ConstraintProfile-VERSION_STATUS-alpha" name="alpha">
<ownedComment xmi:id="_Data-ConstraintProfile-VERSION_STATUS-alpha-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating a version which is ‘unstable’ i.e. that the version contains an unknown size of change with respect to its base version. Rendered with the build number as a string in the form “N.M.P-alpha.B” e.g. “2.0.1-alpha.154”.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-VERSION_STATUS-beta" name="beta">
<ownedComment xmi:id="_Data-ConstraintProfile-VERSION_STATUS-beta-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating a version which is ‘beta’ i.e. that the version contains an unknown but reducing size of change with respect to its base version. Rendered with the build number as a string in the form “N.M.P-beta.B” e.g. “2.0.1-beta.154”.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-VERSION_STATUS-release_candidate" name="release_candidate">
<ownedComment xmi:id="_Data-ConstraintProfile-VERSION_STATUS-release_candidate-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating a version which is ‘release candidate’, i.e. contains only patch-level changes on the base version. Rendered as a string as “N.M.P-rc.B” e.g. “2.0.1-rc.27”.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-VERSION_STATUS-released" name="released">
<ownedComment xmi:id="_Data-ConstraintProfile-VERSION_STATUS-released-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
A code indicating a version which is ‘released’, i.e. is the definitive base version.&lt;span>&amp;#160; &lt;/span>Rendered with the build number as a string in the form “N.M.P” e.g. “2.0.1”.
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
<ownedLiteral xmi:id="_Data-ConstraintProfile-VERSION_STATUS-build" name="build">
<ownedComment xmi:id="_Data-ConstraintProfile-VERSION_STATUS-build-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>A code indicating a version is the current base release. &lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>&amp;#160;&lt;/span>&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Rendered with the build number as a string in the form “N.M.P+B” e.g. “2.0.1+33”.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
</ownedLiteral>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Data-ConstraintProfile-ResourceAnnotationNodeItem" name="ResourceAnnotationNodeItem">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceAnnotationNodeItem-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
The annotations section of an archetype or template provides a place for node-level meta-data to be added to the archetype. This can be used during the design phase to track dependencies, design decisions, and specific resource references. Each annotation is keyed by IdentifiedItem id associated with the item being annotated.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
The ResourceAnnotationNodeItem stereotype indicates that the base Comment is an annotation for the annotatedElement, i.e., some Model Element in the Archetype or Reference Model. &amp;#160;Annotations are language specific and are modeled as comments owned by a ResourceTranslation, where the target language is identified by the owning ResourceTranslation.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;The UML annotatedElement attribute of Comment identifies the model element being annotated, which may be a Reference Model element or an ArchetypeTerm EnumerationLiteral within the Archetype IdentifierDefinition.
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;p>
&amp;#160;
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<ownedRule xmi:id="_Data-ConstraintProfile-ResourceAnnotationNodeItem-[AOM]_VRANP-_annotation_path_valid" name="[AOM] VRANP- annotation path valid">
<ownedComment xmi:id="_Data-ConstraintProfile-ResourceAnnotationNodeItem-[AOM]_VRANP-_annotation_path_valid-ownedComment">
<body>&lt;html>
&lt;head>
&lt;style>
p {padding:0px; margin:0px;}
&lt;/style>
&lt;/head>
&lt;body>
&lt;p>
&lt;span style=&quot;font-family:Times New Roman; font-size:10pt;&quot;>Each resource annotation must annotate a reference model or archetype element.&lt;/span>
&lt;/p>
&lt;/body>
&lt;/html></body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_Data-ConstraintProfile-ResourceAnnotationNodeItem-[AOM]_VRANP-_annotation_path_valid-specification">
<language>OCL</language>
<body>not(self.base_Comment.annotatedElement->includes(self.base_Comment.owningElement))
</body>
</specification>
</ownedRule>
<ownedAttribute xmi:id="_Data-ConstraintProfile-ResourceAnnotationNodeItem-base_Comment" name="base_Comment" visibility="private" association="_Data-ConstraintProfile-packagedElement-24">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_Data-ConstraintProfile-packagedElement-24" memberEnd="_Data-ConstraintProfile-ResourceAnnotationNodeItem-base_Comment _Data-ConstraintProfile-packagedElement-24-extension_" navigableOwnedEnd="_Data-ConstraintProfile-packagedElement-24-extension_">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Data-ConstraintProfile-packagedElement-24-extension_" name="extension_" visibility="private" type="_Data-ConstraintProfile-ResourceAnnotationNodeItem" aggregation="composite" association="_Data-ConstraintProfile-packagedElement-24">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Data-ConstraintProfile-packagedElement-24-extension_-lowerValue"/>
</ownedEnd>
</packagedElement>
<profileApplication xmi:id="_h0-UgJOjEeWTr5CKcL0jtg">
<eAnnotations xmi:id="_h0-7kJOjEeWTr5CKcL0jtg" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
</eAnnotations>
<appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
</profileApplication>
</uml:Profile>
<Ecore:EPackage xmi:id="_jg3OkJOjEeWTr5CKcL0jtg" base_Package="_Data-ConstraintProfile" packageName="constraint" nsPrefix="constraint" nsURI="http://www.omg.org/spec/AML/20150501/ConstraintProfile.xmi" basePackage="org.eclipse.mdht.uml.aml" prefix="Constraint"/>
</xmi:XMI>