RecordRelation#

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

Definition#

Relationships among record types within and between logical records.

Examples#

One logical record containing a PersonIdentifier and a PersonName and another logical record containing a MeasurementID, a PersonID, a SystolicPressure, and a DiastolicPressure could be linked by a record relation. The record relation could employ an instance variable value map to describe the linkage between PersonIdentifier and PersonID.

A household-level logical record might contain an instance variable called HouseholdID and a person-level logical record might contain an instance variable called HID. Describing a link between HouseholdID and HID would allow the linking of a person-level LogicalRecord to their corresponding household-level logical record.

Explanatory notes#

For instance variables existing in a logical record with multiple record layouts, pairs of instance variables may function as paired keys to permit the expression of hierarchical links between records of different types. These links between keys in different record types could also be used to link records in a relational structure.

Diagram#

Diagram

Attributes#

Attributes
Attributes#

Name

Inherited from

Description

Data Type

Multiplicity

Default value

catalogDetails

- own class -

Bundles the information useful for a data catalog entry.

Examples would be creator, contributor, title, copyright, embargo, and license information

A set of information useful for attribution, data discovery, and access. This is information that is tied to the identity of the object. If this information changes the version of the associated object changes.

CatalogDetails

0..1

displayLabel

- own class -

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

LabelForDisplay

0..*

identifier

- own class -

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

Identifier

0..1

purpose

- own class -

Intent or reason for the object/the description of the object.

InternationalString

0..1

usage

- own class -

Explanation of the ways in which the object is employed.

InternationalString

0..1

Associations#

Associations
Associations#

Direction

Association

Description

Multiplicity of RecordRelation

Package of Other Class

Other Class

Multiplicity of other class

Aggregation Kind

Inherited from

to

DataStore has RecordRelation

The record relation that defines the relationship and linking requirements between logical records in the data store.

0..1

- own package -

DataStore

0..*

none

own class

from

RecordRelation has InstanceVariableMap

0..1

- own package -

InstanceVariableMap

0..*

composite

own class

from

RecordRelation maps LogicalRecord

0..*

- own package -

LogicalRecord

2..*

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 RecordRelation (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-FormatDescription-RecordRelation"
  5                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation"
  6                  xmi:type="uml:Class">
  7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedComment"
  8                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedComment"
  9                  xmi:type="uml:Comment">
 10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation"/>
 11      <body>Definition
 12============
 13Relationships among record types within and between logical records.
 14
 15Examples
 16==========
 17One logical record containing a PersonIdentifier and a PersonName and another logical record containing a MeasurementID, a PersonID, a SystolicPressure, and a DiastolicPressure could be linked by a record relation. The record relation could employ an instance variable value map to describe the linkage between  PersonIdentifier and PersonID.
 18
 19A household-level logical record might contain an instance variable called HouseholdID and a person-level logical record might contain an instance variable called HID. Describing a link between HouseholdID and HID would allow the linking of a person-level LogicalRecord to their corresponding household-level logical record.
 20
 21Explanatory notes
 22===================
 23For instance variables existing in a logical record with multiple record layouts, pairs of instance variables may function as paired keys to permit the expression of hierarchical links between records of different types. These links between keys in different record types could also be used to link records in a relational structure.</body>
 24   </ownedComment>
 25   <name>RecordRelation</name>
 26   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-catalogDetails"
 27                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-catalogDetails"
 28                    xmi:type="uml:Property">
 29      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-catalogDetails-ownedComment"
 30                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-catalogDetails-ownedComment"
 31                     xmi:type="uml:Comment">
 32         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-catalogDetails"/>
 33         <body>Bundles the information useful for a data catalog entry. 
 34
 35Examples would be creator, contributor, title, copyright, embargo, and license information
 36
 37A set of information useful for attribution, data discovery, and access.
 38This is information that is tied to the identity of the object. If this information changes the version of the associated object changes.</body>
 39      </ownedComment>
 40      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-catalogDetails-lowerValue"
 41                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-catalogDetails-lowerValue"
 42                   xmi:type="uml:LiteralInteger"/>
 43      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-catalogDetails-upperValue"
 44                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-catalogDetails-upperValue"
 45                   xmi:type="uml:LiteralUnlimitedNatural">
 46         <value>1</value>
 47      </upperValue>
 48      <name>catalogDetails</name>
 49      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-CatalogDetails"/>
 50   </ownedAttribute>
 51   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-displayLabel"
 52                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-displayLabel"
 53                    xmi:type="uml:Property">
 54      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-displayLabel-ownedComment"
 55                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-displayLabel-ownedComment"
 56                     xmi:type="uml:Comment">
 57         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-displayLabel"/>
 58         <body>A human-readable display label for the object. Supports the use of multiple languages. Repeat for labels with different content, for example, labels with differing length limitations.</body>
 59      </ownedComment>
 60      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-displayLabel-lowerValue"
 61                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-displayLabel-lowerValue"
 62                   xmi:type="uml:LiteralInteger"/>
 63      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-displayLabel-upperValue"
 64                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-displayLabel-upperValue"
 65                   xmi:type="uml:LiteralUnlimitedNatural">
 66         <value>*</value>
 67      </upperValue>
 68      <name>displayLabel</name>
 69      <isOrdered>true</isOrdered>
 70      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-LabelForDisplay"/>
 71   </ownedAttribute>
 72   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-identifier"
 73                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-identifier"
 74                    xmi:type="uml:Property">
 75      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-identifier-ownedComment"
 76                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-identifier-ownedComment"
 77                     xmi:type="uml:Comment">
 78         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-identifier"/>
 79         <body>Identifier for objects requiring short- or long-lasting referencing and management.</body>
 80      </ownedComment>
 81      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-identifier-lowerValue"
 82                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-identifier-lowerValue"
 83                   xmi:type="uml:LiteralInteger"/>
 84      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-identifier-upperValue"
 85                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-identifier-upperValue"
 86                   xmi:type="uml:LiteralUnlimitedNatural">
 87         <value>1</value>
 88      </upperValue>
 89      <name>identifier</name>
 90      <isID>true</isID>
 91      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-Identifier"/>
 92   </ownedAttribute>
 93   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedAttribute_1"
 94                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedAttribute_1"
 95                    xmi:type="uml:Property">
 96      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedAttribute_1-lowerValue"
 97                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedAttribute_1-lowerValue"
 98                   xmi:type="uml:LiteralInteger">
 99         <value>2</value>
100      </lowerValue>
101      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedAttribute_1-upperValue"
102                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedAttribute_1-upperValue"
103                   xmi:type="uml:LiteralUnlimitedNatural">
104         <value>*</value>
105      </upperValue>
106      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation_maps_LogicalRecord"/>
107      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-LogicalRecord"/>
108   </ownedAttribute>
109   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedAttribute_2"
110                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedAttribute_2"
111                    xmi:type="uml:Property">
112      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedAttribute_2-lowerValue"
113                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedAttribute_2-lowerValue"
114                   xmi:type="uml:LiteralInteger"/>
115      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-ownedAttribute_2-upperValue"
116                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-ownedAttribute_2-upperValue"
117                   xmi:type="uml:LiteralUnlimitedNatural">
118         <value>*</value>
119      </upperValue>
120      <aggregation>composite</aggregation>
121      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation_has_InstanceVariableMap"/>
122      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-InstanceVariableMap"/>
123   </ownedAttribute>
124   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-purpose"
125                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-purpose"
126                    xmi:type="uml:Property">
127      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-purpose-ownedComment"
128                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-purpose-ownedComment"
129                     xmi:type="uml:Comment">
130         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-purpose"/>
131         <body>Intent or reason for the object/the description of the object.</body>
132      </ownedComment>
133      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-purpose-lowerValue"
134                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-purpose-lowerValue"
135                   xmi:type="uml:LiteralInteger"/>
136      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-purpose-upperValue"
137                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-purpose-upperValue"
138                   xmi:type="uml:LiteralUnlimitedNatural">
139         <value>1</value>
140      </upperValue>
141      <name>purpose</name>
142      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-InternationalString"/>
143   </ownedAttribute>
144   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-usage"
145                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-usage"
146                    xmi:type="uml:Property">
147      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-usage-ownedComment"
148                     xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-usage-ownedComment"
149                     xmi:type="uml:Comment">
150         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-usage"/>
151         <body>Explanation of the ways in which the object is employed.</body>
152      </ownedComment>
153      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-usage-lowerValue"
154                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-usage-lowerValue"
155                   xmi:type="uml:LiteralInteger"/>
156      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-FormatDescription-RecordRelation-usage-upperValue"
157                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#RecordRelation-usage-upperValue"
158                   xmi:type="uml:LiteralUnlimitedNatural">
159         <value>1</value>
160      </upperValue>
161      <name>usage</name>
162      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-InternationalString"/>
163   </ownedAttribute>
164</packagedElement>

Fragment for the class RecordRelation (entire XML Schema)

  1<xs:element name="RecordRelation"
  2            type="RecordRelationXsdType"
  3            xml:id="RecordRelation">
  4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::RecordRelation -->
  5  <xs:annotation>
  6    <xs:documentation>Definition
  7          ============
  8          Relationships among record types within and between logical records.
  9          
 10          Examples
 11          ==========
 12          One logical record containing a PersonIdentifier and a PersonName and another logical record containing a MeasurementID, a PersonID, a SystolicPressure, and a DiastolicPressure could be linked by a record relation. The record relation could employ an instance variable value map to describe the linkage between  PersonIdentifier and PersonID.
 13          
 14          A household-level logical record might contain an instance variable called HouseholdID and a person-level logical record might contain an instance variable called HID. Describing a link between HouseholdID and HID would allow the linking of a person-level LogicalRecord to their corresponding household-level logical record.
 15          
 16          Explanatory notes
 17          ===================
 18          For instance variables existing in a logical record with multiple record layouts, pairs of instance variables may function as paired keys to permit the expression of hierarchical links between records of different types. These links between keys in different record types could also be used to link records in a relational structure.</xs:documentation>
 19  </xs:annotation>
 20</xs:element>
 21<xs:complexType name="RecordRelationXsdType"
 22                xml:id="RecordRelationXsdType">
 23  <xs:annotation>
 24    <xs:documentation>Definition
 25          ============
 26          Relationships among record types within and between logical records.
 27          
 28          Examples
 29          ==========
 30          One logical record containing a PersonIdentifier and a PersonName and another logical record containing a MeasurementID, a PersonID, a SystolicPressure, and a DiastolicPressure could be linked by a record relation. The record relation could employ an instance variable value map to describe the linkage between  PersonIdentifier and PersonID.
 31          
 32          A household-level logical record might contain an instance variable called HouseholdID and a person-level logical record might contain an instance variable called HID. Describing a link between HouseholdID and HID would allow the linking of a person-level LogicalRecord to their corresponding household-level logical record.
 33          
 34          Explanatory notes
 35          ===================
 36          For instance variables existing in a logical record with multiple record layouts, pairs of instance variables may function as paired keys to permit the expression of hierarchical links between records of different types. These links between keys in different record types could also be used to link records in a relational structure.</xs:documentation>
 37  </xs:annotation>
 38  <xs:sequence>
 39    <xs:element name="catalogDetails"
 40                type="CatalogDetailsXsdType"
 41                minOccurs="0"
 42                maxOccurs="1"
 43                xml:id="RecordRelation-catalogDetails">
 44      <xs:annotation>
 45        <xs:documentation>Bundles the information useful for a data catalog entry. 
 46        
 47        Examples would be creator, contributor, title, copyright, embargo, and license information
 48        
 49        A set of information useful for attribution, data discovery, and access.
 50        This is information that is tied to the identity of the object. If this information changes the version of the associated object changes.</xs:documentation>
 51      </xs:annotation>
 52    </xs:element>
 53    <xs:element name="displayLabel"
 54                type="LabelForDisplayXsdType"
 55                minOccurs="0"
 56                maxOccurs="unbounded"
 57                xml:id="RecordRelation-displayLabel">
 58      <xs:annotation>
 59        <xs:documentation>A human-readable display label for the object. Supports the use of multiple languages. Repeat for labels with different content, for example, labels with differing length limitations.</xs:documentation>
 60      </xs:annotation>
 61    </xs:element>
 62    <xs:element name="identifier"
 63                type="IdentifierXsdType"
 64                minOccurs="0"
 65                maxOccurs="1"
 66                xml:id="RecordRelation-identifier">
 67      <xs:annotation>
 68        <xs:documentation>Identifier for objects requiring short- or long-lasting referencing and management.</xs:documentation>
 69      </xs:annotation>
 70    </xs:element>
 71    <xs:element name="purpose"
 72                type="InternationalStringXsdType"
 73                minOccurs="0"
 74                maxOccurs="1"
 75                xml:id="RecordRelation-purpose">
 76      <xs:annotation>
 77        <xs:documentation>Intent or reason for the object/the description of the object.</xs:documentation>
 78      </xs:annotation>
 79    </xs:element>
 80    <xs:element name="usage"
 81                type="InternationalStringXsdType"
 82                minOccurs="0"
 83                maxOccurs="1"
 84                xml:id="RecordRelation-usage">
 85      <xs:annotation>
 86        <xs:documentation>Explanation of the ways in which the object is employed.</xs:documentation>
 87      </xs:annotation>
 88    </xs:element>
 89    <xs:element name="RecordRelation_maps_LogicalRecord"
 90                minOccurs="2"
 91                maxOccurs="unbounded"
 92                xml:id="RecordRelation_maps_LogicalRecord">
 93      <xs:annotation>
 94        <xs:documentation></xs:documentation>
 95      </xs:annotation>
 96      <xs:complexType>
 97        <xs:complexContent>
 98          <xs:restriction base="AssociationReferenceXsdType">
 99            <xs:sequence>
100              <xs:element name="ddiReference"
101                          type="InternationalRegistrationDataIdentifierXsdType"
102                          minOccurs="0"
103                          maxOccurs="1"
104                          xml:id="RecordRelation_maps_LogicalRecord-ddiReference"/>
105              <xs:element name="validType"
106                          minOccurs="0"
107                          maxOccurs="unbounded"
108                          xml:id="RecordRelation_maps_LogicalRecord-validType">
109                <xs:simpleType>
110                  <xs:restriction base="xs:NMTOKEN">
111                    <xs:enumeration value="LogicalRecord"/>
112                  </xs:restriction>
113                </xs:simpleType>
114              </xs:element>
115            </xs:sequence>
116          </xs:restriction>
117        </xs:complexContent>
118      </xs:complexType>
119    </xs:element>
120    <xs:element name="RecordRelation_has_InstanceVariableMap"
121                minOccurs="0"
122                maxOccurs="unbounded"
123                xml:id="RecordRelation_has_InstanceVariableMap">
124      <xs:annotation>
125        <xs:documentation></xs:documentation>
126      </xs:annotation>
127      <xs:complexType>
128        <xs:complexContent>
129          <xs:restriction base="AssociationReferenceXsdType">
130            <xs:sequence>
131              <xs:element name="ddiReference"
132                          type="InternationalRegistrationDataIdentifierXsdType"
133                          minOccurs="0"
134                          maxOccurs="1"
135                          xml:id="RecordRelation_has_InstanceVariableMap-ddiReference"/>
136              <xs:element name="validType"
137                          minOccurs="0"
138                          maxOccurs="1"
139                          xml:id="RecordRelation_has_InstanceVariableMap-validType">
140                <xs:simpleType>
141                  <xs:restriction base="xs:NMTOKEN">
142                    <xs:enumeration value="InstanceVariableMap"/>
143                  </xs:restriction>
144                </xs:simpleType>
145              </xs:element>
146            </xs:sequence>
147          </xs:restriction>
148        </xs:complexContent>
149      </xs:complexType>
150    </xs:element>
151  </xs:sequence>
152</xs:complexType>

Fragment for the class RecordRelation (entire JSON Schema)

 1"cls-RecordRelation": {
 2  "description": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/RecordRelation",
 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": "RecordRelation"
14    },
15    "catalogDetails": {
16      "$comment": "cardinality 0..1 – from cdi:RecordRelation",
17      "$ref": "#/defs/dt-CatalogDetails"
18    },
19    "displayLabel": {
20      "$comment": "cardinality 0..-1 – from cdi:RecordRelation",
21      "if": { "type": "array" },
22      "then": { "items": { "$ref": "#/defs/dt-LabelForDisplay" } },
23      "else": { "$ref": "#/defs/dt-LabelForDisplay" }
24    },
25    "identifier": {
26      "$comment": "cardinality 0..1 – from cdi:RecordRelation",
27      "$ref": "#/defs/dt-Identifier"
28    },
29    "purpose": {
30      "$comment": "cardinality 0..1 – from cdi:RecordRelation",
31      "$ref": "#/defs/dt-InternationalString"
32    },
33    "usage": {
34      "$comment": "cardinality 0..1 – from cdi:RecordRelation",
35      "$ref": "#/defs/dt-InternationalString"
36    },
37    "has_InstanceVariableMap": {
38      "description": "RecordRelation_has_InstanceVariableMap",
39      "$comment": "cardinality 0..-1",
40      "anyOf": [
41        {
42          "$ref": "#/defs/target-InstanceVariableMap"
43        },
44        {
45          "type": "array",
46          "items": {
47            "$ref": "#/defs/target-InstanceVariableMap"
48          }
49        }
50      ]
51    },
52    "maps": {
53      "description": "RecordRelation_maps_LogicalRecord",
54      "$comment": "cardinality 2..-1",
55      "anyOf": [
56        {
57          "$ref": "#/defs/target-LogicalRecord"
58        },
59        {
60          "type": "array",
61          "items": {
62            "$ref": "#/defs/target-LogicalRecord"
63          }
64        }
65      ]
66    },
67    "has_RecordRelation_OF_DataStore": {
68      "description": "DataStore_has_RecordRelation",
69      "$comment": "cardinality 0..-1",
70      "anyOf": [
71        {
72          "$ref": "#/defs/target-DataStore"
73        },
74        {
75          "type": "array",
76          "items": {
77            "$ref": "#/defs/target-DataStore"
78          }
79        }
80      ]
81    },
82    "sameAs": {
83      "$ref": "#/defs/owl:sameAs"
84    }
85  },
86  "required": ["maps","@type"],
87  "additionalProperties": false
88},
89"target-RecordRelation": {
90  "description": "all subclasses of http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/RecordRelation",
91  "anyOf": [
92    { "$ref": "#/defs/cls-RecordRelation" },
93    { "type": "string", "format": "iri-reference" }
94  ]
95},

Fragment for the class RecordRelation (main ontology)

 1# class RecordRelation
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::RecordRelation
 3cdi:RecordRelation
 4  a rdfs:Class, owl:Class, ucmis:Class;
 5  rdfs:label "RecordRelation";
 6  rdfs:comment "Definition\n============\nRelationships among record types within and between logical records.\n\nExamples\n==========\nOne logical record containing a PersonIdentifier and a PersonName and another logical record containing a MeasurementID, a PersonID, a SystolicPressure, and a DiastolicPressure could be linked by a record relation. The record relation could employ an instance variable value map to describe the linkage between  PersonIdentifier and PersonID.\n\nA household-level logical record might contain an instance variable called HouseholdID and a person-level logical record might contain an instance variable called HID. Describing a link between HouseholdID and HID would allow the linking of a person-level LogicalRecord to their corresponding household-level logical record.\n\nExplanatory notes\n===================\nFor instance variables existing in a logical record with multiple record layouts, pairs of instance variables may function as paired keys to permit the expression of hierarchical links between records of different types. These links between keys in different record types could also be used to link records in a relational structure."@en;
 7  
 8.
 9
10cdi:RecordRelation-catalogDetails
11  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
12  rdfs:label "catalogDetails";
13  rdfs:comment "Bundles the information useful for a data catalog entry. \n\nExamples would be creator, contributor, title, copyright, embargo, and license information\n\nA set of information useful for attribution, data discovery, and access.\nThis is information that is tied to the identity of the object. If this information changes the version of the associated object changes."@en;
14  rdfs:domain cdi:RecordRelation;
15  rdfs:range cdi:CatalogDetails;
16.
17
18cdi:RecordRelation-displayLabel
19  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
20  rdfs:label "displayLabel";
21  rdfs:comment "A human-readable display label for the object. Supports the use of multiple languages. Repeat for labels with different content, for example, labels with differing length limitations."@en;
22  rdfs:domain cdi:RecordRelation;
23  rdfs:range cdi:LabelForDisplay;
24.
25
26cdi:RecordRelation-identifier
27  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
28  rdfs:label "identifier";
29  rdfs:comment "Identifier for objects requiring short- or long-lasting referencing and management."@en;
30  rdfs:domain cdi:RecordRelation;
31  rdfs:range cdi:Identifier;
32.
33
34cdi:RecordRelation-purpose
35  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
36  rdfs:label "purpose";
37  rdfs:comment "Intent or reason for the object/the description of the object."@en;
38  rdfs:domain cdi:RecordRelation;
39  rdfs:range cdi:InternationalString;
40.
41
42cdi:RecordRelation-usage
43  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
44  rdfs:label "usage";
45  rdfs:comment "Explanation of the ways in which the object is employed."@en;
46  rdfs:domain cdi:RecordRelation;
47  rdfs:range cdi:InternationalString;
48.
49
50
51cdi:RecordRelation_has_InstanceVariableMap
52  a rdf:Property, owl:ObjectProperty, ucmis:Association;
53  # ASSOCIATION
54  rdfs:label "has_InstanceVariableMap";
55  skos:altLabel "RecordRelation_has_InstanceVariableMap";
56  
57  rdfs:domain cdi:RecordRelation;
58  rdfs:range cdi:InstanceVariableMap;
59.
60
61cdi:RecordRelation_maps_LogicalRecord
62  a rdf:Property, owl:ObjectProperty, ucmis:Association;
63  # ASSOCIATION
64  rdfs:label "maps";
65  skos:altLabel "RecordRelation_maps_LogicalRecord";
66  
67  rdfs:domain cdi:RecordRelation;
68  rdfs:range cdi:LogicalRecord;
69.

Fragment for the class RecordRelation (entire JSON-LD)

 1{
 2  "@context": [
 3    {
 4      "cdi": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/",
 5      "xsd": "http://www.w3.org/2001/XMLSchema#",
 6
 7      "catalogDetails": {
 8        "@id": "cdi:RecordRelation-catalogDetails",
 9        "@type": "@id",
10        "@context": "CatalogDetails.jsonld"
11      },
12      "displayLabel": {
13        "@id": "cdi:RecordRelation-displayLabel",
14        "@type": "@id",
15        "@context": "LabelForDisplay.jsonld"
16      },
17      "identifier": {
18        "@id": "cdi:RecordRelation-identifier",
19        "@type": "@id",
20        "@context": "Identifier.jsonld"
21      },
22      "purpose": {
23        "@id": "cdi:RecordRelation-purpose",
24        "@type": "@id",
25        "@context": "InternationalString.jsonld"
26      },
27      "usage": {
28        "@id": "cdi:RecordRelation-usage",
29        "@type": "@id",
30        "@context": "InternationalString.jsonld"
31      },
32      
33      "has_InstanceVariableMap": {
34        "@id": "cdi:RecordRelation_has_InstanceVariableMap",
35        "@type": "@id",
36        "@context": "InstanceVariableMap.jsonld"
37      },
38      "maps": {
39        "@id": "cdi:RecordRelation_maps_LogicalRecord",
40        "@type": "@id",
41        "@context": "LogicalRecord.jsonld"
42      },
43      "has_RecordRelation_OF_DataStore": {
44        "@reverse": "cdi:DataStore_has_RecordRelation",
45        "@type": "@id",
46        "@context": "DataStore.jsonld"
47      },
48      " comment ": "tag:json-should-support-trailing-commas"
49    }
50  ],
51  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2025-08-29 14:34:53.",
52  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::FormatDescription::RecordRelation"
53}

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

 1# class RecordRelation
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::RecordRelation
 3<#RecordRelation> a sh:NodeShape;
 4    sh:targetClass cdi:RecordRelation;
 5	sh:message "See http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/RecordRelation";
 6	sh:closed true;
 7	sh:ignoredProperties ( owl:sameAs );
 8    sh:property [
 9			sh:path rdf:type;
10			sh:in (   cdi:RecordRelation
11			 ) ;
12    ];
13    # attributes
14    sh:property <#RecordRelation-catalogDetails>;
15    sh:property <#RecordRelation-displayLabel>;
16    sh:property <#RecordRelation-identifier>;
17    sh:property <#RecordRelation-purpose>;
18    sh:property <#RecordRelation-usage>;
19    # associations from RecordRelation
20    sh:property <#RecordRelation_has_InstanceVariableMap>;
21    sh:property <#RecordRelation_maps_LogicalRecord>;
22    # associations to RecordRelation
23    sh:property <#rev_DataStore_has_RecordRelation>;
24
25
26
27.
28
29<#RecordRelation-catalogDetails> a sh:PropertyShape ;
30    sh:path cdi:RecordRelation-catalogDetails;
31    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
32        cdi:CatalogDetails
33      
34    ) ]];
35    sh:maxCount 1;
36.
37<#RecordRelation-displayLabel> a sh:PropertyShape ;
38    sh:path cdi:RecordRelation-displayLabel;
39    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
40        cdi:LabelForDisplay
41      
42    ) ]];
43.
44<#RecordRelation-identifier> a sh:PropertyShape ;
45    sh:path cdi:RecordRelation-identifier;
46    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
47        cdi:Identifier
48      
49    ) ]];
50    sh:maxCount 1;
51.
52<#RecordRelation-purpose> a sh:PropertyShape ;
53    sh:path cdi:RecordRelation-purpose;
54    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
55        cdi:InternationalString
56        cdi:BibliographicName
57        cdi:LabelForDisplay
58      
59    ) ]];
60    sh:maxCount 1;
61.
62<#RecordRelation-usage> a sh:PropertyShape ;
63    sh:path cdi:RecordRelation-usage;
64    sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
65        cdi:InternationalString
66        cdi:BibliographicName
67        cdi:LabelForDisplay
68      
69    ) ]];
70    sh:maxCount 1;
71.
72
73<#RecordRelation_has_InstanceVariableMap> a sh:PropertyShape ;
74    sh:path cdi:RecordRelation_has_InstanceVariableMap;
75	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
76        cdi:InstanceVariableMap
77      
78    ) ]];
79.
80<#rev_RecordRelation_has_InstanceVariableMap> a sh:PropertyShape ;
81    sh:path [ sh:inversePath cdi:RecordRelation_has_InstanceVariableMap ];
82    sh:maxCount 1;
83.
84<#RecordRelation_maps_LogicalRecord> a sh:PropertyShape ;
85    sh:path cdi:RecordRelation_maps_LogicalRecord;
86	sh:node [ sh:property [ sh:path rdf:type; sh:minCount 1; sh:in (
87        cdi:LogicalRecord
88      
89    ) ]];
90    sh:minCount 2;
91.
92<#rev_RecordRelation_maps_LogicalRecord> a sh:PropertyShape ;
93    sh:path [ sh:inversePath cdi:RecordRelation_maps_LogicalRecord ];
94.

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

 1# class RecordRelation
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::FormatDescription::RecordRelation
 3cdi:RecordRelationShape CLOSED {
 4	a [cdi:RecordRelation];
 5	cdi:RecordRelation-catalogDetails	@cdi:CatalogDetailsShape?;
 6	cdi:RecordRelation-displayLabel	@cdi:LabelForDisplayShape*;
 7	cdi:RecordRelation-identifier	@cdi:IdentifierShape?;
 8	cdi:RecordRelation-purpose	@cdi:InternationalStringShape?;
 9	cdi:RecordRelation-usage	@cdi:InternationalStringShape?;
10	^cdi:DataStore_has_RecordRelation @cdi:DataStoreShape *;
11	cdi:RecordRelation_has_InstanceVariableMap	@cdi:InstanceVariableMapShape *;
12	
13	cdi:RecordRelation_maps_LogicalRecord	@cdi:LogicalRecordShape ;
14	
15	}