Changes for page 13 Structure Mapping

Last modified by Artur on 2025/09/10 11:19

From version 4.18
edited by Helena
on 2025/06/16 15:19
Change comment: There is no comment for this version
To version 4.12
edited by Helena
on 2025/06/16 14:56
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -381,48 +381,58 @@
381 381  
382 382  The model is illustrated below:
383 383  
384 -[[image:1750074994887-415.png]]
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 **
385 +**Figure 26 showing the component map mapping the SOURCE_DATE Dimension to the**
387 387  
388 -=== 13.7.3 Mapping more complex time inputs ===
387 +==== 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.Validation and transformation language.WebHome]] should be used for more complex time inputs that cannot be interpreted using the pattern based on numerical methods.
389 +=== Mapping more complex time inputs ===
391 391  
392 -== 13.8 Using TIME_PERIOD in mapping rules ==
391 +VTL should be used for more complex time inputs that cannot be interpreted using the pattern based on numerical methods.
393 393  
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.
393 +== Using TIME_PERIOD in mapping rules ==
395 395  
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]].
395 +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" %)(((
397 +The main use case is setting the value of Observation Attributes in the target dataset.
398 +
399 +|Rule|Source|Target
400 +|1|(((
401 401  If
402 +
402 402  INDICATOR=XULADS; and TIME_PERIOD=2007.
403 -)))|(% style="width:198px" %)(((
404 -Set OBS_CONF=F
404 +)))|(((
405 +Set
406 +
407 +OBS_CONF=F
405 405  )))
406 -|(% style="width:103px" %)2|(% style="width:405px" %)(((
409 +|2|(((
407 407  If
411 +
408 408  INDICATOR=XULADS; and TIME_PERIOD=2008.
409 -)))|(% style="width:198px" %)Set OBS_CONF=F
410 -|(% style="width:103px" %)3|(% style="width:405px" %)(((
413 +)))|Set OBS_CONF=F
414 +|3|(((
411 411  If
416 +
412 412  INDICATOR=XULADS; and TIME_PERIOD=2009.
413 -)))|(% style="width:198px" %)(((
414 -Set OBS_CONF=F
418 +)))|(((
419 +Set
420 +
421 +OBS_CONF=F
415 415  )))
416 -|(% style="width:103px" %)4|(% style="width:405px" %)(((
423 +|4|(((
417 417  If
425 +
418 418  INDICATOR=XULADS; and TIME_PERIOD=2010.
419 -)))|(% style="width:198px" %)(((
420 -Set OBS_CONF=**C**
427 +)))|(((
428 +Set
429 +
430 +OBS_CONF=**C**
421 421  )))
422 422  
423 -In the example above, OBS_CONF is an Observation [[Attribute>>doc:sdmx:Glossary.Attribute.WebHome]].
433 +In the example above, OBS_CONF is an Observation Attribute.
424 424  
425 -== 13.9 Time span mapping rules using validity periods ==
435 +== 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" %)(((
443 +|Rule|Source|Target
444 +|1|(((
436 436  If
446 +
437 437  INDICATOR=XULADS.
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" %)(((
448 +
449 +
450 +Validity Period start period=2007 end period=2009
451 +)))|Set OBS_CONF=F
452 +|2|(((
443 443  If
454 +
444 444  INDICATOR=XULADS.
445 -Validity Period
446 -start period=2010
447 -)))|(% style="width:223px" %)(((
456 +
457 +
458 +Validity Period start period=2010
459 +)))|(((
448 448  Set
461 +
449 449  OBS_CONF=F
450 450  )))
451 451  
... ... @@ -453,86 +453,95 @@
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 -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.
469 +== 13. Mapping examples ==
457 457  
458 -== 13.10 Mapping examples ==
471 +=== 13. Many to one mapping (N-1) ===
459 459  
460 -=== 13.10.1 Many to one mapping (N3513 -1) ===
473 +|Source|Map To
474 +|(((
475 +**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"
478 +
467 467  **REF_AREA**="PL"
480 +
468 468  **COUNTERPART_AREA**="W0"
482 +
469 469  REF_SECTOR="S1"
484 +
470 470  COUNTERPART_SECTOR="S1"
486 +
471 471  ACCOUNTING_ENTRY="B"
488 +
472 472  STO="B5G"
473 -)))|(% style="width:265px" %)(((
474 -(% style="color:#8e44ad" %)FREQ="A"
490 +)))|(((
491 +FREQ="A"
492 +
475 475  REF_AREA="PL"
494 +
476 476  COUNTERPART_AREA="W0"
477 -INDICATOR="IND_ABC"(%%)
496 +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:
500 +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
502 +FREQ => FREQ
486 486  
487 -No [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Mapping is required. The source value simply copies across unmodified.
504 +REF_AREA=> REF_AREA
488 488  
489 -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:
506 +COUNTERPART_AREA=> COUNTERPART _AREA
490 490  
491 -> N:S1:S1:B:B5G => IND_ABC
508 +No Representation Mapping is required. The source value simply copies across unmodified.
492 492  
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.
510 +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.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.
512 +N:S1:S1:B:B5G => IND_ABC
496 496  
497 -=== 13.10.2 Mapping other data types to Code Id ===
514 +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 -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.
516 +**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]].
518 +1.
519 +11.
520 +111. Mapping other data types to Code Id
502 502  
503 -(% style="width:402.294px" %)
504 -|(% style="width:197px" %)**Source Input Free Text**|(% style="width:204px" %)**Desired Output Code Id**
505 -|(% style="width:197px" %)0|(% style="width:204px" %)A
506 -|(% style="width:197px" %)1|(% style="width:204px" %)A
507 -|(% style="width:197px" %)2|(% style="width:204px" %)A
508 -|(% style="width:197px" %)3|(% style="width:204px" %)B
509 -|(% style="width:197px" %)4|(% style="width:204px" %)B
522 +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  
524 +The following representation mapping can be used to explicitly map each age to an output code.
525 +
526 +|Source Input Free Text|Desired Output Code Id
527 +|0|A
528 +|1|A
529 +|2|A
530 +|3|B
531 +|4|B
532 +
511 511  If this mapping takes advantage of regular expressions it can be expressed in two rules:
512 512  
513 -(% style="width:336.294px" %)
514 -|(% style="width:182px" %)**Regular Expression**|(% style="width:151px" %)**Desired Output**
515 -|(% style="width:182px" %)[0-2]|(% style="width:151px" %)A
516 -|(% style="width:182px" %)[3-4]|(% style="width:151px" %)B
517 517  
518 -=== 13.10.3 Observation Attributes for Time Period ===
536 +Regular Expression Desired Output
519 519  
520 -This use case is where a specific observation for a specific [[time period>>doc:sdmx:Glossary.Time period.WebHome]] has an [[attribute>>doc:sdmx:Glossary.Attribute.WebHome]] value.
538 +|[0-2]|A
539 +|[3-4]|B
521 521  
522 -(% style="width:621.294px" %)
523 -|(% style="width:201px" %)Input INDICATOR|(% style="width:192px" %)Input TIME_PERIOD|(% style="width:225px" %)Output OBS_CONF
524 -|(% style="width:201px" %)XULADS|(% style="width:192px" %)2008|(% style="width:225px" %)C
525 -|(% style="width:201px" %)XULADS|(% style="width:192px" %)2009|(% style="width:225px" %)C
526 -|(% style="width:201px" %)XULADS|(% style="width:192px" %)2010|(% style="width:225px" %)C
541 +=== 13. Observation Attributes for Time Period ===
527 527  
528 -Or using a validity period on the [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Mapping:
543 +This use case is where a specific observation for a specific time period has an attribute value.
529 529  
530 -(% style="width:629.294px" %)
531 -|(% style="width:202px" %)Input INDICATOR|(% style="width:197px" %)Valid From/ Valid To|(% style="width:227px" %) Output OBS_CONF
532 -|(% style="width:202px" %)XULADS|(% style="width:197px" %) 2008/2010|(% style="width:227px" %)С
545 +|Input INDICATOR|Input TIME_PERIOD|Output OBS_CONF
546 +|XULADS|2008|C
547 +|XULADS|2009|C
548 +|XULADS|2010|C
533 533  
534 -=== 13.10.4  Time mapping ===
550 +Or using a validity period on the Representation Mapping:
535 535  
552 +Input INDICATOR Valid From/ Valid To Output OBS_CONF
553 +
554 +XULADS 2008/2010 C
555 +
556 +=== 13. Time mapping ===
557 +
536 536  This use case is to create a time period from an input that does not respect SDMX Time Formats.
537 537  
538 538  The Component Mapping from SYS_TIME to TIME_PERIOD specifies itself as a time mapping with the following details:
1750074994887-415.png
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.helena
Size
... ... @@ -1,1 +1,0 @@
1 -12.4 KB
Content