Changes for page 12 Validation and Transformation Language (VTL)
Last modified by Artur on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -116,7 +116,7 @@ 116 116 117 117 by omitting all the non-essential parts would become simply: 118 118 119 -> DFR : = DF1 + DF2 119 +> DFR : = DF1 + DF2 120 120 121 121 The references to the Codelists can be simplified similarly. For example, given the non-abbreviated reference to the Codelist AG:CL_FREQ(1.0.0), which is{{footnote}}Single quotes are needed because this reference is not a VTL regular name. 19 Single quotes are not needed in this case because CL_FREQ is a VTL regular name.{{/footnote}}: 122 122 ... ... @@ -458,20 +458,26 @@ 458 458 459 459 As said, it is assumed that these VTL derived Data Sets have the TIME_PERIOD as the only identifier. In the mapping from VTL to SMDX, the Dimensions INDICATOR and COUNTRY are added to the VTL data structure on order to obtain the SDMX one, with the following values respectively: 460 460 461 -> VTL dataset INDICATOR value COUNTRY value 461 +> VTL dataset INDICATOR value COUNTRY value 462 462 > 463 -> ‘DF2(1.0.0)/GDPPERCAPITA.USA’ GDPPERCAPITA USA 463 +> ‘DF2(1.0.0)/GDPPERCAPITA.USA’ GDPPERCAPITA USA 464 464 > ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ GDPPERCAPITA CANADA … … … 465 465 > 466 -> ‘DF2(1.0.0)/POPGROWTH.USA’ POPGROWTH USA 467 -> ‘DF2(1.0.0)/POPGROWTH.CANADA’ POPGROWTH CANADA 466 +> ‘DF2(1.0.0)/POPGROWTH.USA’ POPGROWTH USA 467 +> ‘DF2(1.0.0)/POPGROWTH.CANADA’ POPGROWTH CANADA 468 468 > … … … 469 469 470 470 It should be noted that the application of this many-to-one mapping from VTL to SDMX is equivalent to an appropriate sequence of VTL Transformations. These use the VTL operator “calc” to add the proper VTL identifiers (in the example, INDICATOR and COUNTRY) and to assign to them the proper values and the operator “union” in order to obtain the final VTL dataset (in the example DF2(1.0.0)), that can be mapped oneto-one to the homonymous SDMX Dataflow. Following the same example, these VTL Transformations would be: 471 471 472 -> DF2bis_GDPPERCAPITA_USA := ‘DF2(1.0.0)/GDPPERCAPITA.USA’ [calc identifier INDICATOR := ”GDPPERCAPITA”, identifier COUNTRY := ”USA”]; DF2bis_GDPPERCAPITA_CANADA := ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ [calc identifier INDICATOR:=”GDPPERCAPITA”, identifier COUNTRY:=”CANADA”];… … … DF2bis_POPGROWTH_USA := ‘DF2(1.0.0)/POPGROWTH.USA’ [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”USA”]; DF2bis_POPGROWTH_CANADA’ := ‘DF2(1.0.0)/POPGROWTH.CANADA’ [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”CANADA”];… … … DF2(1.0) <- UNION (DF2bis_GDPPERCAPITA_USA’, DF2bis_GDPPERCAPITA_CANADA’, 472 +> DF2bis_GDPPERCAPITA_USA := ‘DF2(1.0.0)/GDPPERCAPITA.USA’ [calc identifier INDICATOR := ”GDPPERCAPITA”, identifier COUNTRY := ”USA”]; 473 +> DF2bis_GDPPERCAPITA_CANADA := ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ [calc identifier INDICATOR:=”GDPPERCAPITA”, identifier COUNTRY:=”CANADA”]; … … … 474 +> DF2bis_POPGROWTH_USA := ‘DF2(1.0.0)/POPGROWTH.USA’ [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”USA”]; 475 +> DF2bis_POPGROWTH_CANADA’ := ‘DF2(1.0.0)/POPGROWTH.CANADA’ [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”CANADA”]; … … … 476 +> DF2(1.0) <- UNION (DF2bis_GDPPERCAPITA_USA’, 477 +> DF2bis_GDPPERCAPITA_CANADA’, 473 473 > … , 474 -> DF2bis_POPGROWTH_USA’, DF2bis_POPGROWTH_CANADA’ 479 +> DF2bis_POPGROWTH_USA’, 480 +> DF2bis_POPGROWTH_CANADA’ 475 475 > …); 476 476 477 477 In other words, starting from the datasets explicitly calculated through VTL (in the example ‘DF2(1.0)/GDPPERCAPITA.USA’ and so on), the first step consists in calculating other (non-persistent) VTL datasets (in the example DF2bis_GDPPERCAPITA_USA and so on) by adding the identifiers INDICATOR and COUNTRY with the desired values (//INDICATORvalue// and //COUNTRYvalue)//. Finally, all these non-persistent Data Sets are united and give the final result DF2(1.0){{footnote}}The result is persistent in this example but it can be also non persistent if needed.{{/footnote}}, which can be mapped one-to-one to the homonymous SDMX Dataflow having the dimension components TIME_PERIOD, INDICATOR and COUNTRY. ... ... @@ -650,7 +650,7 @@ 650 650 GregorianTimePeriod 651 651 (superset of GregorianYear, GregorianYearMonth, and GregorianDay) 652 652 )))|(% style="width:221px" %)date 653 -|(% style="width:360px" %)GregorianYear (YYYY)|(% style="width:221px" %)date 659 +|(% style="width:360px" %)GregorianYear (YYYY)|(% style="width:221px" %)date 654 654 |(% style="width:360px" %)GregorianYearMonth / GregorianMonth (YYYY-MM)|(% style="width:221px" %)date 655 655 |(% style="width:360px" %)GregorianDay (YYYY-MM-DD)|(% style="width:221px" %)date 656 656 |(% style="width:360px" %)(((