Changes for page 13 Structure Mapping
Last modified by Helena 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
-
... ... @@ -4,28 +4,28 @@ 4 4 5 5 == 13.1 Introduction == 6 6 7 -The purpose of SDMX structure mapping is to transform datasets from one dimensionality to another. In practice, this means that the input and output datasets conform to different Data Structure Definition. 7 +The purpose of [[SDMX>>doc:xwiki:Glossary.Statistical data and metadata exchange.WebHome]] structure mapping is to transform [[datasets>>doc:xwiki:Glossary.Data set.WebHome]] from one dimensionality to another. In practice, this means that the input and output [[datasets>>doc:xwiki:Glossary.Data set.WebHome]] conform to different Data Structure Definition. 8 8 9 -Structure mapping does not alter the observation values and is not intended to perform any aggregations or calculations. 9 +Structure mapping does not alter the [[observation values>>doc:xwiki:Glossary.Observation value.WebHome]] and is not intended to perform any aggregations or calculations. 10 10 11 -An input series maps to: 11 +An input series (% style="color:#2ecc71" %)maps(%%) to: 12 12 13 13 1. Exactly one output series; or 14 -1. Multiple output series with different Series Keys, but the same observation values; or 15 -1. Zero output series where no source rule matches the input Component values. 14 +1. Multiple output series with different [[Series Keys>>doc:xwiki:Glossary.Series key.WebHome]], but the same [[observation values>>doc:xwiki:Glossary.Observation value.WebHome]]; or 15 +1. Zero output series where no source rule matches the input [[Component>>doc:xwiki:Glossary.Component.WebHome]] values. 16 16 17 17 Typical use cases include: 18 18 19 19 * Transforming received data into a common internal structure; 20 20 * Transforming reported data into the data collector's preferred structure; 21 -* Transforming unidimensional datasets{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}} to multi-dimensional; and 22 -* Transforming internal datasets with a complex structure to a simpler structure with fewer dimensions suitable for dissemination. 21 +* Transforming unidimensional [[datasets>>doc:xwiki:Glossary.Data set.WebHome]]{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}} to multi-dimensional; and 22 +* Transforming internal [[datasets>>doc:xwiki:Glossary.Data set.WebHome]] with a complex structure to a simpler structure with fewer [[dimensions>>doc:xwiki:Glossary.Dimension.WebHome]] suitable for dissemination. 23 23 24 24 == 13.2 1-1 structure maps == 25 25 26 -1-1 (pronounced 'one to one') mappings support the simple use case where the value of a Component in the source structure is translated to a different value in the target, usually where different classification schemes are used for the same Concept. 26 +1-1 (pronounced 'one to one') mappings support the simple use case where the value of a [[Component>>doc:xwiki:Glossary.Component.WebHome]] in the source structure is translated to a different value in the target, usually where different classification schemes are used for the same Concept. 27 27 28 -In the example below, ISO 2-character country codes are mapped to their ISO 3character equivalent. 28 +In the example below, ISO 2-character country [[codes>>doc:xwiki:Glossary.Code.WebHome]] are (% style="color:#2ecc71" %)mapped(%%) to their ISO 3character equivalent. 29 29 30 30 (% style="width:666.294px" %) 31 31 |(% style="width:217px" %)**Country**|(% style="width:251px" %)**Alpha-2 code**|(% style="width:195px" %)**Alpha-3 code** ... ... @@ -39,7 +39,9 @@ 39 39 Different source values can also map to the same target value, for example when deriving regions from country codes. 40 40 41 41 (% style="width:674.294px" %) 42 -|(% style="width:284px" %)**Source Component: REF_AREA**|(% style="width:387px" %)**Target Component: REGION** 42 +|(% style="width:284px" %)**Source Component: 43 +REF_AREA**|(% style="width:387px" %)**Target Component: 44 +REGION** 43 43 |(% style="width:284px" %)FR|(% style="width:387px" %)EUR 44 44 |(% style="width:284px" %)DE|(% style="width:387px" %)EUR 45 45 |(% style="width:284px" %)IT|(% style="width:387px" %)EUR ... ... @@ -299,13 +299,9 @@ 299 299 Examples 300 300 301 301 22/06/1981 would be described as dd/MM/YYYY, with locale en-GB 302 - 303 303 2008-mars-12 would be described as YYYY-MMM-DD, with locale fr-FR 304 - 305 305 22 July 1981 would be described as dd MMMM YYYY, with locale en-US 306 - 307 307 22 Jul 1981 would be described as dd MMM YYYY 308 - 309 309 2010 D62 would be described as YYYYDnn (day 62 of the year 2010) 310 310 311 311 The following pattern letters are defined (all other characters from 'A' to 'Z' and from 'a' to 'z' are reserved): ... ... @@ -338,11 +338,13 @@ 338 338 339 339 [[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_295af259.jpg||height="265" width="477"]] 340 340 341 -==== Figure 24 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 time format ==== 339 +(% class="wikigeneratedid" id="HFigure24showingthecomponentmapmappingtheSOURCE_DATEDimensiontotheTIME_PERIODdimensionwiththeadditionalinformationonthecomponentmaptodescribethetimeformat" %) 340 +**Figure 24 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 time format** 342 342 343 343 [[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_a3215c79.jpg||height="265" width="480"]] 344 344 345 -==== Figure 25 showing an input date format, whose output frequency is derived from the output value of the FREQ Dimension ==== 344 +(% class="wikigeneratedid" id="HFigure25showinganinputdateformat2CwhoseoutputfrequencyisderivedfromtheoutputvalueoftheFREQDimension" %) 345 +**Figure 25 showing an input date format, whose output frequency is derived from the output value of the FREQ Dimension** 346 346 347 347 === 13.7.2 Numerical based datetime === 348 348 ... ... @@ -354,17 +354,16 @@ 354 354 * microsecond 355 355 * nanosecond 356 356 357 -|Numerical datetime systems|Base|Period 358 -|((( 357 +(% style="width:573.294px" %) 358 +|(% style="width:276px" %)**Numerical datetime systems**|(% style="width:117px" %)**Base**|(% style="width:177px" %)**Period** 359 +|(% style="width:276px" %)((( 359 359 Epoch Time (UNIX) 360 - 361 361 Milliseconds since 01 Jan 1970 362 -)))|1970|millisecond 363 -|((( 362 +)))|(% style="width:117px" %)1970|(% style="width:177px" %)millisecond 363 +|(% style="width:276px" %)((( 364 364 Windows System Time 365 - 366 366 Milliseconds since 01 Jan 1601 367 -)))|1601|millisecond 366 +)))|(% style="width:117px" %)1601|(% style="width:177px" %)millisecond 368 368 369 369 The example above illustrates numerical based datetime mapping rules for two commonly used time standards. 370 370 ... ... @@ -386,41 +386,34 @@ 386 386 387 387 The main use case is setting the value of Observation Attributes in the target dataset. 388 388 389 -|Rule|Source|Target 390 -|1|((( 388 +(% style="width:786.294px" %) 389 +|(% style="width:92px" %)**Rule**|(% style="width:377px" %)**Source**|(% style="width:315px" %)**Target** 390 +|(% style="width:92px" %)1|(% style="width:377px" %)((( 391 391 If 392 - 393 393 INDICATOR=XULADS; and TIME_PERIOD=2007. 394 -)))|((( 393 +)))|(% style="width:315px" %)((( 395 395 Set 396 - 397 397 OBS_CONF=F 398 398 ))) 399 -|2|((( 397 +|(% style="width:92px" %)2|(% style="width:377px" %)((( 400 400 If 401 - 402 402 INDICATOR=XULADS; and TIME_PERIOD=2008. 403 -)))|((( 400 +)))|(% style="width:315px" %)((( 404 404 Set 405 - 406 406 OBS_CONF=F 407 407 ))) 408 -|3|((( 404 +|(% style="width:92px" %)3|(% style="width:377px" %)((( 409 409 If 410 - 411 411 INDICATOR=XULADS; and TIME_PERIOD=2009. 412 -)))|((( 407 +)))|(% style="width:315px" %)((( 413 413 Set 414 - 415 415 OBS_CONF=F 416 416 ))) 417 -|4|((( 411 +|(% style="width:92px" %)4|(% style="width:377px" %)((( 418 418 If 419 - 420 420 INDICATOR=XULADS; and TIME_PERIOD=2010. 421 -)))|((( 414 +)))|(% style="width:315px" %)((( 422 422 Set 423 - 424 424 OBS_CONF=**C** 425 425 ))) 426 426 ... ... @@ -434,28 +434,23 @@ 434 434 435 435 By specifying validity periods, the example from Section 13.8 can be re-written using two rules as follows: 436 436 437 -|Rule|Source|Target 438 -|1|((( 429 +(% style="width:808.294px" %) 430 +|(% style="width:93px" %)**Rule**|(% style="width:385px" %)**Source**|(% style="width:328px" %)**Target** 431 +|(% style="width:93px" %)1|(% style="width:385px" %)((( 439 439 If 440 - 441 441 INDICATOR=XULADS. 442 - 443 443 Validity Period start period=2007 end period=2009 444 -)))|((( 435 +)))|(% style="width:328px" %)((( 445 445 Set 446 - 447 447 OBS_CONF=F 448 448 ))) 449 -|2|((( 439 +|(% style="width:93px" %)2|(% style="width:385px" %)((( 450 450 If 451 - 452 452 INDICATOR=XULADS. 453 - 454 454 Validity Period start period=2010 455 -)))|((( 443 +)))|(% style="width:328px" %)((( 456 456 Set 457 - 458 -OBS_CONF=F** ** 445 +OBS_CONF=F 459 459 ))) 460 460 461 461 In Rule 1, start period resolves to the start of the 2007 period (2007-01-01T00:00:00), and the end period resolves to the very end of 2009 (2009-12-31T23:59:59). The rule will hold true regardless of the input data frequency. Any observations reporting data for the Indicator XULADS that fall into that time range will have an OBS_CONF value of F. ... ... @@ -466,37 +466,12 @@ 466 466 467 467 === 13.10.1 Many to one mapping (N-1) === 468 468 469 -|Source|Map To 470 -|((( 471 -**FREQ**="A" 456 +[[image:1747377208446-496.png]] 472 472 473 -ADJUSTMENT="N" 474 - 475 -**REF_AREA**="PL" 476 - 477 -**COUNTERPART_AREA**="W0" 478 - 479 -REF_SECTOR="S1" 480 - 481 -COUNTERPART_SECTOR="S1" ACCOUNTING_ENTRY="B" 482 - 483 -STO="B5G" 484 -)))|((( 485 -FREQ="A" 486 - 487 -REF_AREA="PL" 488 - 489 -COUNTERPART_AREA="W0" 490 - 491 -INDICATOR="IND_ABC" 492 -))) 493 - 494 494 The bold Dimensions map from source to target verbatim. The mapping simply specifies: 495 495 496 496 FREQ => FREQ 497 - 498 498 REF_AREA=> REF_AREA 499 - 500 500 COUNTERPART_AREA=> COUNTERPART _AREA 501 501 502 502 No Representation Mapping is required. The source value simply copies across unmodified. ... ... @@ -515,49 +515,45 @@ 515 515 516 516 The following representation mapping can be used to explicitly map each age to an output code. 517 517 518 -: 519 - 520 520 ((( 521 -|Source Input Free Text|Desired Output Code Id 522 -|0|A 523 -|1|A 524 -|2|A 525 -|3|B 526 -|4|B 481 +(% style="width:669.294px" %) 482 +|(% style="width:218px" %)**Source Input Free Text**|(% style="width:448px" %)**Desired Output Code Id** 483 +|(% style="width:218px" %)0|(% style="width:448px" %)A 484 +|(% style="width:218px" %)1|(% style="width:448px" %)A 485 +|(% style="width:218px" %)2|(% style="width:448px" %)A 486 +|(% style="width:218px" %)3|(% style="width:448px" %)B 487 +|(% style="width:218px" %)4|(% style="width:448px" %)B 527 527 ))) 528 528 529 -If this mapping takes advantage of regular expressions it can be expressed in two 3464rules:490 +If this mapping takes advantage of regular expressions it can be expressed in two rules: 530 530 531 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_8c1afe2b.gif||alt="Shape10" height="1" width="302"]] 532 - 533 -__Regular Expression __Desired Output 534 - 535 -: 536 - 537 537 ((( 538 -|[0-2]|A 539 -|[3-4]|B 493 +(% style="width:675.294px" %) 494 +|(% style="width:219px" %)((( 495 +**Regular Expression** 496 +)))|(% style="width:453px" %)**Desired Output** 497 +|(% style="width:219px" %)[0-2]|(% style="width:453px" %)A 498 +|(% style="width:219px" %)[3-4]|(% style="width:453px" %)B 499 + 500 +(% style="color:inherit; font-family:inherit; font-size:max(21px, min(23px, 17.4444px + 0.462963vw))" %)13.10.3 Observation Attributes for Time Period 540 540 ))) 541 541 542 -=== 13.10.3 Observation Attributes for Time Period === 543 - 544 544 This use case is where a specific observation for a specific time period has an attribute 3468 value. 545 545 546 -: 547 - 548 548 ((( 549 -|Input INDICATOR|Input TIME_PERIOD|Output OBS_CONF 550 -|XULADS|2008|C 551 -|XULADS|2009|C 552 -|XULADS|2010|C 506 +(% style="width:689.294px" %) 507 +|(% style="width:220px" %)**Input INDICATOR**|(% style="width:223px" %)**Input TIME_PERIOD**|(% style="width:243px" %)**Output OBS_CONF** 508 +|(% style="width:220px" %)XULADS|(% style="width:223px" %)2008|(% style="width:243px" %)C 509 +|(% style="width:220px" %)XULADS|(% style="width:223px" %)2009|(% style="width:243px" %)C 510 +|(% style="width:220px" %)XULADS|(% style="width:223px" %)2010|(% style="width:243px" %)C 553 553 ))) 554 554 555 - __Or using a validity period on the Representation Mapping__:513 +Or using a validity period on the Representation Mapping: 556 556 557 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_6dbf7f.gif||alt="Shape11" height="36" width="555"]] Input INDICATOR Valid From/ Valid To Output OBS_CONF 515 +(% style="width:693.294px" %) 516 +|(% style="width:221px" %)**Input INDICATOR**|(% style="width:222px" %)**Valid From/ Valid To**|(% style="width:246px" %)**Output OBS_CONF** 517 +|(% style="width:221px" %)XULADS|(% style="width:222px" %)2008/2010|(% style="width:246px" %)C 558 558 559 -XULADS 2008/2010 C 560 - 561 561 === 13.10.4 Time mapping === 562 562 563 563 This use case is to create a time period from an input that does not respect SDMXTime Formats. ... ... @@ -564,51 +564,38 @@ 564 564 565 565 The Component Mapping from SYS_TIME to TIME_PERIOD specifies itself as a time mapping with the following details: 566 566 567 -: 568 - 569 569 ((( 570 -|Source Value|Source Mapping|Target Frequency|Output 571 -|18/07/1981|dd/MM/yyyy|A|1981 526 +(% style="width:763.294px" %) 527 +|(% style="width:163px" %)**Source Value**|(% style="width:219px" %)**Source Mapping**|(% style="width:198px" %)**Target Frequency**|(% style="width:180px" %)**Output** 528 +|(% style="width:163px" %)18/07/1981|(% style="width:219px" %)dd/MM/yyyy|(% style="width:198px" %)A|(% style="width:180px" %)1981 572 572 ))) 573 573 574 -When the target frequency is based on another target Dimension value, in this example __the value of the FREQ Dimension in the tar__get DSD.531 +When the target frequency is based on another target Dimension value, in this example the value of the FREQ Dimension in the target DSD. 575 575 576 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_dbe68698.gif||alt="Shape12" height="1" width="273"]] 577 - 578 -: 579 -:: 580 - 581 581 ((( 582 -|Source Value|Source Mapping|Target Frequency Output Dimension 534 +(% style="width:734.294px" %) 535 +|(% style="width:165px" %)**Source Value**|(% style="width:220px" %)**Source Mapping**|(% style="width:161px" %)**Target Frequency**|(% style="width:251px" %)**Output Dimension** 536 +|(% style="width:165px" %)18/07/1981|(% style="width:220px" %)dd/MM/yyyy|(% style="width:161px" %)FREQ|(% style="width:251px" %)1981-07-18 (when FREQ=D) 583 583 584 -|18/07/1981 dd/MM/yyyy|FREQ| |1981-07-18 (when FREQ=D) 585 -|(% rowspan="2" %)((( 586 -__When the source is a numerical form__at 538 +When the source is a numerical format 587 587 588 -Source Value Start Period Interv 589 -)))| | | 590 -|al|((( 591 -Target 540 +(% style="width:892.294px" %) 541 +|(% style="width:165px" %)**Source Value**|(% style="width:133px" %)**Start Period**|(% style="width:191px" %)**Interv**|(% style="width:264px" %)**Target FREQ**|(% style="width:167px" %)**Output** 542 +|(% style="width:165px" %)1589808220|(% style="width:133px" %)1970|(% style="width:191px" %)millisecond|(% style="width:264px" %)1981-07-18 (when FREQ=D)|(% style="width:167px" %)2020-05 592 592 593 -FREQ 594 -)))|Output 595 -|(% colspan="2" %)1589808220 1970 millisecond|M|2020-05 544 +When the source frequency is lower than the target frequency additional information 3485 can be provided for resolve to start of period, end of period, or mid period, as shown 3486 in the following example: 596 596 ))) 597 597 598 -When the source frequency is lower than the target frequency additional information 3485 can be provided for resolve to start of period, end of period, or mid period, as shown 3486 in the following example: 547 +(% style="width:892.294px" %) 548 +|(% style="width:165px" %)**Source Value**|(% style="width:133px" %)**Source Mapping**|(% style="width:191px" %)**Target Dimension**|(% style="width:264px" %)**Frequency**|(% style="width:167px" %)**Output** 549 +|(% style="width:165px" %)1981|(% style="width:133px" %)yyyy|(% style="width:191px" %)D – End of Period|(% style="width:264px" %) |(% style="width:167px" %)1981-12-31 599 599 600 -Source Value Source Mapping Target Frequency Output 601 - 602 -Dimension 603 - 604 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_4ec4bb31.gif||alt="Shape13" height="173" width="555"]] 1981 yyyy D – End of Period 1981-12-31 605 - 606 606 When the start of year is April 1^^st^^ the Structure Map has YearStart=04-01: 607 607 608 -Source Value Source Mapping Target Frequency Output 553 +(% style="width:892.294px" %) 554 +|(% style="width:165px" %)**Source Value**|(% style="width:133px" %)**Source Mapping**|(% style="width:191px" %)**Target Dimension**|(% style="width:264px" %)**Frequency**|(% style="width:167px" %)**Output** 555 +|(% style="width:165px" %)1981|(% style="width:133px" %)yyyy|(% style="width:191px" %)D – End of Period|(% style="width:264px" %) |(% style="width:167px" %)1982-03-31 609 609 610 - Dimension557 +---- 611 611 612 -1981 yyyy D – End of Period 1982-03-31 613 - 614 614 {{putFootnotes/}}
- 1747377208446-496.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +28.0 KB - Content