Wiki source code of 9 Structure Set and Mappings

Version 6.1 by Helena on 2025/05/22 10:44

Show last authors
1 = {{id name="_Toc371045"/}}9 Structure Set and Mappings =
2
3 == {{id name="_Toc371046"/}}9.1 Scope ==
4
5 A ,,StructureSet,, allows components in one structure to be mapped to components in another structure of the same type. In this context the term “structure” is used loosely to 1786 include types of //ItemScheme//, types of //Structure//, and types of //StructureUsage//. The allowable structures that can be mapped, and the components that can be mapped within 1788 these structures are:
6
7 :
8
9 (((
10 |**Structure Type**|**Component type**
11 |Codelist|Code
12 |Category Scheme|Category
13 |Concept Scheme|Concept
14 |Organisation Scheme|(((
15 Organisation – this allows mapping any type of Organisation to any type of Organisation (e.g. a Data Provider to an
16
17 Organisation Unit)
18 )))
19 |Hierarchical Codelist|Hierachical Code to Code or vice-versa
20 |Data Structure Definition|(((
21 Dimension, Measure Dimension, Time Dimension. Data Attribute, Primary
22
23 Measure
24 )))
25 |Metadata Structure Definition|Target Object, Metadata Attribute
26 |Dataflow Definition|None
27 |Metadataflow Definition|None
28 )))
29
30 The ,,StructureSet,, can contain one or more “maps” and can define related structures (via the association +relatedStructure) which group related DataStructureDefinitions, MetadataStructureDefinitions, DataflowDefinintions,
31
32 MetadataflowDefinintions.
33
34 == {{id name="_Toc371047"/}}9.2 Structure Set ==
35
36 === {{id name="_Toc371048"/}}9.2.1 Class Diagram – Inheritance ===
37
38 **Figure 32: Inheritance Class Diagram of the Structure Set**
39
40 === {{id name="_Toc371049"/}}9.2.2 Class Diagram – Relationship ===
41
42 **Figure 33: Relationship Class diagram of the Structure Set**
43
44 === {{id name="_Toc371050"/}}9.2.3 Explanation of the Diagram ===
45
46 ==== 9.2.3.1 Narrative ====
47
48 The StructureSet is a //MaintainableArtefact//. It can contain:
49
50 1. A set of references to concrete sub-classes of //Structure// and //StructureUsage// (DataStructureDefinition, MetadataStructureDefinition, DataflowDefinition or MetadataflowDefinition) to indicate that a relationship exists between them. For example there may be a group of DataStructureDefinition which, together, form the definition of a cube, each
51
52 DataStructureDefinition defining a part of the cube.
53
54 1. A set of StructureMaps which define which components of one structure are equivalent to those in another in a ComponentMap.
55 1. A set of ItemSchemeMaps which define the mapping between two concrete classes of ItemScheme, and the mapping of the Items in these schemes, such as the mapping of Codes in two Codelists..
56 1. A set of HybridCodelistMaps which define the mapping between a Codelist and a HierachicalCodelist.
57
58 The StructureMap references two //Structure//s or //StructureUsage//s. In concrete terms these references will be to DataStructureDefinitions, MetadataStructureDefinitions, DataflowDefinitions or MetadataflowDefinitions.
59
60 ==== 9.2.3.2 Definitions ====
61
62 |**Class**|**Feature**|**Description**
63 |StructureSet|(((
64 Inherits from
65
66 //MaintainableArtefact//
67 )))|A maintainable collection of structural maps that link components together in a source/target relationship where there is a semantic equivalence between the source and the target components.
68 | |+relatedStructure|Association to a set of Data Structure Definitions and Metadata Structure Definitions.
69 | |+relatedStructureUsage|Association to a set of Dataflow Definition and Metadataflow Definition.
70 | |+map|Association to Structure Map.
71 | |+itemSchemeMap|Association to Item Scheme Map
72 |StructureMap|(((
73 Inherits from
74
75 //NameableArtefact//
76 )))|Links a source and target structure where there is a semantic equivalence between the source and the target structures.
77 | |sourceStructure|Association to the source Structure.
78 | |targetStructure|Association to the target Structure which must be of the same type as the source Structure.
79 | |sourceStructureUsage|Association to the source Structure Usage.
80 | |targetStructureUsage|Association to the target Structure Usage which must be of the same type as the source Structure Usage.
81
82 == {{id name="_Toc371051"/}}9.3 Structure Map ==
83
84 === {{id name="_Toc371052"/}}9.3.1 Class Diagram ===
85
86 :
87 ::
88 :::
89 ::::
90 :::::
91 ::::::
92 :::::::
93 ::::::::
94 :::::::::
95 ::::::::::
96
97 (((
98 |<<enumeration>> ToValueType
99 |name : String description : String id : String
100 )))
101
102 **Figure 34: Class diagram of the Structure Map**
103
104 === {{id name="_Toc371053"/}}9.3.2 Explanation of the Diagram ===
105
106 ==== 9.3.2.1 Narrative ====
107
108 The StructureMap contains a set of ComponentMaps, each one indicating equivalence between Components of the referenced //Structure//. ComponentMap has a //RepresentationMapping //which can be one of the concete classes of //ItemSchemeMap// (e.g. for a Dimension this would be a CodelistMap) or ToTextFormat which takes values: id, name, description. This instructs mapping tools to use the id, name or description of a coded component to determine equivalence with an uncoded component's value.
109
110 An example of a ComponentMap is linking the source //Component// that is a Dimension in the source DataStructureDefinition (identified in the StructureMap) to the equivalent target //Component// that is a Dimension in the target DataStructureDefinition).
111
112 ==== 9.3.2.2 Definitions ====
113
114 |**Class**|**Feature**|**Description**
115 |StructureMap|(((
116 Inherits from
117
118 //NameableArtefact//
119 )))|Links a source and target structure where there is a semantic equivalence between the source and the target structures.
120 | |alias|An alternate identification of the map, that allows the relation of multiple maps to be expressed by the sharing of this value.
121 | |+map|Association to the Component Map.
122 |ComponentMap|(((
123 Inherits from
124
125 //AnnotableArtefact//
126 )))|Links a source and target Component where there is a semantic equivalence between the source and the target Components.
127 | |alias|An alternate identification of the map, that allows the relation of multiple maps to be expressed by the sharing of this value.
128 | |preferredLanguage|Specifies the language to use for the content of the To Text Format option of RepresentationMap
129 | |+source|Association to the source Component.
130 | |+target|Association to the target Component.
131 | |+contentMap|Association to the constructs that map the content of the Components – this will be either one of sub classes of Item Scheme or a mapping to text.
132 |//Representation Mapping//|(((
133 AbstractClass Sub classes:
134
135 SchemeMap
136
137 ToTextFormat
138 )))|Defines the mapping of the content of the source Component to the content of the target Component.
139 |SchemeMap|(((
140 Inherits from
141
142 //RepresentationMapping &nbsp;&nbsp;&nbsp;//
143 )))|Associates an Item Scheme Map
144 |ToTextFormat|(((
145 Inherits from
146
147 //RepresentationMapping &nbsp;&nbsp;&nbsp;//
148 )))|Defines the text format
149 | |textFormat|Text format type.
150 | |toValueType|Identifies the construct to be taken from the Item of the source Component when mapping the content of the source Component to the content of the target Component.
151 |ToValueType| |Enumeration of the construct in the Item.
152
153 == {{id name="_Toc371054"/}}9.4 Item Scheme Map ==
154
155 === {{id name="_Toc371055"/}}9.4.1 Context ===
156
157 The ItemSchemeMap is used to associate the //Item//s in two different //ItemSchemes//. This is a generic mechanism that can be used to map //Item//s. Specific models exist for mapping schemes where there is a semantic equivalence between //Item//s in the //ItemScheme//. The model supports the mapping of any two //ItemScheme//s of the same type. These are:
158
159 * ConceptScheme
160 * CategoryScheme
161 * //OrganisationScheme//
162 * Codelist
163 * ReportingTaxonomy
164
165 === {{id name="_Toc371056"/}}9.4.2 Class Diagram ===
166
167 [[image:SDMX_2-1_SECTION_2_InformationModel_2020-07_f7e5c308.png||height="343" width="553"]]
168
169 **Figure 35: Class diagram of the Item Scheme Map**
170
171 === {{id name="_Toc371057"/}}9.4.3 Explanation of the Diagram ===
172
173 ==== 9.4.3.1 Narrative ====
174
175 Both the ItemSchemeMap and the ItemAssociation inherit from NameableArtefact.
176
177 Each of ConceptSchemeMap, CategorySchemeMap, CodelistMap and //OrganisationSchemeMap, //ReportingTaxonomyMap provides a mechanism for specifying semantic equivalence between the items (Concept, Category,Code, //Organisation, //ReportingCategory) in the scheme. Note that any type of //OrganisationScheme //and //Organisation// can be mapped (e.g. an Agency in an AgencyScheme can be mapped to an OrganisationUnit in an
178
179 OrganisationUnitScheme).
180
181 Each scheme map identifies a +source and +target scheme whose content is to be mapped. Note that many schemes can be joined together via a set of pair-wise mappings. The ConceptMap, CategoryMap, CodelistMap, OrganisationMap,and ReportingTaxonomyMap denotes which Concepts, Categorys, Codes, Organisations, and ReportingCategorys are semantically equivalent and a shared alias can be specified to refer to a set of mapped concepts to facilitate querying.
182
183 ==== 9.4.3.2 Definitions ====
184
185 |**Class**|**Feature**|**Description**
186 |//ItemSchemeMap//|Inherits from|Associates Schemes two Item
187 | |(((
188 //NameableArtefact//
189
190 //Sub Classes//
191
192 ConceptSchemeMap
193
194 CategorySchemeMap
195
196 CodelistMap
197
198 OrganisationSchemeMap
199
200 ReportingTaxonomyScheme
201
202 Map
203 )))|
204 | |source|Association to the source Item Scheme.
205 | |target|Association to the target Item Scheme.
206 | |ItemAssociation|Association to the Item Association.
207 |//ItemAssociation//|(((
208 Inherits from
209
210 //AnnotableArtefact//
211
212 //Sub Classes//
213
214 ConceptMap
215
216 CategoryMap
217
218 CodeMap
219
220 OrganisationMap
221
222 ReportingCategoryMap
223 )))|
224 | |source|Association to the source Item.
225 | |target|Association to the target Item.
226 |ConceptSchemeMap|(((
227 Inherits from
228
229 //ItemSchemeMap//
230 )))|Associates a source and target Concept Scheme
231 | |/source|Association to the source Concept Scheme.
232 | |/target|Association to the target Concept Scheme.
233 |ConceptMap|(((
234 Inherits from
235
236 //ItemAssociation//
237 )))|Associates a source and target Concept.
238 | |/source|Association to the source Concept.
239 | |/target|Association to the target Concept.
240 |CodelistMap|(((
241 Inherits from
242
243 //ItemSchemeMap//
244 )))|Associates a source and target Code list.
245 | |/source|Association to the source Code list.
246 | |/target|Association to the target Code list.
247
248 |CodeMap|(((
249 Inherits from
250
251 //ItemAssociation//
252 )))|Associates a source and target Code.
253 | |/source|Association to the source Code.
254 | |/target|Association to the target Code.
255 |CategorySchemeMap|(((
256 Inherits from
257
258 //ItemSchemeMap//
259 )))|Associates a source and target Category Scheme.
260 | |/source|Association to the source Category Scheme.
261 | |/target|Association to the target Category Scheme.
262 |CategoryMap|(((
263 Inherits from
264
265 //ItemAssociation//
266 )))|Associates a source and target Category.
267 | |/source|Association to the source Category.
268 | |/target|Association to the target Category.
269 |OrganisationSchemeMap|(((
270 Inherits from
271
272 //ItemSchemeMap//
273 )))|Associates a source and target Organisation Scheme.
274 | |/source|Association to the source Organisation Scheme.
275 | |/target|Association to the target Organisation Scheme.
276 |OrganisationMap|(((
277 Inherits from
278
279 //ItemAssociation//
280 )))|Associates a source and target Organisation.
281 | |/source|Association to the source Organisation.
282 | |/target|Association to the target Organisation.
283 |ReportingTaxonomyMap|(((
284 Inherits from
285
286 //ItemSchemeMap//
287 )))|(((
288 Associates a source and target Reporting
289
290 Taxonomy.
291 )))
292 | |/source|Association to the source Reporting Taxonomy.
293 | |/target|Association to the target Reporting Taxonomy.
294 |ReportingCategoryMap|(((
295 Inherits from
296
297 //ItemAssociation//
298 )))|(((
299 Associates a source and target Reporting
300
301 Category.
302 )))
303 | |/source|Association to the source Reporting Category.
304 | |/target|Association to the target Reporting Category.
305
306 == {{id name="_Toc371058"/}}9.5 Hybrid Codelist Map ==
307
308 ===== {{id name="_Toc371059"/}}9.5.1 Class Diagram =====
309
310 [[image:SDMX_2-1_SECTION_2_InformationModel_2020-07_44d2e12d.png||height="305" width="558"]]
311
312 **Figure 36: Class diagram of the Hybrid Codelist Map**
313
314 ===== {{id name="_Toc371060"/}}9.5.2 Explanation of the Diagram =====
315
316 ==== 9.5.2.1 Narrative ====
317
318 The HybridCodelistMap maps the content of a Codelist and a HierachicalCodelist. It contains a mapping of the codes in the two schemes (HybridCodeMap). The HybridCodeMap maps either a Code or HierachicalCode to a Code or HierarchicalCode. The HierarchicalCode is identified by a combination of the Hierarchy and the HierarchicalCode.
319
320 ==== 9.5.2.2 Definitions ====
321
322 |**Class**|**Feature**|**Description**
323 |HybridCodelist Map|(((
324 Inherits from
325
326 //NameableArtefact//
327 )))|Associates a Codelist and a Hierarchical Codelist.
328 | |alias|An alternate identification of the map, that allows the relation of multiple maps to be expressed by the sharing of this value.
329 | |+source|Association to the source List.
330 | |+target|Association to the target List.
331 | |+hybridCodeMap|Association to the set of Hybrid Code Maps in the Hybrid Codelist Map.
332 |//SourceList//|(((
333 Abstract Class
334
335 Sub classes
336
337 SourceCodelist
338
339 SourceHierarchical
340
341 Codelist
342 )))|
343 |//TargetList//|(((
344 Abstract Class
345
346 Sub classes
347
348 TargetCodelist
349
350 TargetHierarchical
351
352 Codelist
353 )))|
354 |SourceCodelist// &nbsp;&nbsp;&nbsp;//| |Identifies the Codelist where this is the source of the map.
355 |TargetCodelist// &nbsp;&nbsp;&nbsp;//| |Identifies the Codelist where this is the target of the map.
356 |SourceHierarchical Codelist// &nbsp;&nbsp;&nbsp;//| |Identifies the Hierarchical Codelist where this is the source of the map.
357 |TargetHierarchical Codelist// &nbsp;&nbsp;&nbsp;//| |Identifies the Hierarchical Codelist where this is the target of the map.
358 |HybridCodeMap|(((
359 Inherits from
360
361 //AnnotableArtefact//
362 )))|(((
363 Associates the source and target codes in
364
365 Hybrid Codelist Map.
366 )))
367 | |+source|Associates the Source Code Map.
368 | |+target|Associates the Target Code Map.
369 |//SourceCodeMap//|(((
370 Abstract Class
371
372 Sub classes
373
374 SourceCode
375
376 SourceHierarchical
377
378 Code
379 )))|
380 |//TargetCodeMap//|(((
381 Abstract Class
382
383 Sub classes
384
385 TargetCode
386
387 TargetHierarchical
388
389 Code
390 )))|
391 |SourceCode// &nbsp;&nbsp;&nbsp;//| |Identifies the Code where this is the source of the map.
392 |TargetCode// &nbsp;&nbsp;&nbsp;//| |Identifies the Code where this is the target of the map.
393 |SourceHierarchical Code// &nbsp;&nbsp;&nbsp;//| |Identifies the Hierarchical Code where this is the source of the map
394 |TargetHierarchical Code// &nbsp;&nbsp;&nbsp;//| |Identifies the Hierarchical Code where this is the target of the map.
395 |HierarchicalCode Reference| |References both the Hierarchy and the Hierarchical Code in a Hierarchical Codelist.
396 | |(((
397 +hierarchy
398
399 +codeAssociation
400 )))|Associates the Hierarchical Code in the Hierarchy of the Hierarchical Codelist.