Changes for page 12 Validation and Transformation Language (VTL)
Last modified by Helena K. on 2026/06/10 10:09
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -368,23 +368,23 @@ 368 368 369 369 === 12.3.6 Mapping dataflow subsets to distinct VTL Data Sets === 370 370 371 -Until now it has been assumed to map one SMDX [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] to one [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] and vice-versa. This mapping one-to-one is not mandatory according to [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] because a [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] is meant to be a set of observations (data points) on a logical plane, having the same logical data structure and the same general meaning, independently of the possible physical [[representation>>doc:sdmx:Glossary 2\.1.Representation.WebHome]] or storage (see [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] 2.0 User Manual page 24), therefore a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] can be seen either as a unique set of data observations (corresponding to one [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]) or as the union of many sets of data observations (each one corresponding to a distinct [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]). 371 +Until now it has been assumed to (% style="color:#e74c3c" %)map(%%) one SMDX [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] to one [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] and vice-versa. This (% style="color:#e74c3c" %)mapping(%%) one-to-one is not mandatory according to [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] because a [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] is meant to be a set of observations (data points) on a logical plane, having the same logical data structure and the same general meaning, independently of the possible physical [[representation>>doc:sdmx:Glossary 2\.1.Representation.WebHome]] or storage (see [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] 2.0 User Manual page 24), therefore a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] can be seen either as a unique set of data observations (corresponding to one [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]) or as the union of many sets of data observations (each one corresponding to a distinct [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]). 372 372 373 373 As a matter of fact, in some cases it can be useful to define [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] operations involving definite parts of a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] instead than the whole.{{footnote}}A typical example of this kind is the validation, and more in general the manipulation, of individual time series belonging to the same Dataflow, identifiable through the DimensionComponents of the Dataflow except the TimeDimension. The coding of these kind of operations might be simplified by mapping distinct time series (i.e. different parts of a SDMX Dataflow) to distinct VTL Data Sets.{{/footnote}} 374 374 375 -Therefore, in order to make the coding of [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] operations simpler when applied on parts of [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflows>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]], it is allowed to map distinct parts of a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] to distinct [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Sets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] according to the following rules and conventions. This kind of mapping is possible both from [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] to [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] and from [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] to [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]], as better explained below.{{footnote}}Please note that this kind of mapping is only an option at disposal of the definer of VTL Transformations; in fact it remains always possible to manipulate the needed parts of SDMX Dataflows by means of VTL operators (e.g. “sub”, “filter”, “calc”, “union” …), maintaining a mapping one-to-one between SDMX Dataflows and VTL Data Sets.{{/footnote}} 375 +Therefore, in order to make the coding of [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] operations simpler when applied on parts of [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflows>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]], it is allowed to (% style="color:#e74c3c" %)map(%%) distinct parts of a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] to distinct [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Sets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] according to the following rules and conventions. This kind of (% style="color:#e74c3c" %)mapping(%%) is possible both from [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] to [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] and from [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] to [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]], as better explained below.{{footnote}}Please note that this kind of mapping is only an option at disposal of the definer of VTL Transformations; in fact it remains always possible to manipulate the needed parts of SDMX Dataflows by means of VTL operators (e.g. “sub”, “filter”, “calc”, “union” …), maintaining a mapping one-to-one between SDMX Dataflows and VTL Data Sets.{{/footnote}} 376 376 377 -Given a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] and some predefined [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] of its DataStructure, it is allowed to map the subsets of observations that have the same combination of values for such [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to correspondent [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[datasets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]. 377 +Given a [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] and some predefined [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] of its DataStructure, it is allowed to (% style="color:#e74c3c" %)map(%%) the subsets of observations that have the same combination of values for such [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] to correspondent [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[datasets>>doc:sdmx:Glossary 2\.1.Data set.WebHome]]. 378 378 379 -For example, assuming that the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] DF1(1.0.0) has the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]], TIME_PERIOD and COUNTRY, and that the user declares the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]] and COUNTRY as basis for the mapping (i.e. the mapping [[dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]): the observations that have the same values for [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]] and COUNTRY would be mapped to the same [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] (and vice-versa). In practice, this kind mapping is obtained like follows: 379 +For example, assuming that the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] DF1(1.0.0) has the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]], TIME_PERIOD and COUNTRY, and that the user declares the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]] and COUNTRY as basis for the (% style="color:#e74c3c" %)mapping(%%) (i.e. the (% style="color:#e74c3c" %)mapping(%%) [[dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]]): the observations that have the same values for [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]] and COUNTRY would be (% style="color:#e74c3c" %)mapped(%%) to the same [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] (and vice-versa). In practice, this kind (% style="color:#e74c3c" %)mapping(%%) is obtained like follows: 380 380 381 -* For a given [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]], the user ([[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] definer) declares the DimensionComponents on which the mapping will be based, in a given order.{{footnote}}This definition is made through the ToVtlSubspace and ToVtlSpaceKey classes and/or the FromVtlSuperspace and FromVtlSpaceKey classes, depending on the direction of the mapping (“key” means “dimension”). The mapping of Dataflow subsets can be applied independently in the two directions, also according to different Dimensions. When no Dimension is declared for a given direction, it is assumed that the option of mapping different parts of a SDMX Dataflow to different VTL Data Sets is not used.{{/footnote}} Following the example above, imagine that the user declares the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]] and COUNTRY. 381 +* For a given [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]], the user ([[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] definer) declares the DimensionComponents on which the (% style="color:#e74c3c" %)mapping(%%) will be based, in a given order.{{footnote}}This definition is made through the ToVtlSubspace and ToVtlSpaceKey classes and/or the FromVtlSuperspace and FromVtlSpaceKey classes, depending on the direction of the mapping (“key” means “dimension”). The mapping of Dataflow subsets can be applied independently in the two directions, also according to different Dimensions. When no Dimension is declared for a given direction, it is assumed that the option of mapping different parts of a SDMX Dataflow to different VTL Data Sets is not used.{{/footnote}} Following the example above, imagine that the user declares the [[Dimensions>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] [[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]] and COUNTRY. 382 382 * The [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] is given a name using a special notation also called “ordered concatenation” and composed of the following parts: 383 383 ** The reference to the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] (expressed according to the rules described in the previous paragraphs, i.e. URN, abbreviated URN or another alias); for example DF(1.0.0); 384 384 ** a slash (“/”) as a separator;{{footnote}}As a consequence of this formalism, a slash in the name of the VTL Data Set assumes the specific meaning of separator between the name of the Dataflow and the values of some of its Dimensions.{{/footnote}} 385 385 ** The reference to a specific part of the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] [[Dataflow>>doc:sdmx:Glossary 2\.1.Dataflow.WebHome]] above, expressed as the concatenation of the values that the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] DimensionComponents declared above must have, separated by dots (“.”) and written in the order in which these DimensionComponents are defined{{footnote}}This is the order in which the dimensions are defined in the ToVtlSpaceKey class or in the FromVtlSpaceKey class, depending on the direction of the mapping.{{/footnote}}. For example 386 386 387 -POPULATION.USA would mean that such a [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] is mapped to the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] observations for which the [[dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] //[[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]]// is equal to POPULATION and the [[dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] //COUNTRY// is equal to USA. 387 +POPULATION.USA would mean that such a [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] [[Data Set>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] is (% style="color:#e74c3c" %)mapped(%%) to the [[SDMX>>doc:sdmx:Glossary 2\.1.Statistical data and metadata exchange.WebHome]] observations for which the [[dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] //[[INDICATOR>>doc:sdmx:Glossary 2\.1.Statistical indicator.WebHome]]// is equal to POPULATION and the [[dimension>>doc:sdmx:Glossary 2\.1.Dimension.WebHome]] //COUNTRY// is equal to USA. 388 388 389 389 In the [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] Transformations, this kind of [[dataset>>doc:sdmx:Glossary 2\.1.Data set.WebHome]] name must be referenced between single quotes because the slash (“/”) is not a regular character according to the [[VTL>>doc:sdmx:Glossary 2\.1.Validation and transformation language.WebHome]] rules. 390 390