VariableDescriptorComponent#

Fully qualified class name of the UML model DDI-CDI 1.0: DDICDIModels::DDICDILibrary::Classes::DataDescription::Components::VariableDescriptorComponent

Definition#

Role given to a represented variable in the context of a data structure to provide codes for variable identification.

Examples#

Consider {“income”, “age”} to be the value domain of the represented variable working as a variable descriptor component. The two codes, i.e. those designating “income” and “age”, are descriptors used to identify which values in the variable value component correspond to income and which ones to age.

Explanatory notes#

Whenever more than one variable appears in the same column, we need a mechanism to distinguish which values correspond to which variable. This mechanism is provided by the variable descriptor component, which contains the codes used to link the variables to their values. This structure provides a flexible mechanism avoiding the need for a formal pointer.

Diagram#

Diagram

Inheritance#

Inheritance
  ᐊ── Components::VariableDescriptorComponent

Attributes#

Attributes
Attributes#

Name

Inherited from

Description

Data Type

Multiplicity

Default value

identifier

Components::DataStructureComponent

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

Identifier

0..1

semantic

Components::DataStructureComponent

Qualifies the purpose or use expressed as a paired external controlled vocabulary.

PairedControlledVocabularyEntry

0..*

specialization

Components::DataStructureComponent

The role played by the component for the data set for purposes of harmonization and integration, typically regarding geography, time, etc.

SpecializationRole

0..1

Associations#

Associations
Associations#

Direction

Association

Description

Multiplicity of VariableDescriptorComponent

Package of Other Class

Other Class

Multiplicity of other class

Aggregation Kind

Inherited from

from

DataStructureComponent isDefinedBy RepresentedVariable

Data structure component is defined by zero to one represented variable.

0..*

Conceptual

RepresentedVariable

0..1

none

Components::DataStructureComponent

to

DataPoint correspondsTo DataStructureComponent

0..*

DataDescription

DataPoint

0..*

none

Components::DataStructureComponent

to

DataStructure has DataStructureComponent

0..*

DataDescription

DataStructure

0..1

none

Components::DataStructureComponent

to

KeyMember isBasedOn DataStructureComponent

0..*

DataDescription

KeyMember

0..*

none

Components::DataStructureComponent

to

AttributeComponent qualifies DataStructureComponent

0..*

- own package -

AttributeComponent

0..*

none

Components::DataStructureComponent

to

ComponentPosition indexes DataStructureComponent

0..1

- own package -

ComponentPosition

0..*

none

Components::DataStructureComponent

to

ForeignKeyComponent correspondsTo DataStructureComponent

1..1

- own package -

ForeignKeyComponent

0..1

none

Components::DataStructureComponent

to

PrimaryKeyComponent correspondsTo DataStructureComponent

1..1

- own package -

PrimaryKeyComponent

0..1

none

Components::DataStructureComponent

from

VariableDescriptorComponent isDefinedBy DescriptorVariable

0..*

Long

DescriptorVariable

0..1

none

own class

from

VariableDescriptorComponent refersTo VariableValueComponent

1..1

- own package -

VariableValueComponent

1..1

none

own class

Encodings#

Syntax representations / encodings

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

Fragment for the class VariableDescriptorComponent (entire model as XMI)

 1<packagedElement xmlns:StandardProfile="http://www.omg.org/spec/UML/20131001/StandardProfile"
 2                  xmlns:uml="http://www.omg.org/spec/UML/20131001"
 3                  xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
 4                  xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent"
 5                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent"
 6                  xmi:type="uml:Class">
 7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedComment"
 8                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedComment"
 9                  xmi:type="uml:Comment">
10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent"/>
11      <body>Definition 
12============ 
13Role given to a represented variable in the context of a data structure to provide codes for variable identification.   
14
15Examples 
16========== 
17Consider {"income", "age"} to be the value domain of the represented variable working as a variable descriptor component.  The two codes, i.e. those designating "income" and "age", are descriptors used to identify which values in the variable value component correspond to income and which ones to age.   
18
19Explanatory notes 
20=================== 
21Whenever more than one variable appears in the same column, we need a mechanism to distinguish which values correspond to which variable. This mechanism is provided by the variable descriptor component, which contains the codes used to link the variables to their values.  This structure provides a flexible mechanism avoiding the need for a formal pointer.</body>
22   </ownedComment>
23   <name>VariableDescriptorComponent</name>
24   <generalization xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-generalization"
25                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-generalization"
26                    xmi:type="uml:Generalization">
27      <general xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-DataStructureComponent"/>
28   </generalization>
29   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedAttribute_1"
30                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedAttribute_1"
31                    xmi:type="uml:Property">
32      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedAttribute_1-lowerValue"
33                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedAttribute_1-lowerValue"
34                   xmi:type="uml:LiteralInteger"/>
35      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedAttribute_1-upperValue"
36                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedAttribute_1-upperValue"
37                   xmi:type="uml:LiteralUnlimitedNatural">
38         <value>1</value>
39      </upperValue>
40      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent_isDefinedBy_DescriptorVariable"/>
41      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Long-DescriptorVariable"/>
42   </ownedAttribute>
43   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedAttribute_2"
44                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedAttribute_2"
45                    xmi:type="uml:Property">
46      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedAttribute_2-lowerValue"
47                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedAttribute_2-lowerValue"
48                   xmi:type="uml:LiteralInteger">
49         <value>1</value>
50      </lowerValue>
51      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent-ownedAttribute_2-upperValue"
52                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#VariableDescriptorComponent-ownedAttribute_2-upperValue"
53                   xmi:type="uml:LiteralUnlimitedNatural">
54         <value>1</value>
55      </upperValue>
56      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableDescriptorComponent_refersTo_VariableValueComponent"/>
57      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-VariableValueComponent"/>
58   </ownedAttribute>
59</packagedElement>

Fragment for the class VariableDescriptorComponent (entire XML Schema)

  1<xs:element name="VariableDescriptorComponent"
  2            type="VariableDescriptorComponentXsdType"
  3            xml:id="VariableDescriptorComponent">
  4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::Components::VariableDescriptorComponent -->
  5  <xs:annotation>
  6    <xs:documentation>Definition 
  7          ============ 
  8          Role given to a represented variable in the context of a data structure to provide codes for variable identification.   
  9          
 10          Examples 
 11          ========== 
 12          Consider {"income", "age"} to be the value domain of the represented variable working as a variable descriptor component.  The two codes, i.e. those designating "income" and "age", are descriptors used to identify which values in the variable value component correspond to income and which ones to age.   
 13          
 14          Explanatory notes 
 15          =================== 
 16          Whenever more than one variable appears in the same column, we need a mechanism to distinguish which values correspond to which variable. This mechanism is provided by the variable descriptor component, which contains the codes used to link the variables to their values.  This structure provides a flexible mechanism avoiding the need for a formal pointer.</xs:documentation>
 17  </xs:annotation>
 18</xs:element>
 19<xs:complexType name="VariableDescriptorComponentXsdType"
 20                xml:id="VariableDescriptorComponentXsdType">
 21  <xs:annotation>
 22    <xs:documentation>Definition 
 23          ============ 
 24          Role given to a represented variable in the context of a data structure to provide codes for variable identification.   
 25          
 26          Examples 
 27          ========== 
 28          Consider {"income", "age"} to be the value domain of the represented variable working as a variable descriptor component.  The two codes, i.e. those designating "income" and "age", are descriptors used to identify which values in the variable value component correspond to income and which ones to age.   
 29          
 30          Explanatory notes 
 31          =================== 
 32          Whenever more than one variable appears in the same column, we need a mechanism to distinguish which values correspond to which variable. This mechanism is provided by the variable descriptor component, which contains the codes used to link the variables to their values.  This structure provides a flexible mechanism avoiding the need for a formal pointer.</xs:documentation>
 33  </xs:annotation>
 34  <xs:complexContent>
 35    <xs:extension base="DataStructureComponentXsdType">
 36      <xs:sequence>
 37        <xs:element name="VariableDescriptorComponent_isDefinedBy_DescriptorVariable"
 38                    minOccurs="0"
 39                    maxOccurs="1"
 40                    xml:id="VariableDescriptorComponent_isDefinedBy_DescriptorVariable">
 41          <xs:annotation>
 42            <xs:documentation></xs:documentation>
 43          </xs:annotation>
 44          <xs:complexType>
 45            <xs:complexContent>
 46              <xs:restriction base="AssociationReferenceXsdType">
 47                <xs:sequence>
 48                  <xs:element name="ddiReference"
 49                              type="InternationalRegistrationDataIdentifierXsdType"
 50                              minOccurs="0"
 51                              maxOccurs="1"
 52                              xml:id="VariableDescriptorComponent_isDefinedBy_DescriptorVariable-ddiReference"/>
 53                  <xs:element name="validType"
 54                              minOccurs="0"
 55                              maxOccurs="unbounded"
 56                              xml:id="VariableDescriptorComponent_isDefinedBy_DescriptorVariable-validType">
 57                    <xs:simpleType>
 58                      <xs:restriction base="xs:NMTOKEN">
 59                        <xs:enumeration value="DescriptorVariable"/>
 60                      </xs:restriction>
 61                    </xs:simpleType>
 62                  </xs:element>
 63                </xs:sequence>
 64              </xs:restriction>
 65            </xs:complexContent>
 66          </xs:complexType>
 67        </xs:element>
 68        <xs:element name="VariableDescriptorComponent_refersTo_VariableValueComponent"
 69                    minOccurs="1"
 70                    maxOccurs="1"
 71                    xml:id="VariableDescriptorComponent_refersTo_VariableValueComponent">
 72          <xs:annotation>
 73            <xs:documentation></xs:documentation>
 74          </xs:annotation>
 75          <xs:complexType>
 76            <xs:complexContent>
 77              <xs:restriction base="AssociationReferenceXsdType">
 78                <xs:sequence>
 79                  <xs:element name="ddiReference"
 80                              type="InternationalRegistrationDataIdentifierXsdType"
 81                              minOccurs="0"
 82                              maxOccurs="1"
 83                              xml:id="VariableDescriptorComponent_refersTo_VariableValueComponent-ddiReference"/>
 84                  <xs:element name="validType"
 85                              minOccurs="1"
 86                              maxOccurs="1"
 87                              xml:id="VariableDescriptorComponent_refersTo_VariableValueComponent-validType">
 88                    <xs:simpleType>
 89                      <xs:restriction base="xs:NMTOKEN">
 90                        <xs:enumeration value="VariableValueComponent"/>
 91                      </xs:restriction>
 92                    </xs:simpleType>
 93                  </xs:element>
 94                </xs:sequence>
 95              </xs:restriction>
 96            </xs:complexContent>
 97          </xs:complexType>
 98        </xs:element>
 99      </xs:sequence>
100    </xs:extension>
101  </xs:complexContent>
102</xs:complexType>

Fragment for the class VariableDescriptorComponent (entire JSON Schema)

  1"cls-VariableDescriptorComponent": {
  2  "description": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/VariableDescriptorComponent",
  3  "type": "object",
  4  "properties": {
  5    "@context": {
  6      "$ref": "#/defs/at-context"
  7    },
  8    "@id": {
  9      "type": "string",
 10      "format": "iri-reference"
 11    },
 12    "@type": {
 13      "const": "VariableDescriptorComponent"
 14    },
 15    "identifier": {
 16      "$comment": "cardinality 0..1 – from cdi:DataStructureComponent",
 17      "$ref": "#/defs/dt-Identifier"
 18    },
 19    "semantic": {
 20      "$comment": "cardinality 0..-1 – from cdi:DataStructureComponent",
 21      "if": { "type": "array" },
 22      "then": { "items": { "$ref": "#/defs/dt-PairedControlledVocabularyEntry" } },
 23      "else": { "$ref": "#/defs/dt-PairedControlledVocabularyEntry" }
 24    },
 25    "specialization": {
 26      "$comment": "cardinality 0..1 – from cdi:DataStructureComponent",
 27      "$ref": "#/defs/dt-SpecializationRole"
 28    },
 29    "isDefinedBy_DescriptorVariable": {
 30      "description": "VariableDescriptorComponent_isDefinedBy_DescriptorVariable",
 31      "$comment": "cardinality 0..1",
 32       "$ref": "#/defs/target-DescriptorVariable"
 33    },
 34    "refersTo": {
 35      "description": "VariableDescriptorComponent_refersTo_VariableValueComponent",
 36      "$comment": "cardinality 1..1",
 37       "$ref": "#/defs/target-VariableValueComponent"
 38    },
 39    "isDefinedBy_RepresentedVariable": {
 40      "description": "DataStructureComponent_isDefinedBy_RepresentedVariable",
 41      "$comment": "cardinality 0..1",
 42       "$ref": "#/defs/target-RepresentedVariable"
 43    },
 44    "correspondsTo_DataStructureComponent_OF_DataPoint": {
 45      "description": "DataPoint_correspondsTo_DataStructureComponent",
 46      "$comment": "cardinality 0..-1",
 47      "anyOf": [
 48        {
 49          "$ref": "#/defs/target-DataPoint"
 50        },
 51        {
 52          "type": "array",
 53          "items": {
 54            "$ref": "#/defs/target-DataPoint"
 55          }
 56        }
 57      ]
 58    },
 59    "has_DataStructureComponent_OF_DataStructure": {
 60      "description": "DataStructure_has_DataStructureComponent",
 61      "$comment": "cardinality 0..1",
 62      "$ref": "#/defs/target-DataStructure"
 63    },
 64    "isBasedOn_OF_KeyMember": {
 65      "description": "KeyMember_isBasedOn_DataStructureComponent",
 66      "$comment": "cardinality 0..-1",
 67      "anyOf": [
 68        {
 69          "$ref": "#/defs/target-KeyMember"
 70        },
 71        {
 72          "type": "array",
 73          "items": {
 74            "$ref": "#/defs/target-KeyMember"
 75          }
 76        }
 77      ]
 78    },
 79    "qualifies_OF_AttributeComponent": {
 80      "description": "AttributeComponent_qualifies_DataStructureComponent",
 81      "$comment": "cardinality 0..-1",
 82      "anyOf": [
 83        {
 84          "$ref": "#/defs/target-AttributeComponent"
 85        },
 86        {
 87          "type": "array",
 88          "items": {
 89            "$ref": "#/defs/target-AttributeComponent"
 90          }
 91        }
 92      ]
 93    },
 94    "indexes_OF_ComponentPosition": {
 95      "description": "ComponentPosition_indexes_DataStructureComponent",
 96      "$comment": "cardinality 0..-1",
 97      "anyOf": [
 98        {
 99          "$ref": "#/defs/target-ComponentPosition"
100        },
101        {
102          "type": "array",
103          "items": {
104            "$ref": "#/defs/target-ComponentPosition"
105          }
106        }
107      ]
108    },
109    "correspondsTo_DataStructureComponent_OF_ForeignKeyComponent": {
110      "description": "ForeignKeyComponent_correspondsTo_DataStructureComponent",
111      "$comment": "cardinality 0..1",
112      "$ref": "#/defs/target-ForeignKeyComponent"
113    },
114    "correspondsTo_DataStructureComponent_OF_PrimaryKeyComponent": {
115      "description": "PrimaryKeyComponent_correspondsTo_DataStructureComponent",
116      "$comment": "cardinality 0..1",
117      "$ref": "#/defs/target-PrimaryKeyComponent"
118    },
119    "sameAs": {
120      "$ref": "#/defs/owl:sameAs"
121    }
122  },
123  "required": ["refersTo","@type"],
124  "additionalProperties": false
125},
126"target-VariableDescriptorComponent": {
127  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/VariableDescriptorComponent",
128  "anyOf": [
129    { "$ref": "#/defs/cls-VariableDescriptorComponent" },
130    { "type": "string", "format": "iri-reference" }
131  ]
132},

Fragment for the class VariableDescriptorComponent (main ontology)

 1# class VariableDescriptorComponent
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::Components::VariableDescriptorComponent
 3cdi:VariableDescriptorComponent
 4  a rdfs:Class, owl:Class, ucmis:Class;
 5  rdfs:label "VariableDescriptorComponent";
 6  rdfs:comment "Definition \n============ \nRole given to a represented variable in the context of a data structure to provide codes for variable identification.   \n\nExamples \n========== \nConsider {\"income\", \"age\"} to be the value domain of the represented variable working as a variable descriptor component.  The two codes, i.e. those designating \"income\" and \"age\", are descriptors used to identify which values in the variable value component correspond to income and which ones to age.   \n\nExplanatory notes \n=================== \nWhenever more than one variable appears in the same column, we need a mechanism to distinguish which values correspond to which variable. This mechanism is provided by the variable descriptor component, which contains the codes used to link the variables to their values.  This structure provides a flexible mechanism avoiding the need for a formal pointer."@en;
 7  rdfs:subClassOf cdi:DataStructureComponent;
 8.
 9
10
11cdi:VariableDescriptorComponent_isDefinedBy_DescriptorVariable
12  a rdf:Property, owl:ObjectProperty, ucmis:Association;
13  # ASSOCIATION
14  rdfs:label "isDefinedBy_DescriptorVariable";
15  skos:altLabel "VariableDescriptorComponent_isDefinedBy_DescriptorVariable";
16  
17  rdfs:domain cdi:VariableDescriptorComponent;
18  rdfs:range cdi:DescriptorVariable;
19.
20
21cdi:VariableDescriptorComponent_refersTo_VariableValueComponent
22  a rdf:Property, owl:ObjectProperty, ucmis:Association;
23  # ASSOCIATION
24  rdfs:label "refersTo";
25  skos:altLabel "VariableDescriptorComponent_refersTo_VariableValueComponent";
26  
27  rdfs:domain cdi:VariableDescriptorComponent;
28  rdfs:range cdi:VariableValueComponent;
29.

Fragment for the class VariableDescriptorComponent (entire JSON-LD)

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

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

 1# class VariableDescriptorComponent
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::Components::VariableDescriptorComponent
 3<#VariableDescriptorComponent> a sh:NodeShape;
 4    sh:targetClass cdi:VariableDescriptorComponent;
 5	sh:message "See http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/VariableDescriptorComponent";
 6	sh:closed true;
 7	sh:ignoredProperties ( owl:sameAs );
 8    sh:property [
 9			sh:path rdf:type;
10			sh:in (   cdi:VariableDescriptorComponent
11			 ) ;
12    ];
13    # attributes
14    # associations from VariableDescriptorComponent
15    sh:property <#VariableDescriptorComponent_isDefinedBy_DescriptorVariable>;
16    sh:property <#VariableDescriptorComponent_refersTo_VariableValueComponent>;
17    # associations to VariableDescriptorComponent
18
19    # ---- superclass: DataStructureComponent
20    # attributes
21    sh:property <#DataStructureComponent-identifier>;
22    sh:property <#DataStructureComponent-semantic>;
23    sh:property <#DataStructureComponent-specialization>;
24    # associations from DataStructureComponent
25    sh:property <#DataStructureComponent_isDefinedBy_RepresentedVariable>;
26    # associations to DataStructureComponent
27    sh:property <#rev_DataPoint_correspondsTo_DataStructureComponent>;
28    sh:property <#rev_DataStructure_has_DataStructureComponent>;
29    sh:property <#rev_KeyMember_isBasedOn_DataStructureComponent>;
30    sh:property <#rev_AttributeComponent_qualifies_DataStructureComponent>;
31    sh:property <#rev_ComponentPosition_indexes_DataStructureComponent>;
32    sh:property <#rev_ForeignKeyComponent_correspondsTo_DataStructureComponent>;
33    sh:property <#rev_PrimaryKeyComponent_correspondsTo_DataStructureComponent>;
34
35
36
37
38
39.
40
41
42<#VariableDescriptorComponent_isDefinedBy_DescriptorVariable> a sh:PropertyShape ;
43    sh:path cdi:VariableDescriptorComponent_isDefinedBy_DescriptorVariable;
44	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
45        cdi:DescriptorVariable
46      
47    ) ]];
48    sh:maxCount 1;
49.
50<#rev_VariableDescriptorComponent_isDefinedBy_DescriptorVariable> a sh:PropertyShape ;
51    sh:path [ sh:inversePath cdi:VariableDescriptorComponent_isDefinedBy_DescriptorVariable ];
52.
53<#VariableDescriptorComponent_refersTo_VariableValueComponent> a sh:PropertyShape ;
54    sh:path cdi:VariableDescriptorComponent_refersTo_VariableValueComponent;
55	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
56        cdi:VariableValueComponent
57      
58    ) ]];
59    sh:minCount 1;
60    sh:maxCount 1;
61.
62<#rev_VariableDescriptorComponent_refersTo_VariableValueComponent> a sh:PropertyShape ;
63    sh:path [ sh:inversePath cdi:VariableDescriptorComponent_refersTo_VariableValueComponent ];
64    sh:minCount 1;
65    sh:maxCount 1;
66.

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

 1# class VariableDescriptorComponent
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::Components::VariableDescriptorComponent
 3cdi:VariableDescriptorComponentShape CLOSED {
 4	a [cdi:VariableDescriptorComponent];
 5	cdi:VariableDescriptorComponent_isDefinedBy_DescriptorVariable	@cdi:DescriptorVariableShape ?;
 6	
 7	cdi:VariableDescriptorComponent_refersTo_VariableValueComponent	@cdi:VariableValueComponentShape ;
 8	
 9		&cdi:DataStructureComponentProperties;
10	}