Changes for page 13 Structure Mapping
Last modified by Artur on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -319,29 +319,30 @@ 319 319 The following pattern letters are defined (all other characters from 'A' to 'Z' and from 'a' to 'z' are reserved): 320 320 321 321 (% style="width:850.294px" %) 322 -|(% style="width:12 5px" %)**Letter**|(% style="width:385px" %)**Date or Time Component**|(% style="width:180px" %)**Presentation**|(% style="width:157px" %)**Examples**323 -|(% style="width:12 5px" %)G|(% style="width:385px" %)Era designator|(% style="width:180px" %)Text|(% style="width:157px" %)AD324 -|(% style="width:12 5px" %)yy|(% style="width:385px" %)Year short (upper case is Year of Week{{footnote}}yyyy represents the calendar year while YYYY represents the year of the week, which is only relevant for 53 week years{{/footnote}})|(% style="width:180px" %)Year|(% style="width:157px" %)96325 -|(% style="width:12 5px" %)yyyy|(% style="width:385px" %)Year Full (upper case is Year of Week)|(% style="width:180px" %)Year|(% style="width:157px" %)1996326 -|(% style="width:12 5px" %)MM|(% style="width:385px" %)Month number in year starting with 1|(% style="width:180px" %)Month|(% style="width:157px" %)07327 -|(% style="width:12 5px" %)MMM|(% style="width:385px" %)Month name short|(% style="width:180px" %)Month|(% style="width:157px" %)Jul328 -|(% style="width:12 5px" %)MMMM|(% style="width:385px" %)Month name full|(% style="width:180px" %)Month|(% style="width:157px" %)July329 -|(% style="width:12 5px" %)ww|(% style="width:385px" %)Week in year|(% style="width:180px" %)Number|(% style="width:157px" %)27330 -|(% style="width:12 5px" %)W|(% style="width:385px" %)Week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2331 -|(% style="width:12 5px" %)DD|(% style="width:385px" %)Day in year|(% style="width:180px" %)Number|(% style="width:157px" %)189332 -|(% style="width:12 5px" %)dd|(% style="width:385px" %)Day in month|(% style="width:180px" %)Number|(% style="width:157px" %)10333 -|(% style="width:12 5px" %)F|(% style="width:385px" %)Day of week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2334 -|(% style="width:12 5px" %)E|(% style="width:385px" %)Day name in week|(% style="width:180px" %)Text|(% style="width:157px" %)Tuesday; Tue335 -|(% style="width:12 5px" %)U|(% style="width:385px" %)Day number of week (1 = Monday, ..., 7 = Sunday)|(% style="width:180px" %)Number|(% style="width:157px" %)1336 -|(% style="width:12 5px" %)HH|(% style="width:385px" %)Hour in day (0-23)|(% style="width:180px" %)Number|(% style="width:157px" %)0337 -|(% style="width:12 5px" %)kk|(% style="width:385px" %)Hour in day (1-24)|(% style="width:180px" %)Number|(% style="width:157px" %)24338 -|(% style="width:12 5px" %)KK|(% style="width:385px" %)Hour in am/pm (0-11)|(% style="width:180px" %)Number|(% style="width:157px" %)0339 -|(% style="width:12 5px" %)hh|(% style="width:385px" %)Hour in am/pm (1-12)|(% style="width:180px" %)Number|(% style="width:157px" %)12340 -|(% style="width:12 5px" %)mm|(% style="width:385px" %)Minute in hour|(% style="width:180px" %)Number|(% style="width:157px" %)30341 -|(% style="width:12 5px" %)ss|(% style="width:385px" %)Second in minute|(% style="width:180px" %)Number|(% style="width:157px" %)55342 -|(% style="width:12 5px" %)S|(% style="width:385px" %)Millisecond|(% style="width:180px" %)Number|(% style="width:157px" %)978343 -|(% style="width:12 5px" %)n|(% style="width:385px" %)(((322 +|(% style="width:182px" %)Letter|(% style="width:327px" %)Date or Time Component|(% style="width:180px" %)Presentation|(% style="width:157px" %)Examples 323 +|(% style="width:182px" %)G|(% style="width:327px" %)Era designator|(% style="width:180px" %)Text|(% style="width:157px" %)AD 324 +|(% style="width:182px" %)yy|(% style="width:327px" %)Year short (upper case is Year of Week{{footnote}}yyyy represents the calendar year while YYYY represents the year of the week, which is only relevant for 53 week years{{/footnote}})|(% style="width:180px" %)Year|(% style="width:157px" %)96 325 +|(% style="width:182px" %)yyyy|(% style="width:327px" %)Year Full (upper case is Year of Week)|(% style="width:180px" %)Year|(% style="width:157px" %)1996 326 +|(% style="width:182px" %)MM|(% style="width:327px" %)Month number in year starting with 1|(% style="width:180px" %)Month|(% style="width:157px" %)07 327 +|(% style="width:182px" %)MMM|(% style="width:327px" %)Month name short|(% style="width:180px" %)Month|(% style="width:157px" %)Jul 328 +|(% style="width:182px" %)MMMM|(% style="width:327px" %)Month name full|(% style="width:180px" %)Month|(% style="width:157px" %)July 329 +|(% style="width:182px" %)ww|(% style="width:327px" %)Week in year|(% style="width:180px" %)Number|(% style="width:157px" %)27 330 +|(% style="width:182px" %)W|(% style="width:327px" %)Week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2 331 +|(% style="width:182px" %)DD|(% style="width:327px" %)Day in year|(% style="width:180px" %)Number|(% style="width:157px" %)189 332 +|(% style="width:182px" %)dd|(% style="width:327px" %)Day in month|(% style="width:180px" %)Number|(% style="width:157px" %)10 333 +|(% style="width:182px" %)F|(% style="width:327px" %)Day of week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2 334 +|(% style="width:182px" %)E|(% style="width:327px" %)Day name in week|(% style="width:180px" %)Text|(% style="width:157px" %)Tuesday; Tue 335 +|(% style="width:182px" %)U|(% style="width:327px" %)Day number of week (1 = Monday, ..., 7 = Sunday)|(% style="width:180px" %)Number|(% style="width:157px" %)1 336 +|(% style="width:182px" %)HH|(% style="width:327px" %)Hour in day (0-23)|(% style="width:180px" %)Number|(% style="width:157px" %)0 337 +|(% style="width:182px" %)kk|(% style="width:327px" %)Hour in day (1-24)|(% style="width:180px" %)Number|(% style="width:157px" %)24 338 +|(% style="width:182px" %)KK|(% style="width:327px" %)Hour in am/pm (0-11)|(% style="width:180px" %)Number|(% style="width:157px" %)0 339 +|(% style="width:182px" %)hh|(% style="width:327px" %)Hour in am/pm (1-12)|(% style="width:180px" %)Number|(% style="width:157px" %)12 340 +|(% style="width:182px" %)mm|(% style="width:327px" %)Minute in hour|(% style="width:180px" %)Number|(% style="width:157px" %)30 341 +|(% style="width:182px" %)ss|(% style="width:327px" %)Second in minute|(% style="width:180px" %)Number|(% style="width:157px" %)55 342 +|(% style="width:182px" %)S|(% style="width:327px" %)Millisecond|(% style="width:180px" %)Number|(% style="width:157px" %)978 343 +|(% style="width:182px" %)n|(% style="width:327px" %)((( 344 344 Number of periods, used after a SDMX 345 + 345 345 Frequency Identifier such as M, Q, D (month, quarter, day) 346 346 )))|(% style="width:180px" %)Number|(% style="width:157px" %)12 347 347 ... ... @@ -358,7 +358,7 @@ 358 358 359 359 === 13.7.2 Numerical based datetime === 360 360 361 -Where the source datetime input is purely numerical, the mapping rules are defined by the **Base** as a valid [[SDMX>>doc:sdmx:Glossary.Statisticaldata and metadata exchange.WebHome]] [[Time Period>>doc:sdmx:Glossary.Time period.WebHome]], and the **Period** which must take one of the following enumerated values:362 +Where the source datetime input is purely numerical, the mapping rules are defined by the **Base** as a valid SDMX Time Period, and the **Period** which must take one of the following enumerated values: 362 362 363 363 * day 364 364 * second ... ... @@ -366,63 +366,75 @@ 366 366 * microsecond 367 367 * nanosecond 368 368 369 -(% style="width:545.294px" %) 370 -|(% style="width:268px" %)Numerical datetime systems|(% style="width:121px" %)Base|(% style="width:153px" %)Period 371 -|(% style="width:268px" %)((( 370 +|Numerical datetime systems|Base|Period 371 +|((( 372 372 Epoch Time (UNIX) 373 + 373 373 Milliseconds since 01 Jan 1970 374 -)))| (% style="width:121px" %)1970|(% style="width:153px" %)millisecond375 -|( % style="width:268px" %)(((375 +)))|1970|millisecond 376 +|((( 376 376 Windows System Time 378 + 377 377 Milliseconds since 01 Jan 1601 378 -)))| (% style="width:121px" %)1601|(% style="width:153px" %)millisecond380 +)))|1601|millisecond 379 379 380 380 The example above illustrates numerical based datetime mapping rules for two commonly used time standards. 381 381 382 382 The model is illustrated below: 383 383 384 -[[image:1750074 994887-415.png]]386 +[[image:1750072341491-790.jpeg]] 385 385 386 -**Figure 26 showing the component map mapping the SOURCE_DATE Dimension to the TIME_PERIOD Dimension with the additional information on the component map to describe the numerical datetime system in use**388 +**Figure 26 showing the component map mapping the SOURCE_DATE Dimension to the** 387 387 388 -=== 13.7.3Mappingmore complextime inputs ===390 +==== TIME_PERIOD Dimension with the additional information on the component map to describe the numerical datetime system in use ==== 389 389 390 - [[VTL>>doc:sdmx:Glossary.Validationand transformationlanguage.WebHome]]should be used formore complex time inputsthat cannot be interpreted using the pattern based on numerical methods.392 +=== Mapping more complex time inputs === 391 391 392 - ==13.8UsingTIME_PERIODinmapping rules==394 +VTL should be used for more complex time inputs that cannot be interpreted using the pattern based on numerical methods. 393 393 394 - ThesourceTIME_PERIOD[[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]]can be used in conjunction with other input [[Dimensions>>doc:sdmx:Glossary.Dimension.WebHome]] to create discrete mapping ruleswhere the output is conditional on the [[time period>>doc:sdmx:Glossary.Time period.WebHome]] value.396 +== Using TIME_PERIOD in mapping rules == 395 395 396 -The main usecaseissettingthevalueofObservation[[Attributes>>doc:sdmx:Glossary.Attribute.WebHome]]inthetarget[[dataset>>doc:sdmx:Glossary.Dataset.WebHome]].398 +The source TIME_PERIOD Dimension can be used in conjunction with other input Dimensions to create discrete mapping rules where the output is conditional on the time period value. 397 397 398 -(% style="width:709.294px" %) 399 -|(% style="width:103px" %)**Rule**|(% style="width:405px" %)**Source**|(% style="width:198px" %)**Target** 400 -|(% style="width:103px" %)1|(% style="width:405px" %)((( 400 +The main use case is setting the value of Observation Attributes in the target dataset. 401 + 402 +|Rule|Source|Target 403 +|1|((( 401 401 If 405 + 402 402 INDICATOR=XULADS; and TIME_PERIOD=2007. 403 -)))|(% style="width:198px" %)((( 404 -Set OBS_CONF=F 407 +)))|((( 408 +Set 409 + 410 +OBS_CONF=F 405 405 ))) 406 -| (% style="width:103px" %)2|(% style="width:405px" %)(((412 +|2|((( 407 407 If 414 + 408 408 INDICATOR=XULADS; and TIME_PERIOD=2008. 409 -)))| (% style="width:198px" %)Set OBS_CONF=F410 -| (% style="width:103px" %)3|(% style="width:405px" %)(((416 +)))|Set OBS_CONF=F 417 +|3|((( 411 411 If 419 + 412 412 INDICATOR=XULADS; and TIME_PERIOD=2009. 413 -)))|(% style="width:198px" %)((( 414 -Set OBS_CONF=F 421 +)))|((( 422 +Set 423 + 424 +OBS_CONF=F 415 415 ))) 416 -| (% style="width:103px" %)4|(% style="width:405px" %)(((426 +|4|((( 417 417 If 428 + 418 418 INDICATOR=XULADS; and TIME_PERIOD=2010. 419 -)))|(% style="width:198px" %)((( 420 -Set OBS_CONF=**C** 430 +)))|((( 431 +Set 432 + 433 +OBS_CONF=**C** 421 421 ))) 422 422 423 -In the example above, OBS_CONF is an Observation [[Attribute>>doc:sdmx:Glossary.Attribute.WebHome]].436 +In the example above, OBS_CONF is an Observation Attribute. 424 424 425 -== 13. 9Time span mapping rules using validity periods ==438 +== 13. Time span mapping rules using validity periods == 426 426 427 427 Creating discrete mapping rules for each TIME_PERIOD is impractical where rules need to cover a specific span of time regardless of frequency, and for high-frequency data. 428 428 ... ... @@ -430,22 +430,25 @@ 430 430 431 431 By specifying validity periods, the example from Section 13.8 can be re-written using two rules as follows: 432 432 433 -(% style="width:516.294px" %) 434 -|(% style="width:74px" %)Rule|(% style="width:215px" %)Source|(% style="width:223px" %)Target 435 -|(% style="width:74px" %)1|(% style="width:215px" %)((( 446 +|Rule|Source|Target 447 +|1|((( 436 436 If 449 + 437 437 INDICATOR=XULADS. 438 - Validity Period439 - start period=2007440 -end period=2009 441 -)))| (% style="width:223px" %)Set OBS_CONF=F442 -| (% style="width:74px" %)2|(% style="width:215px" %)(((451 + 452 + 453 +Validity Period start period=2007 end period=2009 454 +)))|Set OBS_CONF=F 455 +|2|((( 443 443 If 457 + 444 444 INDICATOR=XULADS. 445 -Validity Period 446 -start period=2010 447 -)))|(% style="width:223px" %)((( 459 + 460 + 461 +Validity Period start period=2010 462 +)))|((( 448 448 Set 464 + 449 449 OBS_CONF=F 450 450 ))) 451 451 ... ... @@ -453,61 +453,70 @@ 453 453 454 454 In Rule 2, no end period is specified so remains in effect from the start of the period (2010-01-01T00:00:00) until the end of time. Any observations reporting data for the Indicator XULADS that fall into that time range will have an OBS_CONF value of C. 455 455 456 - InRule 2, no end period is specified so remains in effect from the start of the period (2010-01-01T00:00:00) until the end of time.Any observations reportingdata for theIndicator XULADS that fall into that time range will havean OBS_CONF value of C.472 +== 13. Mapping examples == 457 457 458 -== 13. 10Mappingexamples==474 +=== 13. Many to one mapping (N-1) === 459 459 460 -=== 13.10.1 Many to one mapping (N3513 -1) === 476 +|Source|Map To 477 +|((( 478 +**FREQ**="A" 461 461 462 -(% style="width:542.294px" %) 463 -|(% style="width:274px" %)**Source**|(% style="width:265px" %)**Map To** 464 -|(% style="width:274px" %)((( 465 -(% style="color:#8e44ad" %)**FREQ**="A" 466 466 ADJUSTMENT="N" 481 + 467 467 **REF_AREA**="PL" 483 + 468 468 **COUNTERPART_AREA**="W0" 485 + 469 469 REF_SECTOR="S1" 487 + 470 470 COUNTERPART_SECTOR="S1" 489 + 471 471 ACCOUNTING_ENTRY="B" 491 + 472 472 STO="B5G" 473 -)))|(% style="width:265px" %)((( 474 -(% style="color:#8e44ad" %)FREQ="A" 493 +)))|((( 494 +FREQ="A" 495 + 475 475 REF_AREA="PL" 497 + 476 476 COUNTERPART_AREA="W0" 477 -INDICATOR="IND_ABC" (%%)499 +INDICATOR="IND_ABC" 478 478 479 479 ))) 480 480 481 -The bold [[Dimensions>>doc:sdmx:Glossary.Dimension.WebHome]](% style="color:#e74c3c" %)map(%%)from source to target verbatim. The mapping simply specifies:503 +The bold Dimensions map from source to target verbatim. The mapping simply specifies: 482 482 483 -> FREQ => FREQ 484 -> REF_AREA=> REF_AREA 485 -> COUNTERPART_AREA=> COUNTERPART _AREA 505 +FREQ => FREQ 486 486 487 - No [[Representation>>doc:sdmx:Glossary.Representation.WebHome]]Mapping is required. The source value simply copies across unmodified.507 +REF_AREA=> REF_AREA 488 488 489 -T he remaining [[Dimensions>>doc:sdmx:Glossary.Dimension.WebHome]] all (% style="color:#e74c3c" %)map(%%) to the Indicator [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]].This is an example of many [[Dimensions>>doc:sdmx:Glossary.Dimension.WebHome]] mapping to one [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]]. In this case a [[Representation>>doc:sdmx:Glossary.Representation.WebHome]]Mapping is required, and the mapping first describes the input 'partial key' and how this (% style="color:#e74c3c" %)maps(%%) to the target indicator:509 +COUNTERPART_AREA=> COUNTERPART _AREA 490 490 491 - >N:S1:S1:B:B5G=>IND_ABC511 +No Representation Mapping is required. The source value simply copies across unmodified. 492 492 493 - Wherethekey sequenceisbasedonthe orderspecifiedinthe(%style="color:#e74c3c"%)mapping(%%)(i.e[[ADJUSTMENT>>doc:sdmx:Glossary.Adjustment.WebHome]],REF_SECTOR,etc willresultin the firstvalueNbeingtakenfrom [[ADJUSTMENT>>doc:sdmx:Glossary.Adjustment.WebHome]]asthiswasthe firstiteminthesource[[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] list.513 +The remaining Dimensions all map to the Indicator Dimension. This is an example of many Dimensions mapping to one Dimension. In this case a Representation Mapping is required, and the mapping first describes the input 'partial key' and how this maps to the target indicator: 494 494 495 - **Note**:The key order is NOT based on the [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] order of the [[DSD>>doc:sdmx:Glossary.Datastructure definition.WebHome]], as the (% style="color:#e74c3c" %)mapping(%%) needs to be resilient to the [[DSD>>doc:sdmx:Glossary.Datastructure definition.WebHome]] changing.515 +N:S1:S1:B:B5G => IND_ABC 496 496 497 - ===13.10.2Mappingotherdata types toCodeId===517 +Where the key sequence is based on the order specified in the mapping (i.e ADJUSTMENT, REF_SECTOR, etc will result in the first value N being taken from ADJUSTMENT as this was the first item in the source Dimension list. 498 498 499 - Inthecase wheretheincomingdata type isnotastring and not a [[code>>doc:sdmx:Glossary.Code.WebHome]]identifieri.e.thesource [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]]isof type Integer and thetargetisCodelist. This is supportedby the RepresentationMap. The RepresentationMapsource canreference a Codelist,Valuelist,orbefree text,thefreetextcaninclude regular expressions.519 +**Note**: The key order is NOT based on the Dimension order of the DSD, as the mapping needs to be resilient to the DSD changing. 500 500 501 -The following [[representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)mapping(%%) can be used to explicitly (% style="color:#e74c3c" %)map(%%) each [[age>>doc:sdmx:Glossary.Age.WebHome]] to an output [[code>>doc:sdmx:Glossary.Code.WebHome]]. 521 +1. 522 +11. 523 +111. Mapping other data types to Code Id 502 502 503 -(% style="width:402.294px" %) 504 -|(% style="width:188px" %)**Source Input Free Text**|(% style="width:211px" %)**Desired Output Code Id** 505 -|(% style="width:188px" %)0|(% style="width:211px" %)A 506 -|(% style="width:188px" %)1|(% style="width:211px" %)A 507 -|(% style="width:188px" %)2|(% style="width:211px" %)A 508 -|(% style="width:188px" %)3|(% style="width:211px" %)B 509 -|(% style="width:188px" %)4|(% style="width:211px" %)B 525 +In the case where the incoming data type is not a string and not a code identifier i.e. the source Dimension is of type Integer and the target is Codelist. This is supported by the RepresentationMap. The RepresentationMap source can reference a Codelist, Valuelist, or be free text, the free text can include regular expressions. 510 510 527 +The following representation mapping can be used to explicitly map each age to an output code. 528 + 529 +|Source Input Free Text|Desired Output Code Id 530 +|0|A 531 +|1|A 532 +|2|A 533 +|3|B 534 +|4|B 535 + 511 511 If this mapping takes advantage of regular expressions it can be expressed in two rules: 512 512 513 513
- 1750074994887-415.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.helena - Size
-
... ... @@ -1,1 +1,0 @@ 1 -12.4 KB - Content