DataStructure#

Fully qualified class name of the UML model DDI-CDI 1.1beta: 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

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_DataStructureComponent_OF_DataPoint": {
100      "description": "DataPoint_correspondsTo_DataStructureComponent",
101      "$comment": "cardinality 0..-1",
102      "anyOf": [
103        {
104          "$ref": "#/defs/target-DataPoint"
105        },
106        {
107          "type": "array",
108          "items": {
109            "$ref": "#/defs/target-DataPoint"
110          }
111        }
112      ]
113    },
114    "has_DataStructureComponent_OF_DataStructure": {
115      "description": "DataStructure_has_DataStructureComponent",
116      "$comment": "cardinality 0..1",
117      "$ref": "#/defs/target-DataStructure"
118    },
119    "isBasedOn_OF_KeyMember": {
120      "description": "KeyMember_isBasedOn_DataStructureComponent",
121      "$comment": "cardinality 0..-1",
122      "anyOf": [
123        {
124          "$ref": "#/defs/target-KeyMember"
125        },
126        {
127          "type": "array",
128          "items": {
129            "$ref": "#/defs/target-KeyMember"
130          }
131        }
132      ]
133    },
134    "qualifies_OF_AttributeComponent": {
135      "description": "AttributeComponent_qualifies_DataStructureComponent",
136      "$comment": "cardinality 0..-1",
137      "anyOf": [
138        {
139          "$ref": "#/defs/target-AttributeComponent"
140        },
141        {
142          "type": "array",
143          "items": {
144            "$ref": "#/defs/target-AttributeComponent"
145          }
146        }
147      ]
148    },
149    "indexes_OF_ComponentPosition": {
150      "description": "ComponentPosition_indexes_DataStructureComponent",
151      "$comment": "cardinality 0..-1",
152      "anyOf": [
153        {
154          "$ref": "#/defs/target-ComponentPosition"
155        },
156        {
157          "type": "array",
158          "items": {
159            "$ref": "#/defs/target-ComponentPosition"
160          }
161        }
162      ]
163    },
164    "correspondsTo_DataStructureComponent_OF_ForeignKeyComponent": {
165      "description": "ForeignKeyComponent_correspondsTo_DataStructureComponent",
166      "$comment": "cardinality 0..1",
167      "$ref": "#/defs/target-ForeignKeyComponent"
168    },
169    "correspondsTo_DataStructureComponent_OF_PrimaryKeyComponent": {
170      "description": "PrimaryKeyComponent_correspondsTo_DataStructureComponent",
171      "$comment": "cardinality 0..1",
172      "$ref": "#/defs/target-PrimaryKeyComponent"
173    },
174    "sameAs": {
175      "$ref": "#/defs/owl:sameAs"
176    }
177  },
178  "required": ["@type"],
179  "additionalProperties": false
180},
181"target-DataStructure": {
182  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/DataStructure",
183  "anyOf": [
184    { "$ref": "#/defs/cls-DataStructure" },
185    { "$ref": "#/defs/cls-DimensionalDataStructure" },
186    { "$ref": "#/defs/cls-KeyValueStructure" },
187    { "$ref": "#/defs/cls-LongDataStructure" },
188    { "$ref": "#/defs/cls-WideDataStructure" },
189    { "type": "string", "format": "iri-reference" }
190  ]
191},

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      " comment ": "tag:json-should-support-trailing-commas"
35    }
36  ],
37  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2026-04-15 14:38:40.",
38  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::DataDescription::DataStructure"
39}

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
 26    # ---- superclass: DataStructureComponent
 27    # attributes
 28    sh:property <#DataStructureComponent-identifier>;
 29    sh:property <#DataStructureComponent-semantic>;
 30    sh:property <#DataStructureComponent-specialization>;
 31    # associations from DataStructureComponent
 32    sh:property <#DataStructureComponent_isDefinedBy_RepresentedVariable>;
 33    # associations to DataStructureComponent
 34    sh:property <#rev_DataPoint_correspondsTo_DataStructureComponent>;
 35    sh:property <#rev_DataStructure_has_DataStructureComponent>;
 36    sh:property <#rev_KeyMember_isBasedOn_DataStructureComponent>;
 37    sh:property <#rev_AttributeComponent_qualifies_DataStructureComponent>;
 38    sh:property <#rev_ComponentPosition_indexes_DataStructureComponent>;
 39    sh:property <#rev_ForeignKeyComponent_correspondsTo_DataStructureComponent>;
 40    sh:property <#rev_PrimaryKeyComponent_correspondsTo_DataStructureComponent>;
 41
 42
 43
 44
 45
 46.
 47
 48
 49<#DataStructure_has_ComponentPosition> a sh:PropertyShape ;
 50    sh:path cdi:DataStructure_has_ComponentPosition;
 51	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 52        cdi:ComponentPosition
 53      
 54    ) ]];
 55.
 56<#rev_DataStructure_has_ComponentPosition> a sh:PropertyShape ;
 57    sh:path [ sh:inversePath cdi:DataStructure_has_ComponentPosition ];
 58    sh:minCount 1;
 59    sh:maxCount 1;
 60.
 61<#DataStructure_has_DataStructureComponent> a sh:PropertyShape ;
 62    sh:path cdi:DataStructure_has_DataStructureComponent;
 63	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 64        cdi:DataStructureComponent
 65        cdi:AttributeComponent
 66        cdi:ContextualComponent
 67        cdi:DataStructure
 68        cdi:DimensionalDataStructure
 69        cdi:KeyValueStructure
 70        cdi:LongDataStructure
 71        cdi:WideDataStructure
 72        cdi:DimensionComponent
 73        cdi:IdentifierComponent
 74        cdi:MeasureComponent
 75        cdi:QualifiedMeasure
 76        cdi:SyntheticIdComponent
 77        cdi:VariableDescriptorComponent
 78        cdi:VariableValueComponent
 79      
 80    ) ]];
 81.
 82<#rev_DataStructure_has_DataStructureComponent> a sh:PropertyShape ;
 83    sh:path [ sh:inversePath cdi:DataStructure_has_DataStructureComponent ];
 84    sh:maxCount 1;
 85.
 86<#DataStructure_has_ForeignKey> a sh:PropertyShape ;
 87    sh:path cdi:DataStructure_has_ForeignKey;
 88	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
 89        cdi:ForeignKey
 90      
 91    ) ]];
 92.
 93<#rev_DataStructure_has_ForeignKey> a sh:PropertyShape ;
 94    sh:path [ sh:inversePath cdi:DataStructure_has_ForeignKey ];
 95    sh:minCount 1;
 96    sh:maxCount 1;
 97.
 98<#DataStructure_has_PrimaryKey> a sh:PropertyShape ;
 99    sh:path cdi:DataStructure_has_PrimaryKey;
100	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
101        cdi:PrimaryKey
102      
103    ) ]];
104    sh:maxCount 1;
105.
106<#rev_DataStructure_has_PrimaryKey> a sh:PropertyShape ;
107    sh:path [ sh:inversePath cdi:DataStructure_has_PrimaryKey ];
108    sh:minCount 1;
109    sh:maxCount 1;
110.

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:DataStructureComponentProperties;
16		);
17}