DataStructure#

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

Definition#

Data organization based on reusable data structure components.

Diagram#

Diagram

Inheritance#

Inheritance
  ᐊ── DataDescription::DataStructure
    ᐊ── KeyValue::KeyValueStructure
    ᐊ── Long::LongDataStructure
    ᐊ── Wide::WideDataStructure

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 DataStructure

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..*

- own package -

DataPoint

0..*

none

Components::DataStructureComponent

to

DataStructure has DataStructureComponent

0..*

- own package -

DataStructure

0..1

none

Components::DataStructureComponent

to

KeyMember isBasedOn DataStructureComponent

0..*

- own package -

KeyMember

0..*

none

Components::DataStructureComponent

to

AttributeComponent qualifies DataStructureComponent

0..*

Components

AttributeComponent

0..*

none

Components::DataStructureComponent

to

ComponentPosition indexes DataStructureComponent

0..1

Components

ComponentPosition

0..*

none

Components::DataStructureComponent

to

ForeignKeyComponent correspondsTo DataStructureComponent

1..1

Components

ForeignKeyComponent

0..1

none

Components::DataStructureComponent

to

PrimaryKeyComponent correspondsTo DataStructureComponent

1..1

Components

PrimaryKeyComponent

0..1

none

Components::DataStructureComponent

to

DataSet isStructuredBy DataStructure

0..*

- own package -

DataSet

0..*

none

own class

from

DataStructure has ComponentPosition

1..1

Components

ComponentPosition

0..*

composite

own class

from

DataStructure has DataStructureComponent

0..1

Components

DataStructureComponent

0..*

composite

own class

from

DataStructure has ForeignKey

1..1

Components

ForeignKey

0..*

composite

own class

from

DataStructure has PrimaryKey

1..1

Components

PrimaryKey

0..1

composite

own class

to

PhysicalDataSetStructure correspondsTo DataStructure

0..1

FormatDescription

PhysicalDataSetStructure

0..*

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 DataStructure (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-DataStructure"
 5                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure"
 6                  xmi:type="uml:Class">
 7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedComment"
 8                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedComment"
 9                  xmi:type="uml:Comment">
10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure"/>
11      <body>Definition 
12============
13Data organization based on reusable data structure components.</body>
14   </ownedComment>
15   <name>DataStructure</name>
16   <generalization xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-generalization"
17                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-generalization"
18                    xmi:type="uml:Generalization">
19      <general xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-DataStructureComponent"/>
20   </generalization>
21   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_1"
22                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_1"
23                    xmi:type="uml:Property">
24      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_1-lowerValue"
25                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_1-lowerValue"
26                   xmi:type="uml:LiteralInteger"/>
27      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_1-upperValue"
28                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_1-upperValue"
29                   xmi:type="uml:LiteralUnlimitedNatural">
30         <value>*</value>
31      </upperValue>
32      <aggregation>composite</aggregation>
33      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure_has_ForeignKey"/>
34      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-ForeignKey"/>
35   </ownedAttribute>
36   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_2"
37                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_2"
38                    xmi:type="uml:Property">
39      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_2-lowerValue"
40                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_2-lowerValue"
41                   xmi:type="uml:LiteralInteger"/>
42      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_2-upperValue"
43                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_2-upperValue"
44                   xmi:type="uml:LiteralUnlimitedNatural">
45         <value>*</value>
46      </upperValue>
47      <aggregation>composite</aggregation>
48      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure_has_DataStructureComponent"/>
49      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-DataStructureComponent"/>
50   </ownedAttribute>
51   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_3"
52                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_3"
53                    xmi:type="uml:Property">
54      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_3-lowerValue"
55                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_3-lowerValue"
56                   xmi:type="uml:LiteralInteger"/>
57      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_3-upperValue"
58                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_3-upperValue"
59                   xmi:type="uml:LiteralUnlimitedNatural">
60         <value>*</value>
61      </upperValue>
62      <aggregation>composite</aggregation>
63      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure_has_ComponentPosition"/>
64      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-ComponentPosition"/>
65   </ownedAttribute>
66   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_4"
67                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_4"
68                    xmi:type="uml:Property">
69      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_4-lowerValue"
70                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_4-lowerValue"
71                   xmi:type="uml:LiteralInteger"/>
72      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure-ownedAttribute_4-upperValue"
73                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#DataStructure-ownedAttribute_4-upperValue"
74                   xmi:type="uml:LiteralUnlimitedNatural">
75         <value>1</value>
76      </upperValue>
77      <aggregation>composite</aggregation>
78      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-DataStructure_has_PrimaryKey"/>
79      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-DataDescription-Components-PrimaryKey"/>
80   </ownedAttribute>
81</packagedElement>

Fragment for the class DataStructure (entire XML Schema)

  1<xs:element name="DataStructure"
  2            type="DataStructureXsdType"
  3            xml:id="DataStructure">
  4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::DataStructure -->
  5  <xs:annotation>
  6    <xs:documentation>Definition 
  7          ============
  8          Data organization based on reusable data structure components.</xs:documentation>
  9  </xs:annotation>
 10</xs:element>
 11<xs:complexType name="DataStructureXsdType"
 12                xml:id="DataStructureXsdType">
 13  <xs:annotation>
 14    <xs:documentation>Definition 
 15          ============
 16          Data organization based on reusable data structure components.</xs:documentation>
 17  </xs:annotation>
 18  <xs:complexContent>
 19    <xs:extension base="DataStructureComponentXsdType">
 20      <xs:sequence>
 21        <xs:element name="DataStructure_has_ForeignKey"
 22                    minOccurs="0"
 23                    maxOccurs="unbounded"
 24                    xml:id="DataStructure_has_ForeignKey">
 25          <xs:annotation>
 26            <xs:documentation></xs:documentation>
 27          </xs:annotation>
 28          <xs:complexType>
 29            <xs:complexContent>
 30              <xs:restriction base="AssociationReferenceXsdType">
 31                <xs:sequence>
 32                  <xs:element name="ddiReference"
 33                              type="InternationalRegistrationDataIdentifierXsdType"
 34                              minOccurs="0"
 35                              maxOccurs="1"
 36                              xml:id="DataStructure_has_ForeignKey-ddiReference"/>
 37                  <xs:element name="validType"
 38                              minOccurs="1"
 39                              maxOccurs="1"
 40                              xml:id="DataStructure_has_ForeignKey-validType">
 41                    <xs:simpleType>
 42                      <xs:restriction base="xs:NMTOKEN">
 43                        <xs:enumeration value="ForeignKey"/>
 44                      </xs:restriction>
 45                    </xs:simpleType>
 46                  </xs:element>
 47                </xs:sequence>
 48              </xs:restriction>
 49            </xs:complexContent>
 50          </xs:complexType>
 51        </xs:element>
 52        <xs:element name="DataStructure_has_DataStructureComponent"
 53                    minOccurs="0"
 54                    maxOccurs="unbounded"
 55                    xml:id="DataStructure_has_DataStructureComponent">
 56          <xs:annotation>
 57            <xs:documentation></xs:documentation>
 58          </xs:annotation>
 59          <xs:complexType>
 60            <xs:complexContent>
 61              <xs:restriction base="AssociationReferenceXsdType">
 62                <xs:sequence>
 63                  <xs:element name="ddiReference"
 64                              type="InternationalRegistrationDataIdentifierXsdType"
 65                              minOccurs="0"
 66                              maxOccurs="1"
 67                              xml:id="DataStructure_has_DataStructureComponent-ddiReference"/>
 68                  <xs:element name="validType"
 69                              minOccurs="0"
 70                              maxOccurs="1"
 71                              xml:id="DataStructure_has_DataStructureComponent-validType">
 72                    <xs:simpleType>
 73                      <xs:restriction base="xs:NMTOKEN">
 74                        <xs:enumeration value="AttributeComponent"/>
 75                        <xs:enumeration value="ContextualComponent"/>
 76                        <xs:enumeration value="DataStructure"/>
 77                        <xs:enumeration value="DataStructureComponent"/>
 78                        <xs:enumeration value="DimensionComponent"/>
 79                        <xs:enumeration value="DimensionalDataStructure"/>
 80                        <xs:enumeration value="IdentifierComponent"/>
 81                        <xs:enumeration value="KeyValueStructure"/>
 82                        <xs:enumeration value="LongDataStructure"/>
 83                        <xs:enumeration value="MeasureComponent"/>
 84                        <xs:enumeration value="QualifiedMeasure"/>
 85                        <xs:enumeration value="SyntheticIdComponent"/>
 86                        <xs:enumeration value="VariableDescriptorComponent"/>
 87                        <xs:enumeration value="VariableValueComponent"/>
 88                        <xs:enumeration value="WideDataStructure"/>
 89                      </xs:restriction>
 90                    </xs:simpleType>
 91                  </xs:element>
 92                </xs:sequence>
 93              </xs:restriction>
 94            </xs:complexContent>
 95          </xs:complexType>
 96        </xs:element>
 97        <xs:element name="DataStructure_has_ComponentPosition"
 98                    minOccurs="0"
 99                    maxOccurs="unbounded"
100                    xml:id="DataStructure_has_ComponentPosition">
101          <xs:annotation>
102            <xs:documentation></xs:documentation>
103          </xs:annotation>
104          <xs:complexType>
105            <xs:complexContent>
106              <xs:restriction base="AssociationReferenceXsdType">
107                <xs:sequence>
108                  <xs:element name="ddiReference"
109                              type="InternationalRegistrationDataIdentifierXsdType"
110                              minOccurs="0"
111                              maxOccurs="1"
112                              xml:id="DataStructure_has_ComponentPosition-ddiReference"/>
113                  <xs:element name="validType"
114                              minOccurs="1"
115                              maxOccurs="1"
116                              xml:id="DataStructure_has_ComponentPosition-validType">
117                    <xs:simpleType>
118                      <xs:restriction base="xs:NMTOKEN">
119                        <xs:enumeration value="ComponentPosition"/>
120                      </xs:restriction>
121                    </xs:simpleType>
122                  </xs:element>
123                </xs:sequence>
124              </xs:restriction>
125            </xs:complexContent>
126          </xs:complexType>
127        </xs:element>
128        <xs:element name="DataStructure_has_PrimaryKey"
129                    minOccurs="0"
130                    maxOccurs="1"
131                    xml:id="DataStructure_has_PrimaryKey">
132          <xs:annotation>
133            <xs:documentation></xs:documentation>
134          </xs:annotation>
135          <xs:complexType>
136            <xs:complexContent>
137              <xs:restriction base="AssociationReferenceXsdType">
138                <xs:sequence>
139                  <xs:element name="ddiReference"
140                              type="InternationalRegistrationDataIdentifierXsdType"
141                              minOccurs="0"
142                              maxOccurs="1"
143                              xml:id="DataStructure_has_PrimaryKey-ddiReference"/>
144                  <xs:element name="validType"
145                              minOccurs="1"
146                              maxOccurs="1"
147                              xml:id="DataStructure_has_PrimaryKey-validType">
148                    <xs:simpleType>
149                      <xs:restriction base="xs:NMTOKEN">
150                        <xs:enumeration value="PrimaryKey"/>
151                      </xs:restriction>
152                    </xs:simpleType>
153                  </xs:element>
154                </xs:sequence>
155              </xs:restriction>
156            </xs:complexContent>
157          </xs:complexType>
158        </xs:element>
159      </xs:sequence>
160    </xs:extension>
161  </xs:complexContent>
162</xs:complexType>

Fragment for the class DataStructure (entire JSON Schema)

  1"cls-DataStructure": {
  2  "description": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/DataStructure",
  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": "DataStructure"
 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    "has_ComponentPosition": {
 30      "description": "DataStructure_has_ComponentPosition",
 31      "$comment": "cardinality 0..-1",
 32      "anyOf": [
 33        {
 34          "$ref": "#/defs/target-ComponentPosition"
 35        },
 36        {
 37          "type": "array",
 38          "items": {
 39            "$ref": "#/defs/target-ComponentPosition"
 40          }
 41        }
 42      ]
 43    },
 44    "has_DataStructureComponent": {
 45      "description": "DataStructure_has_DataStructureComponent",
 46      "$comment": "cardinality 0..-1",
 47      "anyOf": [
 48        {
 49          "$ref": "#/defs/target-DataStructureComponent"
 50        },
 51        {
 52          "type": "array",
 53          "items": {
 54            "$ref": "#/defs/target-DataStructureComponent"
 55          }
 56        }
 57      ]
 58    },
 59    "has_ForeignKey": {
 60      "description": "DataStructure_has_ForeignKey",
 61      "$comment": "cardinality 0..-1",
 62      "anyOf": [
 63        {
 64          "$ref": "#/defs/target-ForeignKey"
 65        },
 66        {
 67          "type": "array",
 68          "items": {
 69            "$ref": "#/defs/target-ForeignKey"
 70          }
 71        }
 72      ]
 73    },
 74    "has_PrimaryKey": {
 75      "description": "DataStructure_has_PrimaryKey",
 76      "$comment": "cardinality 0..1",
 77       "$ref": "#/defs/target-PrimaryKey"
 78    },
 79    "isDefinedBy_RepresentedVariable": {
 80      "description": "DataStructureComponent_isDefinedBy_RepresentedVariable",
 81      "$comment": "cardinality 0..1",
 82       "$ref": "#/defs/target-RepresentedVariable"
 83    },
 84    "isStructuredBy_OF_DataSet": {
 85      "description": "DataSet_isStructuredBy_DataStructure",
 86      "$comment": "cardinality 0..-1",
 87      "anyOf": [
 88        {
 89          "$ref": "#/defs/target-DataSet"
 90        },
 91        {
 92          "type": "array",
 93          "items": {
 94            "$ref": "#/defs/target-DataSet"
 95          }
 96        }
 97      ]
 98    },
 99    "correspondsTo_DataStructure_OF_PhysicalDataSetStructure": {
100      "description": "PhysicalDataSetStructure_correspondsTo_DataStructure",
101      "$comment": "cardinality 0..-1",
102      "anyOf": [
103        {
104          "$ref": "#/defs/target-PhysicalDataSetStructure"
105        },
106        {
107          "type": "array",
108          "items": {
109            "$ref": "#/defs/target-PhysicalDataSetStructure"
110          }
111        }
112      ]
113    },
114    "correspondsTo_DataStructureComponent_OF_DataPoint": {
115      "description": "DataPoint_correspondsTo_DataStructureComponent",
116      "$comment": "cardinality 0..-1",
117      "anyOf": [
118        {
119          "$ref": "#/defs/target-DataPoint"
120        },
121        {
122          "type": "array",
123          "items": {
124            "$ref": "#/defs/target-DataPoint"
125          }
126        }
127      ]
128    },
129    "has_DataStructureComponent_OF_DataStructure": {
130      "description": "DataStructure_has_DataStructureComponent",
131      "$comment": "cardinality 0..1",
132      "$ref": "#/defs/target-DataStructure"
133    },
134    "isBasedOn_OF_KeyMember": {
135      "description": "KeyMember_isBasedOn_DataStructureComponent",
136      "$comment": "cardinality 0..-1",
137      "anyOf": [
138        {
139          "$ref": "#/defs/target-KeyMember"
140        },
141        {
142          "type": "array",
143          "items": {
144            "$ref": "#/defs/target-KeyMember"
145          }
146        }
147      ]
148    },
149    "qualifies_OF_AttributeComponent": {
150      "description": "AttributeComponent_qualifies_DataStructureComponent",
151      "$comment": "cardinality 0..-1",
152      "anyOf": [
153        {
154          "$ref": "#/defs/target-AttributeComponent"
155        },
156        {
157          "type": "array",
158          "items": {
159            "$ref": "#/defs/target-AttributeComponent"
160          }
161        }
162      ]
163    },
164    "indexes_OF_ComponentPosition": {
165      "description": "ComponentPosition_indexes_DataStructureComponent",
166      "$comment": "cardinality 0..-1",
167      "anyOf": [
168        {
169          "$ref": "#/defs/target-ComponentPosition"
170        },
171        {
172          "type": "array",
173          "items": {
174            "$ref": "#/defs/target-ComponentPosition"
175          }
176        }
177      ]
178    },
179    "correspondsTo_DataStructureComponent_OF_ForeignKeyComponent": {
180      "description": "ForeignKeyComponent_correspondsTo_DataStructureComponent",
181      "$comment": "cardinality 0..1",
182      "$ref": "#/defs/target-ForeignKeyComponent"
183    },
184    "correspondsTo_DataStructureComponent_OF_PrimaryKeyComponent": {
185      "description": "PrimaryKeyComponent_correspondsTo_DataStructureComponent",
186      "$comment": "cardinality 0..1",
187      "$ref": "#/defs/target-PrimaryKeyComponent"
188    },
189    "sameAs": {
190      "$ref": "#/defs/owl:sameAs"
191    }
192  },
193  "required": ["@type"],
194  "additionalProperties": false
195},
196"target-DataStructure": {
197  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/DataStructure",
198  "anyOf": [
199    { "$ref": "#/defs/cls-DataStructure" },
200    { "$ref": "#/defs/cls-DimensionalDataStructure" },
201    { "$ref": "#/defs/cls-KeyValueStructure" },
202    { "$ref": "#/defs/cls-LongDataStructure" },
203    { "$ref": "#/defs/cls-WideDataStructure" },
204    { "type": "string", "format": "iri-reference" }
205  ]
206},

Fragment for the class DataStructure (main ontology)

 1# class DataStructure
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::DataStructure
 3cdi:DataStructure
 4  a rdfs:Class, owl:Class, ucmis:Class;
 5  rdfs:label "DataStructure";
 6  rdfs:comment "Definition \n============\nData organization based on reusable data structure components."@en;
 7  rdfs:subClassOf cdi:DataStructureComponent;
 8.
 9
10
11cdi:DataStructure_has_ComponentPosition
12  a rdf:Property, owl:ObjectProperty, ucmis:Association;
13  # ASSOCIATION
14  rdfs:label "has_ComponentPosition";
15  skos:altLabel "DataStructure_has_ComponentPosition";
16  
17  rdfs:domain cdi:DataStructure;
18  rdfs:range cdi:ComponentPosition;
19.
20
21cdi:DataStructure_has_DataStructureComponent
22  a rdf:Property, owl:ObjectProperty, ucmis:Association;
23  # ASSOCIATION
24  rdfs:label "has_DataStructureComponent";
25  skos:altLabel "DataStructure_has_DataStructureComponent";
26  
27  rdfs:domain cdi:DataStructure;
28  rdfs:range cdi:DataStructureComponent;
29.
30
31cdi:DataStructure_has_ForeignKey
32  a rdf:Property, owl:ObjectProperty, ucmis:Association;
33  # ASSOCIATION
34  rdfs:label "has_ForeignKey";
35  skos:altLabel "DataStructure_has_ForeignKey";
36  
37  rdfs:domain cdi:DataStructure;
38  rdfs:range cdi:ForeignKey;
39.
40
41cdi:DataStructure_has_PrimaryKey
42  a rdf:Property, owl:ObjectProperty, ucmis:Association;
43  # ASSOCIATION
44  rdfs:label "has_PrimaryKey";
45  skos:altLabel "DataStructure_has_PrimaryKey";
46  
47  rdfs:domain cdi:DataStructure;
48  rdfs:range cdi:PrimaryKey;
49.

Fragment for the class DataStructure (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      "has_ComponentPosition": {
10        "@id": "cdi:DataStructure_has_ComponentPosition",
11        "@type": "@id",
12        "@context": "ComponentPosition.jsonld"
13      },
14      "has_DataStructureComponent": {
15        "@id": "cdi:DataStructure_has_DataStructureComponent",
16        "@type": "@id",
17        "@context": "DataStructureComponent.jsonld"
18      },
19      "has_ForeignKey": {
20        "@id": "cdi:DataStructure_has_ForeignKey",
21        "@type": "@id",
22        "@context": "ForeignKey.jsonld"
23      },
24      "has_PrimaryKey": {
25        "@id": "cdi:DataStructure_has_PrimaryKey",
26        "@type": "@id",
27        "@context": "PrimaryKey.jsonld"
28      },
29      "isStructuredBy_OF_DataSet": {
30        "@reverse": "cdi:DataSet_isStructuredBy_DataStructure",
31        "@type": "@id",
32        "@context": "DataSet.jsonld"
33      },
34      "correspondsTo_DataStructure_OF_PhysicalDataSetStructure": {
35        "@reverse": "cdi:PhysicalDataSetStructure_correspondsTo_DataStructure",
36        "@type": "@id",
37        "@context": "PhysicalDataSetStructure.jsonld"
38      },
39      " comment ": "tag:json-should-support-trailing-commas"
40    }
41  ],
42  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2025-08-29 14:34:51.",
43  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::DataDescription::DataStructure"
44}

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

  1# class DataStructure
  2# based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::DataStructure
  3<#DataStructure> a sh:NodeShape;
  4    sh:targetClass cdi:DataStructure;
  5	sh:message "See http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/DataStructure";
  6	sh:closed true;
  7	sh:ignoredProperties ( owl:sameAs );
  8    sh:property [
  9			sh:path rdf:type;
 10			sh:in (   cdi:DataStructure
 11			  cdi:DimensionalDataStructure
 12			  cdi:KeyValueStructure
 13			  cdi:LongDataStructure
 14			  cdi:WideDataStructure
 15			 ) ;
 16    ];
 17    # attributes
 18    # associations from DataStructure
 19    sh:property <#DataStructure_has_ComponentPosition>;
 20    sh:property <#DataStructure_has_DataStructureComponent>;
 21    sh:property <#DataStructure_has_ForeignKey>;
 22    sh:property <#DataStructure_has_PrimaryKey>;
 23    # associations to DataStructure
 24    sh:property <#rev_DataSet_isStructuredBy_DataStructure>;
 25    sh:property <#rev_PhysicalDataSetStructure_correspondsTo_DataStructure>;
 26
 27    # ---- superclass: DataStructureComponent
 28    # attributes
 29    sh:property <#DataStructureComponent-identifier>;
 30    sh:property <#DataStructureComponent-semantic>;
 31    sh:property <#DataStructureComponent-specialization>;
 32    # associations from DataStructureComponent
 33    sh:property <#DataStructureComponent_isDefinedBy_RepresentedVariable>;
 34    # associations to DataStructureComponent
 35    sh:property <#rev_DataPoint_correspondsTo_DataStructureComponent>;
 36    sh:property <#rev_DataStructure_has_DataStructureComponent>;
 37    sh:property <#rev_KeyMember_isBasedOn_DataStructureComponent>;
 38    sh:property <#rev_AttributeComponent_qualifies_DataStructureComponent>;
 39    sh:property <#rev_ComponentPosition_indexes_DataStructureComponent>;
 40    sh:property <#rev_ForeignKeyComponent_correspondsTo_DataStructureComponent>;
 41    sh:property <#rev_PrimaryKeyComponent_correspondsTo_DataStructureComponent>;
 42
 43
 44
 45
 46
 47.
 48
 49
 50<#DataStructure_has_ComponentPosition> a sh:PropertyShape ;
 51    sh:path cdi:DataStructure_has_ComponentPosition;
 52	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 53        cdi:ComponentPosition
 54      
 55    ) ]];
 56.
 57<#rev_DataStructure_has_ComponentPosition> a sh:PropertyShape ;
 58    sh:path [ sh:inversePath cdi:DataStructure_has_ComponentPosition ];
 59    sh:minCount 1;
 60    sh:maxCount 1;
 61.
 62<#DataStructure_has_DataStructureComponent> a sh:PropertyShape ;
 63    sh:path cdi:DataStructure_has_DataStructureComponent;
 64	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 65        cdi:DataStructureComponent
 66        cdi:AttributeComponent
 67        cdi:ContextualComponent
 68        cdi:DataStructure
 69        cdi:DimensionalDataStructure
 70        cdi:KeyValueStructure
 71        cdi:LongDataStructure
 72        cdi:WideDataStructure
 73        cdi:DimensionComponent
 74        cdi:IdentifierComponent
 75        cdi:MeasureComponent
 76        cdi:QualifiedMeasure
 77        cdi:SyntheticIdComponent
 78        cdi:VariableDescriptorComponent
 79        cdi:VariableValueComponent
 80      
 81    ) ]];
 82.
 83<#rev_DataStructure_has_DataStructureComponent> a sh:PropertyShape ;
 84    sh:path [ sh:inversePath cdi:DataStructure_has_DataStructureComponent ];
 85    sh:maxCount 1;
 86.
 87<#DataStructure_has_ForeignKey> a sh:PropertyShape ;
 88    sh:path cdi:DataStructure_has_ForeignKey;
 89	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 90        cdi:ForeignKey
 91      
 92    ) ]];
 93.
 94<#rev_DataStructure_has_ForeignKey> a sh:PropertyShape ;
 95    sh:path [ sh:inversePath cdi:DataStructure_has_ForeignKey ];
 96    sh:minCount 1;
 97    sh:maxCount 1;
 98.
 99<#DataStructure_has_PrimaryKey> a sh:PropertyShape ;
100    sh:path cdi:DataStructure_has_PrimaryKey;
101	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
102        cdi:PrimaryKey
103      
104    ) ]];
105    sh:maxCount 1;
106.
107<#rev_DataStructure_has_PrimaryKey> a sh:PropertyShape ;
108    sh:path [ sh:inversePath cdi:DataStructure_has_PrimaryKey ];
109    sh:minCount 1;
110    sh:maxCount 1;
111.

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

 1# class DataStructure
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::DataDescription::DataStructure
 3cdi:DataStructureShape CLOSED {
 4	a [cdi:DataStructure];
 5	$cdi:DataStructureProperties (
 6	^cdi:DataSet_isStructuredBy_DataStructure @cdi:DataSetShape OR @cdi:DimensionalDataSetShape OR @cdi:KeyValueDataStoreShape OR @cdi:LongDataSetShape OR @cdi:WideDataSetShape*;
 7	cdi:DataStructure_has_ComponentPosition	@cdi:ComponentPositionShape *;
 8	
 9	cdi:DataStructure_has_DataStructureComponent	@cdi:DataStructureComponentShape OR @cdi:AttributeComponentShape OR @cdi:ContextualComponentShape OR @cdi:DataStructureShape OR @cdi:DimensionComponentShape OR @cdi:IdentifierComponentShape OR @cdi:MeasureComponentShape OR @cdi:SyntheticIdComponentShape OR @cdi:VariableDescriptorComponentShape OR @cdi:VariableValueComponentShape*;
10	
11	cdi:DataStructure_has_ForeignKey	@cdi:ForeignKeyShape *;
12	
13	cdi:DataStructure_has_PrimaryKey	@cdi:PrimaryKeyShape ?;
14	
15	^cdi:PhysicalDataSetStructure_correspondsTo_DataStructure @cdi:PhysicalDataSetStructureShape *;
16		&cdi:DataStructureComponentProperties;
17		);
18}