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, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -319,30 +319,29 @@ 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:1 82px" %)Letter|(% style="width:327px" %)Date or Time Component|(% style="width:180px" %)Presentation|(% style="width:157px" %)Examples323 -|(% style="width:1 82px" %)G|(% style="width:327px" %)Era designator|(% style="width:180px" %)Text|(% style="width:157px" %)AD324 -|(% style="width:1 82px" %)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" %)96325 -|(% style="width:1 82px" %)yyyy|(% style="width:327px" %)Year Full (upper case is Year of Week)|(% style="width:180px" %)Year|(% style="width:157px" %)1996326 -|(% style="width:1 82px" %)MM|(% style="width:327px" %)Month number in year starting with 1|(% style="width:180px" %)Month|(% style="width:157px" %)07327 -|(% style="width:1 82px" %)MMM|(% style="width:327px" %)Month name short|(% style="width:180px" %)Month|(% style="width:157px" %)Jul328 -|(% style="width:1 82px" %)MMMM|(% style="width:327px" %)Month name full|(% style="width:180px" %)Month|(% style="width:157px" %)July329 -|(% style="width:1 82px" %)ww|(% style="width:327px" %)Week in year|(% style="width:180px" %)Number|(% style="width:157px" %)27330 -|(% style="width:1 82px" %)W|(% style="width:327px" %)Week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2331 -|(% style="width:1 82px" %)DD|(% style="width:327px" %)Day in year|(% style="width:180px" %)Number|(% style="width:157px" %)189332 -|(% style="width:1 82px" %)dd|(% style="width:327px" %)Day in month|(% style="width:180px" %)Number|(% style="width:157px" %)10333 -|(% style="width:1 82px" %)F|(% style="width:327px" %)Day of week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2334 -|(% style="width:1 82px" %)E|(% style="width:327px" %)Day name in week|(% style="width:180px" %)Text|(% style="width:157px" %)Tuesday; Tue335 -|(% style="width:1 82px" %)U|(% style="width:327px" %)Day number of week (1 = Monday, ..., 7 = Sunday)|(% style="width:180px" %)Number|(% style="width:157px" %)1336 -|(% style="width:1 82px" %)HH|(% style="width:327px" %)Hour in day (0-23)|(% style="width:180px" %)Number|(% style="width:157px" %)0337 -|(% style="width:1 82px" %)kk|(% style="width:327px" %)Hour in day (1-24)|(% style="width:180px" %)Number|(% style="width:157px" %)24338 -|(% style="width:1 82px" %)KK|(% style="width:327px" %)Hour in am/pm (0-11)|(% style="width:180px" %)Number|(% style="width:157px" %)0339 -|(% style="width:1 82px" %)hh|(% style="width:327px" %)Hour in am/pm (1-12)|(% style="width:180px" %)Number|(% style="width:157px" %)12340 -|(% style="width:1 82px" %)mm|(% style="width:327px" %)Minute in hour|(% style="width:180px" %)Number|(% style="width:157px" %)30341 -|(% style="width:1 82px" %)ss|(% style="width:327px" %)Second in minute|(% style="width:180px" %)Number|(% style="width:157px" %)55342 -|(% style="width:1 82px" %)S|(% style="width:327px" %)Millisecond|(% style="width:180px" %)Number|(% style="width:157px" %)978343 -|(% style="width:1 82px" %)n|(% style="width:327px" %)(((322 +|(% style="width:125px" %)**Letter**|(% style="width:385px" %)**Date or Time Component**|(% style="width:180px" %)**Presentation**|(% style="width:157px" %)**Examples** 323 +|(% style="width:125px" %)G|(% style="width:385px" %)Era designator|(% style="width:180px" %)Text|(% style="width:157px" %)AD 324 +|(% style="width:125px" %)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" %)96 325 +|(% style="width:125px" %)yyyy|(% style="width:385px" %)Year Full (upper case is Year of Week)|(% style="width:180px" %)Year|(% style="width:157px" %)1996 326 +|(% style="width:125px" %)MM|(% style="width:385px" %)Month number in year starting with 1|(% style="width:180px" %)Month|(% style="width:157px" %)07 327 +|(% style="width:125px" %)MMM|(% style="width:385px" %)Month name short|(% style="width:180px" %)Month|(% style="width:157px" %)Jul 328 +|(% style="width:125px" %)MMMM|(% style="width:385px" %)Month name full|(% style="width:180px" %)Month|(% style="width:157px" %)July 329 +|(% style="width:125px" %)ww|(% style="width:385px" %)Week in year|(% style="width:180px" %)Number|(% style="width:157px" %)27 330 +|(% style="width:125px" %)W|(% style="width:385px" %)Week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2 331 +|(% style="width:125px" %)DD|(% style="width:385px" %)Day in year|(% style="width:180px" %)Number|(% style="width:157px" %)189 332 +|(% style="width:125px" %)dd|(% style="width:385px" %)Day in month|(% style="width:180px" %)Number|(% style="width:157px" %)10 333 +|(% style="width:125px" %)F|(% style="width:385px" %)Day of week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2 334 +|(% style="width:125px" %)E|(% style="width:385px" %)Day name in week|(% style="width:180px" %)Text|(% style="width:157px" %)Tuesday; Tue 335 +|(% style="width:125px" %)U|(% style="width:385px" %)Day number of week (1 = Monday, ..., 7 = Sunday)|(% style="width:180px" %)Number|(% style="width:157px" %)1 336 +|(% style="width:125px" %)HH|(% style="width:385px" %)Hour in day (0-23)|(% style="width:180px" %)Number|(% style="width:157px" %)0 337 +|(% style="width:125px" %)kk|(% style="width:385px" %)Hour in day (1-24)|(% style="width:180px" %)Number|(% style="width:157px" %)24 338 +|(% style="width:125px" %)KK|(% style="width:385px" %)Hour in am/pm (0-11)|(% style="width:180px" %)Number|(% style="width:157px" %)0 339 +|(% style="width:125px" %)hh|(% style="width:385px" %)Hour in am/pm (1-12)|(% style="width:180px" %)Number|(% style="width:157px" %)12 340 +|(% style="width:125px" %)mm|(% style="width:385px" %)Minute in hour|(% style="width:180px" %)Number|(% style="width:157px" %)30 341 +|(% style="width:125px" %)ss|(% style="width:385px" %)Second in minute|(% style="width:180px" %)Number|(% style="width:157px" %)55 342 +|(% style="width:125px" %)S|(% style="width:385px" %)Millisecond|(% style="width:180px" %)Number|(% style="width:157px" %)978 343 +|(% style="width:125px" %)n|(% style="width:385px" %)((( 344 344 Number of periods, used after a SDMX 345 - 346 346 Frequency Identifier such as M, Q, D (month, quarter, day) 347 347 )))|(% style="width:180px" %)Number|(% style="width:157px" %)12 348 348 ... ... @@ -359,7 +359,7 @@ 359 359 360 360 === 13.7.2 Numerical based datetime === 361 361 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: 361 +Where the source datetime input is purely numerical, the mapping rules are defined by the **Base** as a valid [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] [[Time Period>>doc:sdmx:Glossary.Time period.WebHome]], and the **Period** which must take one of the following enumerated values: 363 363 364 364 * day 365 365 * second ... ... @@ -367,75 +367,63 @@ 367 367 * microsecond 368 368 * nanosecond 369 369 370 -|Numerical datetime systems|Base|Period 371 -|((( 369 +(% style="width:545.294px" %) 370 +|(% style="width:268px" %)Numerical datetime systems|(% style="width:121px" %)Base|(% style="width:153px" %)Period 371 +|(% style="width:268px" %)((( 372 372 Epoch Time (UNIX) 373 - 374 374 Milliseconds since 01 Jan 1970 375 -)))|1970|millisecond 376 -|((( 374 +)))|(% style="width:121px" %)1970|(% style="width:153px" %)millisecond 375 +|(% style="width:268px" %)((( 377 377 Windows System Time 378 - 379 379 Milliseconds since 01 Jan 1601 380 -)))|1601|millisecond 378 +)))|(% style="width:121px" %)1601|(% style="width:153px" %)millisecond 381 381 382 382 The example above illustrates numerical based datetime mapping rules for two commonly used time standards. 383 383 384 384 The model is illustrated below: 385 385 386 -[[image:175007 2341491-790.jpeg]]384 +[[image:1750074994887-415.png]] 387 387 388 -**Figure 26 showing the component map mapping the SOURCE_DATE Dimension to the** 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 ** 389 389 390 -=== =TIME_PERIODDimension with theadditionalinformation on the componentmapto describe the numericaldatetime system inuse====388 +=== 13.7.3 Mapping more complex time inputs === 391 391 392 - ===Mapping more complex time inputs===390 +[[VTL>>doc:sdmx:Glossary.Validation and transformation language.WebHome]] should be used for more complex time inputs that cannot be interpreted using the pattern based on numerical methods. 393 393 394 - VTLshouldbe used for more complex time inputsthatcannot beinterpretedusingthe pattern based on numericalmethods.392 +== 13.8 Using TIME_PERIOD in mapping rules == 395 395 396 - ==UsingTIME_PERIOD in mapping rules==394 +The source TIME_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 rules where the output is conditional on the [[time period>>doc:sdmx:Glossary.Time period.WebHome]] value. 397 397 398 -The sourceTIME_PERIOD Dimensioncan be usedin conjunctionwith otherinputDimensionstocreate discretemappingrules wheretheoutputis conditionalonthetimeperiod value.396 +The main use case is setting the value of Observation [[Attributes>>doc:sdmx:Glossary.Attribute.WebHome]] in the target [[dataset>>doc:sdmx:Glossary.Data set.WebHome]]. 399 399 400 -The main use case is setting the value of Observation Attributes in the target dataset. 401 - 402 -|Rule|Source|Target 403 -|1|((( 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" %)((( 404 404 If 405 - 406 406 INDICATOR=XULADS; and TIME_PERIOD=2007. 407 -)))|((( 408 -Set 409 - 410 -OBS_CONF=F 403 +)))|(% style="width:198px" %)((( 404 +Set OBS_CONF=F 411 411 ))) 412 -|2|((( 406 +|(% style="width:103px" %)2|(% style="width:405px" %)((( 413 413 If 414 - 415 415 INDICATOR=XULADS; and TIME_PERIOD=2008. 416 -)))|Set OBS_CONF=F 417 -|3|((( 409 +)))|(% style="width:198px" %)Set OBS_CONF=F 410 +|(% style="width:103px" %)3|(% style="width:405px" %)((( 418 418 If 419 - 420 420 INDICATOR=XULADS; and TIME_PERIOD=2009. 421 -)))|((( 422 -Set 423 - 424 -OBS_CONF=F 413 +)))|(% style="width:198px" %)((( 414 +Set OBS_CONF=F 425 425 ))) 426 -|4|((( 416 +|(% style="width:103px" %)4|(% style="width:405px" %)((( 427 427 If 428 - 429 429 INDICATOR=XULADS; and TIME_PERIOD=2010. 430 -)))|((( 431 -Set 432 - 433 -OBS_CONF=**C** 419 +)))|(% style="width:198px" %)((( 420 +Set OBS_CONF=**C** 434 434 ))) 435 435 436 -In the example above, OBS_CONF is an Observation Attribute. 423 +In the example above, OBS_CONF is an Observation [[Attribute>>doc:sdmx:Glossary.Attribute.WebHome]]. 437 437 438 -== 13. Time span mapping rules using validity periods == 425 +== 13.9 Time span mapping rules using validity periods == 439 439 440 440 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. 441 441 ... ... @@ -443,25 +443,22 @@ 443 443 444 444 By specifying validity periods, the example from Section 13.8 can be re-written using two rules as follows: 445 445 446 -|Rule|Source|Target 447 -|1|((( 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" %)((( 448 448 If 449 - 450 450 INDICATOR=XULADS. 451 - 452 - 453 - Validity Period start period=2007 end period=2009454 -)))|Set OBS_CONF=F 455 -|2|((( 438 +Validity Period 439 +start period=2007 440 +end period=2009 441 +)))|(% style="width:223px" %)Set OBS_CONF=F 442 +|(% style="width:74px" %)2|(% style="width:215px" %)((( 456 456 If 457 - 458 458 INDICATOR=XULADS. 459 - 460 - 461 -Validity Period start period=2010 462 -)))|((( 445 +Validity Period 446 +start period=2010 447 +)))|(% style="width:223px" %)((( 463 463 Set 464 - 465 465 OBS_CONF=F 466 466 ))) 467 467 ... ... @@ -469,70 +469,61 @@ 469 469 470 470 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. 471 471 472 - ==13.Mapping examples==456 +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. 473 473 474 -== =13. Many to one mapping(N-1)===458 +== 13.10 Mapping examples == 475 475 476 -|Source|Map To 477 -|((( 478 -**FREQ**="A" 460 +=== 13.10.1 Many to one mapping (N3513 -1) === 479 479 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" 480 480 ADJUSTMENT="N" 481 - 482 482 **REF_AREA**="PL" 483 - 484 484 **COUNTERPART_AREA**="W0" 485 - 486 486 REF_SECTOR="S1" 487 - 488 488 COUNTERPART_SECTOR="S1" 489 - 490 490 ACCOUNTING_ENTRY="B" 491 - 492 492 STO="B5G" 493 -)))|((( 494 -FREQ="A" 495 - 473 +)))|(% style="width:265px" %)((( 474 +(% style="color:#8e44ad" %)FREQ="A" 496 496 REF_AREA="PL" 497 - 498 498 COUNTERPART_AREA="W0" 499 -INDICATOR="IND_ABC" 477 +INDICATOR="IND_ABC"(%%) 500 500 501 501 ))) 502 502 503 -The bold Dimensions map from source to target verbatim. The mapping simply specifies: 481 +The bold [[Dimensions>>doc:sdmx:Glossary.Dimension.WebHome]] (% style="color:#e74c3c" %)map(%%) from source to target verbatim. The mapping simply specifies: 504 504 505 -FREQ => FREQ 483 +> FREQ => FREQ 484 +> REF_AREA=> REF_AREA 485 +> COUNTERPART_AREA=> COUNTERPART _AREA 506 506 507 -R EF_AREA=>REF_AREA487 +No [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Mapping is required. The source value simply copies across unmodified. 508 508 509 - COUNTERPART_AREA=>COUNTERPART_AREA489 +The 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: 510 510 511 -N oRepresentationMapping is required. The source value simply copies across unmodified.491 +> N:S1:S1:B:B5G => IND_ABC 512 512 513 - TheremainingDimensions allmap to theIndicatorDimension. Thisis an exampleofmanyDimensionsmappingto one Dimension. In thiscaseaRepresentationMappingisrequired,andthemappingfirstdescribestheinput'partial key'andhow this mapstothetargetindicator:493 +Where the key sequence is based on the order specified in the (% style="color:#e74c3c" %)mapping(%%) (i.e [[ADJUSTMENT>>doc:sdmx:Glossary.Adjustment.WebHome]], REF_SECTOR, etc will result in the first value N being taken from [[ADJUSTMENT>>doc:sdmx:Glossary.Adjustment.WebHome]] as this was the first item in the source [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] list. 514 514 515 -N: S1:S1:B:B5G =>IND_ABC495 +**Note**: The key order is NOT based on the [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] order of the [[DSD>>doc:sdmx:Glossary.Data structure definition.WebHome]], as the (% style="color:#e74c3c" %)mapping(%%) needs to be resilient to the [[DSD>>doc:sdmx:Glossary.Data structure definition.WebHome]] changing. 516 516 517 - Wherethekey sequence is based on the order specified in the mapping(i.e ADJUSTMENT, REF_SECTOR, etc will result in thefirstvalue N beingtakenfrom ADJUSTMENT asthis was thefirstitemin the sourceDimensionlist.497 +=== 13.10.2 Mapping other data types to Code Id === 518 518 519 - **Note**:ThekeyorderisNOTbased on the Dimensionorder of theDSD,as themappingneeds to be resilienttotheDSDchanging.499 +In the case where the incoming data type is not a string and not a [[code>>doc:sdmx:Glossary.Code.WebHome]] identifier i.e. the source [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] 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. 520 520 521 -1. 522 -11. 523 -111. Mapping other data types to Code Id 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]]. 524 524 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. 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 526 526 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 - 536 536 If this mapping takes advantage of regular expressions it can be expressed in two rules: 537 537 538 538
- 1750074994887-415.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.4 KB - Content