Wiki source code of 9 Structure Set and Mappings
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
2.1 | 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 | |||
| |
5.1 | 7 | : |
| |
2.1 | 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. | ||
| |
5.1 | 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 | ||
| |
2.1 | 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. | ||
| |
5.1 | 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. | ||
| |
2.1 | 81 | |
| 82 | == {{id name="_Toc371051"/}}9.3 Structure Map == | ||
| 83 | |||
| 84 | === {{id name="_Toc371052"/}}9.3.1 Class Diagram === | ||
| 85 | |||
| |
5.1 | 86 | : |
| 87 | :: | ||
| 88 | ::: | ||
| 89 | :::: | ||
| 90 | ::::: | ||
| 91 | :::::: | ||
| 92 | ::::::: | ||
| 93 | :::::::: | ||
| 94 | ::::::::: | ||
| 95 | :::::::::: | ||
| |
2.1 | 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. | ||
| |
5.1 | 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. | ||
| |
2.1 | 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. | ||
| |
5.1 | 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. | ||
| |
2.1 | 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 // | ||
| 143 | )))|Associates an Item Scheme Map | ||
| 144 | |ToTextFormat|((( | ||
| 145 | Inherits from | ||
| 146 | |||
| 147 | //RepresentationMapping // | ||
| 148 | )))|Defines the text format | ||
| |
5.1 | 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. | ||
| |
2.1 | 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 | ||
| |
5.1 | 187 | | |((( |
| |
2.1 | 188 | //NameableArtefact// |
| 189 | |||
| 190 | //Sub Classes// | ||
| 191 | |||
| 192 | ConceptSchemeMap | ||
| 193 | |||
| 194 | CategorySchemeMap | ||
| 195 | |||
| 196 | CodelistMap | ||
| 197 | |||
| 198 | OrganisationSchemeMap | ||
| 199 | |||
| 200 | ReportingTaxonomyScheme | ||
| 201 | |||
| 202 | Map | ||
| |
5.1 | 203 | )))| |
| 204 | | |source|Association to the source Item Scheme. | ||
| 205 | | |target|Association to the target Item Scheme. | ||
| 206 | | |ItemAssociation|Association to the Item Association. | ||
| |
2.1 | 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 | ||
| |
5.1 | 223 | )))| |
| 224 | | |source|Association to the source Item. | ||
| 225 | | |target|Association to the target Item. | ||
| |
2.1 | 226 | |ConceptSchemeMap|((( |
| 227 | Inherits from | ||
| 228 | |||
| 229 | //ItemSchemeMap// | ||
| 230 | )))|Associates a source and target Concept Scheme | ||
| |
5.1 | 231 | | |/source|Association to the source Concept Scheme. |
| 232 | | |/target|Association to the target Concept Scheme. | ||
| |
2.1 | 233 | |ConceptMap|((( |
| 234 | Inherits from | ||
| 235 | |||
| 236 | //ItemAssociation// | ||
| 237 | )))|Associates a source and target Concept. | ||
| |
5.1 | 238 | | |/source|Association to the source Concept. |
| 239 | | |/target|Association to the target Concept. | ||
| |
2.1 | 240 | |CodelistMap|((( |
| 241 | Inherits from | ||
| 242 | |||
| 243 | //ItemSchemeMap// | ||
| 244 | )))|Associates a source and target Code list. | ||
| |
5.1 | 245 | | |/source|Association to the source Code list. |
| 246 | | |/target|Association to the target Code list. | ||
| |
2.1 | 247 | |
| 248 | |CodeMap|((( | ||
| 249 | Inherits from | ||
| 250 | |||
| 251 | //ItemAssociation// | ||
| 252 | )))|Associates a source and target Code. | ||
| |
5.1 | 253 | | |/source|Association to the source Code. |
| 254 | | |/target|Association to the target Code. | ||
| |
2.1 | 255 | |CategorySchemeMap|((( |
| 256 | Inherits from | ||
| 257 | |||
| 258 | //ItemSchemeMap// | ||
| 259 | )))|Associates a source and target Category Scheme. | ||
| |
5.1 | 260 | | |/source|Association to the source Category Scheme. |
| 261 | | |/target|Association to the target Category Scheme. | ||
| |
2.1 | 262 | |CategoryMap|((( |
| 263 | Inherits from | ||
| 264 | |||
| 265 | //ItemAssociation// | ||
| 266 | )))|Associates a source and target Category. | ||
| |
5.1 | 267 | | |/source|Association to the source Category. |
| 268 | | |/target|Association to the target Category. | ||
| |
2.1 | 269 | |OrganisationSchemeMap|((( |
| 270 | Inherits from | ||
| 271 | |||
| 272 | //ItemSchemeMap// | ||
| 273 | )))|Associates a source and target Organisation Scheme. | ||
| |
5.1 | 274 | | |/source|Association to the source Organisation Scheme. |
| 275 | | |/target|Association to the target Organisation Scheme. | ||
| |
2.1 | 276 | |OrganisationMap|((( |
| 277 | Inherits from | ||
| 278 | |||
| 279 | //ItemAssociation// | ||
| 280 | )))|Associates a source and target Organisation. | ||
| |
5.1 | 281 | | |/source|Association to the source Organisation. |
| 282 | | |/target|Association to the target Organisation. | ||
| |
2.1 | 283 | |ReportingTaxonomyMap|((( |
| 284 | Inherits from | ||
| 285 | |||
| 286 | //ItemSchemeMap// | ||
| 287 | )))|((( | ||
| 288 | Associates a source and target Reporting | ||
| 289 | |||
| 290 | Taxonomy. | ||
| 291 | ))) | ||
| |
5.1 | 292 | | |/source|Association to the source Reporting Taxonomy. |
| 293 | | |/target|Association to the target Reporting Taxonomy. | ||
| |
2.1 | 294 | |ReportingCategoryMap|((( |
| 295 | Inherits from | ||
| 296 | |||
| 297 | //ItemAssociation// | ||
| 298 | )))|((( | ||
| 299 | Associates a source and target Reporting | ||
| 300 | |||
| 301 | Category. | ||
| 302 | ))) | ||
| |
5.1 | 303 | | |/source|Association to the source Reporting Category. |
| 304 | | |/target|Association to the target Reporting Category. | ||
| |
2.1 | 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. | ||
| |
5.1 | 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. | ||
| |
2.1 | 332 | |//SourceList//|((( |
| 333 | Abstract Class | ||
| 334 | |||
| 335 | Sub classes | ||
| 336 | |||
| 337 | SourceCodelist | ||
| 338 | |||
| 339 | SourceHierarchical | ||
| 340 | |||
| 341 | Codelist | ||
| |
5.1 | 342 | )))| |
| |
2.1 | 343 | |//TargetList//|((( |
| 344 | Abstract Class | ||
| 345 | |||
| 346 | Sub classes | ||
| 347 | |||
| 348 | TargetCodelist | ||
| 349 | |||
| 350 | TargetHierarchical | ||
| 351 | |||
| 352 | Codelist | ||
| |
5.1 | 353 | )))| |
| 354 | |SourceCodelist// //| |Identifies the Codelist where this is the source of the map. | ||
| 355 | |TargetCodelist// //| |Identifies the Codelist where this is the target of the map. | ||
| 356 | |SourceHierarchical Codelist// //| |Identifies the Hierarchical Codelist where this is the source of the map. | ||
| 357 | |TargetHierarchical Codelist// //| |Identifies the Hierarchical Codelist where this is the target of the map. | ||
| |
2.1 | 358 | |HybridCodeMap|((( |
| 359 | Inherits from | ||
| 360 | |||
| 361 | //AnnotableArtefact// | ||
| 362 | )))|((( | ||
| 363 | Associates the source and target codes in | ||
| 364 | |||
| 365 | Hybrid Codelist Map. | ||
| 366 | ))) | ||
| |
5.1 | 367 | | |+source|Associates the Source Code Map. |
| 368 | | |+target|Associates the Target Code Map. | ||
| |
2.1 | 369 | |//SourceCodeMap//|((( |
| 370 | Abstract Class | ||
| 371 | |||
| 372 | Sub classes | ||
| 373 | |||
| 374 | SourceCode | ||
| 375 | |||
| 376 | SourceHierarchical | ||
| 377 | |||
| 378 | Code | ||
| |
5.1 | 379 | )))| |
| |
2.1 | 380 | |//TargetCodeMap//|((( |
| 381 | Abstract Class | ||
| 382 | |||
| 383 | Sub classes | ||
| 384 | |||
| 385 | TargetCode | ||
| 386 | |||
| 387 | TargetHierarchical | ||
| 388 | |||
| 389 | Code | ||
| |
5.1 | 390 | )))| |
| 391 | |SourceCode// //| |Identifies the Code where this is the source of the map. | ||
| 392 | |TargetCode// //| |Identifies the Code where this is the target of the map. | ||
| 393 | |SourceHierarchical Code// //| |Identifies the Hierarchical Code where this is the source of the map | ||
| 394 | |TargetHierarchical Code// //| |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 | | |((( | ||
| |
2.1 | 397 | +hierarchy |
| 398 | |||
| 399 | +codeAssociation | ||
| 400 | )))|Associates the Hierarchical Code in the Hierarchy of the Hierarchical Codelist. |