Changes for page 13 Structure Mapping

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

From version 4.10
edited by Helena
on 2025/06/16 14:54
Change comment: There is no comment for this version
To version 10.1
edited by Artur
on 2025/07/14 10:19
Change comment: Imported from XAR

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.helena
1 +xwiki:XWiki.arturkryazhev
Content
... ... @@ -8,7 +8,7 @@
8 8  
9 9  Structure mapping does not alter the [[observation values>>doc:sdmx:Glossary.Observation value.WebHome]] and is not intended to perform any aggregations or calculations.
10 10  
11 -An input series (% style="color:#e74c3c" %)maps(%%) to:
11 +An input series maps to:
12 12  
13 13  1. Exactly one output series; or
14 14  1. Multiple output series with different [[Series Keys>>doc:sdmx:Glossary.Series key.WebHome]], but the same [[observation values>>doc:sdmx:Glossary.Observation value.WebHome]]; or
... ... @@ -18,7 +18,7 @@
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>>doc:sdmx:Glossary.Data set.WebHome]]{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}} to multi-dimensional; and
21 +* Transforming unidimensional [[datasets>>doc:sdmx:Glossary.Data set.WebHome]]{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}}^^{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}}^^ to multi-dimensional; and
22 22  * Transforming internal [[datasets>>doc:sdmx:Glossary.Data set.WebHome]] with a complex structure to a simpler structure with fewer [[dimensions>>doc:sdmx:Glossary.Dimension.WebHome]] suitable for dissemination.
23 23  
24 24  == 13.2 1-1 structure maps ==
... ... @@ -25,7 +25,7 @@
25 25  
26 26  1-1 (pronounced 'one to one') mappings support the simple use case where the value of a [[Component>>doc:sdmx: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>>doc:sdmx:Glossary.Code.WebHome]] are (% style="color:#e74c3c" %)mapped(%%) to their ISO 3character equivalent.
28 +In the example below, ISO 2-character country [[codes>>doc:sdmx:Glossary.Code.WebHome]] are mapped to their ISO 3character equivalent.
29 29  
30 30  (% style="width:585.294px" %)
31 31  |(% style="width:173px" %)**Country**|(% style="width:180px" %)**Alpha-2 code**|(% style="width:229px" %)**Alpha-3 code**
... ... @@ -36,7 +36,7 @@
36 36  |(% style="width:173px" %)Andorra|(% style="width:180px" %)AD|(% style="width:229px" %)AND
37 37  |(% style="width:173px" %)etc…|(% style="width:180px" %) |(% style="width:229px" %)
38 38  
39 -Different source values can also (% style="color:#e74c3c" %)map(%%) to the same target value, for example when deriving regions from country [[codes>>doc:sdmx:Glossary.Code.WebHome]].
39 +Different source values can also map to the same target value, for example when deriving regions from country [[codes>>doc:sdmx:Glossary.Code.WebHome]].
40 40  
41 41  (% style="width:490.294px" %)
42 42  |(% style="width:260px" %)Source Component: REF_AREA|(% style="width:227px" %)Target Component: REGION
... ... @@ -48,7 +48,7 @@
48 48  
49 49  == 13.3 N-n structure maps ==
50 50  
51 -N-n (pronounced 'N to N') mappings describe rules where a specified combination of values in multiple source [[Components>>doc:sdmx:Glossary.Component.WebHome]] (% style="color:#e74c3c" %)map(%%) to specified values in one or more target [[Components>>doc:sdmx:Glossary.Component.WebHome]]. For example, when mapping a partial [[Series Key>>doc:sdmx:Glossary.Series key.WebHome]] from a highly multidimensional cube (like Balance of Payments) to a single 'Indicator' [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] in a target Data Structure.
51 +N-n (pronounced 'N to N') mappings describe rules where a specified combination of values in multiple source [[Components>>doc:sdmx:Glossary.Component.WebHome]] map to specified values in one or more target [[Components>>doc:sdmx:Glossary.Component.WebHome]]. For example, when mapping a partial [[Series Key>>doc:sdmx:Glossary.Series key.WebHome]] from a highly multidimensional cube (like Balance of Payments) to a single 'Indicator' [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] in a target Data Structure.
52 52  
53 53  Example:
54 54  
... ... @@ -130,15 +130,15 @@
130 130  
131 131  == 13.5 Representation maps ==
132 132  
133 -[[Representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)Maps(%%) replace the [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] 2.1 Codelist (% style="color:#e74c3c" %)Maps(%%) and are used describe explicit mappings between source and target [[Component>>doc:sdmx:Glossary.Component.WebHome]] values.
133 +[[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Maps replace the [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] 2.1 Codelist Maps and are used describe explicit mappings between source and target [[Component>>doc:sdmx:Glossary.Component.WebHome]] values.
134 134  
135 -The source and target of a [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)Map(%%) can reference any of the following:
135 +The source and target of a [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Map can reference any of the following:
136 136  
137 137  1. Codelist
138 138  1. Free Text (restricted by type, e.g String, Integer, Boolean)
139 139  1. Valuelist
140 140  
141 -A [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)Map(%%) mapping ISO 2-character to ISO 3-character Codelists would take the following form:
141 +A [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Map mapping ISO 2-character to ISO 3-character Codelists would take the following form:
142 142  
143 143  (% style="width:356.294px" %)
144 144  |(% style="width:167px" %)CL_ISO_ALPHA2|(% style="width:186px" %)CL_ISO_ALPHA3
... ... @@ -149,7 +149,7 @@
149 149  |(% style="width:167px" %)AD|(% style="width:186px" %)AND
150 150  |(% style="width:167px" %)etc…|(% style="width:186px" %)
151 151  
152 -A [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)Map(%%) mapping free text country names to an ISO 2-character Codelist could be similarly described:
152 +A [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Map mapping free text country names to an ISO 2-character Codelist could be similarly described:
153 153  
154 154  (% style="width:364.294px" %)
155 155  |(% style="width:169px" %)Text|(% style="width:192px" %)CL_ISO_ALPHA2
... ... @@ -163,7 +163,7 @@
163 163  
164 164  Valuelists, introduced in [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] 3.0, are equivalent to Codelists but allow the maintenance of non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] identifiers. Importantly, their IDs do not need to conform to IDType, but as a consequence are not Identifiable.
165 165  
166 -When used in [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)Maps(%%), Valuelists allow Non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] identifiers containing characters like £, $, % to be (% style="color:#e74c3c" %)mapped(%%) to [[Code>>doc:sdmx:Glossary.Code.WebHome]] IDs, or [[Codes>>doc:sdmx:Glossary.Code.WebHome]] (% style="color:#e74c3c" %)mapped(%%) to non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] identifiers.
166 +When used in [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Maps, Valuelists allow Non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] identifiers containing characters like £, $, % to be mapped to [[Code>>doc:sdmx:Glossary.Code.WebHome]] IDs, or [[Codes>>doc:sdmx:Glossary.Code.WebHome]] mapped to non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] identifiers.
167 167  
168 168  In common with Codelists, each item in a Valuelist has a multilingual name giving it a human-readable label and an optional description. For example:
169 169  
... ... @@ -173,17 +173,17 @@
173 173  |(% style="width:126px" %)%|(% style="width:133px" %)En|(% style="width:173px" %)Percentage
174 174  |(% style="width:126px" %) |(% style="width:133px" %)fr|(% style="width:173px" %)Pourcentage
175 175  
176 -Other characteristics of [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] (% style="color:#e74c3c" %)Maps(%%):
176 +Other characteristics of [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Maps:
177 177  
178 -* Support the (% style="color:#e74c3c" %)mapping(%%) of multiple source [[Component>>doc:sdmx:Glossary.Component.WebHome]] values to multiple Target [[Component>>doc:sdmx:Glossary.Component.WebHome]] values as described in section 13.3 on n-to-n mappings; this covers also the case of (% style="color:#e74c3c" %)mapping(%%) an [[Attribute>>doc:sdmx:Glossary.Attribute.WebHome]] with an array [[representation>>doc:sdmx:Glossary.Representation.WebHome]] to (% style="color:#e74c3c" %)map(%%) combinations of values to a single target value;
179 -* Allow source or target mappings for an Item to be optional allowing rules such as 'A (% style="color:#e74c3c" %)maps(%%) to nothing' or 'nothing (% style="color:#e74c3c" %)maps(%%) to A'; and
180 -* Support for (% style="color:#e74c3c" %)mapping(%%) rules where regular expressions or substrings are used to match source [[Component>>doc:sdmx:Glossary.Component.WebHome]] values. Refer to section 13.6 for more on this topic.
178 +* Support the mapping of multiple source [[Component>>doc:sdmx:Glossary.Component.WebHome]] values to multiple Target [[Component>>doc:sdmx:Glossary.Component.WebHome]] values as described in section 13.3 on n-to-n mappings; this covers also the case of mapping an [[Attribute>>doc:sdmx:Glossary.Attribute.WebHome]] with an array [[representation>>doc:sdmx:Glossary.Representation.WebHome]] to map combinations of values to a single target value;
179 +* Allow source or target mappings for an Item to be optional allowing rules such as 'A maps to nothing' or 'nothing maps to A'; and
180 +* Support for mapping rules where regular expressions or substrings are used to match source [[Component>>doc:sdmx:Glossary.Component.WebHome]] values. Refer to section 13.6 for more on this topic.
181 181  
182 182  == 13.6 Regular expression and substring rules ==
183 183  
184 184  It is common for classifications to contain meanings within the identifier, for example the [[code>>doc:sdmx:Glossary.Code.WebHome]] Id 'XULADS' may refer to a particular seasonality because it starts with the letters XU.
185 185  
186 -With [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] 2.1 each [[code>>doc:sdmx:Glossary.Code.WebHome]] that starts with XU had to be individually (% style="color:#e74c3c" %)mapped(%%) to the same seasonality, and additional mappings added when new [[Codes>>doc:sdmx:Glossary.Code.WebHome]] were added to the Codelists. This led to many hundreds or thousands of mappings which can be more efficiently summarised in a single conceptual rule:
186 +With [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] 2.1 each [[code>>doc:sdmx:Glossary.Code.WebHome]] that starts with XU had to be individually mapped to the same seasonality, and additional mappings added when new [[Codes>>doc:sdmx:Glossary.Code.WebHome]] were added to the Codelists. This led to many hundreds or thousands of mappings which can be more efficiently summarised in a single conceptual rule:
187 187  
188 188  //If starts with 'XU' map to 'Y'//
189 189  
... ... @@ -225,7 +225,7 @@
225 225  
226 226  The input 'G' matches on the last rule which is used as a catch-all or default in this example.
227 227  
228 -=== 13. Substrings ===
228 +=== 13.6.2 Substrings ===
229 229  
230 230  Substrings provide an alternative to regular expressions where the required section of an input value can be described using the number of the starting character, and the length of the substring in characters. The first character is at position 1.
231 231  
... ... @@ -236,7 +236,7 @@
236 236  |(% style="width:169px" %)ABC_DEF_XYZ|(% style="width:147px" %)5|(% style="width:133px" %)3|(% style="width:171px" %)DEF
237 237  |(% style="width:169px" %)XULADS|(% style="width:147px" %)1|(% style="width:133px" %)2|(% style="width:171px" %)XU
238 238  
239 -Sub-strings can therefore be used for the conceptual rule //If starts with 'XU' (% style="color:#e74c3c" %)map(%%) to Y// as shown in the following example:
239 +Sub-strings can therefore be used for the conceptual rule //If starts with 'XU' map to Y// as shown in the following example:
240 240  
241 241  (% style="width:628.294px" %)
242 242  |(% style="width:163px" %)Start|(% style="width:158px" %)Length|(% style="width:128px" %)Source|(% style="width:176px" %)Target
... ... @@ -244,7 +244,7 @@
244 244  
245 245  == 13.7 Mapping non-SDMX time formats to SDMX formats ==
246 246  
247 -Structure mapping allows non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] compliant time values in source [[datasets>>doc:sdmx:Glossary.Data set.WebHome]] to be (% style="color:#e74c3c" %)mapped(%%) to an [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] compliant time format.
247 +Structure mapping allows non-[[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] compliant time values in source [[datasets>>doc:sdmx:Glossary.Data set.WebHome]] to be mapped to an [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] compliant time format.
248 248  
249 249  Two types of time input are defined:
250 250  
... ... @@ -272,13 +272,13 @@
272 272  There are two important points to note:
273 273  
274 274  1. The output frequency determines the output date format, but the default output can be redefined using a Frequency Format mapping to force explicit rules on how the output [[time period>>doc:sdmx:Glossary.Time period.WebHome]] is formatted.
275 -1. To support the use case of changing frequency the structure (% style="color:#e74c3c" %)map(%%) can optionally provide a start of year [[attribute>>doc:sdmx:Glossary.Attribute.WebHome]], which defines the year start date in MM-DD format. For example: YearStart=04-01.
275 +1. To support the use case of changing frequency the structure map can optionally provide a start of year [[attribute>>doc:sdmx:Glossary.Attribute.WebHome]], which defines the year start date in MM-DD format. For example: YearStart=04-01.
276 276  
277 277  === 13.7.1 Pattern based dates ===
278 278  
279 279  Date and [[time formats>>doc:sdmx:Glossary.Time format.WebHome]] are specified by date and time pattern strings based on Java's Simple Date Format. Within date and time pattern strings, unquoted letters from 'A' to 'Z' and from 'a' to 'z' are interpreted as pattern letters representing the [[components>>doc:sdmx:Glossary.Component.WebHome]] of a date or time string. Text can be quoted using single quotes (') to avoid interpretation. "''" represents a single quote. All other characters are not interpreted; they're simply copied into the output string during formatting or matched against the input string during parsing.
280 280  
281 -Due to the fact that dates may differ per locale, an optional property, defining the locale of the pattern, is provided. This would assist processing of source dates, according to the given locale{{footnote}} A list of commonly used locales can be found in the Java supported locales: https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html{{/footnote}}. An indicative list of examples is presented in the following table:
281 +Due to the fact that dates may differ per locale, an optional property, defining the locale of the pattern, is provided. This would assist processing of source dates, according to the given locale{{footnote}}A list of commonly used locales can be found in the Java supported locales: https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html{{/footnote}}^^{{footnote}}A list of commonly used locales can be found in the Java supported locales: https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html{{/footnote}}^^. An indicative list of examples is presented in the following table:
282 282  
283 283  (% style="width:604.294px" %)
284 284  |(% style="width:172px" %)English (en)|(% style="width:216px" %)Australia (AU)|(% style="width:213px" %)en-AU
... ... @@ -319,40 +319,39 @@
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:182px" %)Letter|(% style="width:327px" %)Date or Time Component|(% style="width:180px" %)Presentation|(% style="width:157px" %)Examples
323 -|(% style="width:182px" %)G|(% style="width:327px" %)Era designator|(% style="width:180px" %)Text|(% style="width:157px" %)AD
324 -|(% style="width:182px" %)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" %)96
325 -|(% style="width:182px" %)yyyy|(% style="width:327px" %)Year Full (upper case is Year of Week)|(% style="width:180px" %)Year|(% style="width:157px" %)1996
326 -|(% style="width:182px" %)MM|(% style="width:327px" %)Month number in year starting with 1|(% style="width:180px" %)Month|(% style="width:157px" %)07
327 -|(% style="width:182px" %)MMM|(% style="width:327px" %)Month name short|(% style="width:180px" %)Month|(% style="width:157px" %)Jul
328 -|(% style="width:182px" %)MMMM|(% style="width:327px" %)Month name full|(% style="width:180px" %)Month|(% style="width:157px" %)July
329 -|(% style="width:182px" %)ww|(% style="width:327px" %)Week in year|(% style="width:180px" %)Number|(% style="width:157px" %)27
330 -|(% style="width:182px" %)W|(% style="width:327px" %)Week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2
331 -|(% style="width:182px" %)DD|(% style="width:327px" %)Day in year|(% style="width:180px" %)Number|(% style="width:157px" %)189
332 -|(% style="width:182px" %)dd|(% style="width:327px" %)Day in month|(% style="width:180px" %)Number|(% style="width:157px" %)10
333 -|(% style="width:182px" %)F|(% style="width:327px" %)Day of week in month|(% style="width:180px" %)Number|(% style="width:157px" %)2
334 -|(% style="width:182px" %)E|(% style="width:327px" %)Day name in week|(% style="width:180px" %)Text|(% style="width:157px" %)Tuesday; Tue
335 -|(% style="width:182px" %)U|(% style="width:327px" %)Day number of week (1 = Monday, ..., 7 = Sunday)|(% style="width:180px" %)Number|(% style="width:157px" %)1
336 -|(% style="width:182px" %)HH|(% style="width:327px" %)Hour in day (0-23)|(% style="width:180px" %)Number|(% style="width:157px" %)0
337 -|(% style="width:182px" %)kk|(% style="width:327px" %)Hour in day (1-24)|(% style="width:180px" %)Number|(% style="width:157px" %)24
338 -|(% style="width:182px" %)KK|(% style="width:327px" %)Hour in am/pm (0-11)|(% style="width:180px" %)Number|(% style="width:157px" %)0
339 -|(% style="width:182px" %)hh|(% style="width:327px" %)Hour in am/pm (1-12)|(% style="width:180px" %)Number|(% style="width:157px" %)12
340 -|(% style="width:182px" %)mm|(% style="width:327px" %)Minute in hour|(% style="width:180px" %)Number|(% style="width:157px" %)30
341 -|(% style="width:182px" %)ss|(% style="width:327px" %)Second in minute|(% style="width:180px" %)Number|(% style="width:157px" %)55
342 -|(% style="width:182px" %)S|(% style="width:327px" %)Millisecond|(% style="width:180px" %)Number|(% style="width:157px" %)978
343 -|(% style="width:182px" %)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}}^^{{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  
349 349  The model is illustrated below:
350 350  
351 -[[image:1750074822764-573.png]]
350 +(% contenteditable="false" tabindex="-1" %)[[image:1750074822764-573.png]]
352 352  
353 353  **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?**
354 354  
355 -[[image:1750074865924-797.png]]
354 +(% contenteditable="false" tabindex="-1" %)[[image:1750074865924-797.png]]
356 356  
357 357  (% class="wikigeneratedid" id="HFigure25showinganinputdateformat2CwhoseoutputfrequencyisderivedfromtheoutputvalueoftheFREQDimension" %)
358 358  **Figure 25 showing an input date format, whose output frequency is derived from the output value of the FREQ Dimension**
... ... @@ -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:1750072341491-790.jpeg]]
384 +(% contenteditable="false" tabindex="-1" %)[[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_PERIOD Dimension with the additional information on the component map to describe the numerical datetime system in use ====
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 -VTL should be used for more complex time inputs that cannot be interpreted using the pattern based on numerical methods.
392 +== 13.8 Using TIME_PERIOD in mapping rules ==
395 395  
396 -== Using TIME_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 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.
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=2009
454 -)))|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,132 +469,121 @@
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]] 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 -REF_AREA=> REF_AREA
487 +No [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Mapping is required. The source value simply copies across unmodified.
508 508  
509 -COUNTERPART_AREA=> COUNTERPART _AREA
489 +The remaining [[Dimensions>>doc:sdmx:Glossary.Dimension.WebHome]] all 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 maps to the target indicator:
510 510  
511 -No Representation Mapping is required. The source value simply copies across unmodified.
491 +> N:S1:S1:B:B5G => IND_ABC
512 512  
513 -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:
493 +Where the key sequence is based on the order specified in the 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_ABC
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 mapping needs to be resilient to the [[DSD>>doc:sdmx:Glossary.Data structure definition.WebHome]] changing.
516 516  
517 -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.
497 +=== 13.10.2 Mapping other data types to Code Id ===
518 518  
519 -**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.
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]] mapping can be used to explicitly 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: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
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  
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
538 538  
539 -Regular Expression Desired Output
518 +=== 13.10.3 Observation Attributes for Time Period ===
540 540  
541 -|[0-2]|A
542 -|[3-4]|B
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.
543 543  
544 -=== 13. Observation Attributes for Time Period ===
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
545 545  
546 -This use case is where a specific observation for a specific time period has an attribute value.
528 +Or using a validity period on the [[Representation>>doc:sdmx:Glossary.Representation.WebHome]] Mapping:
547 547  
548 -|Input INDICATOR|Input TIME_PERIOD|Output OBS_CONF
549 -|XULADS|2008|C
550 -|XULADS|2009|C
551 -|XULADS|2010|C
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" %)С
552 552  
553 -Or using a validity period on the Representation Mapping:
534 +=== 13.10.4 Time mapping ===
554 554  
555 -Input INDICATOR Valid From/ Valid To Output OBS_CONF
536 +This use case is to create a [[time period>>doc:sdmx:Glossary.Time period.WebHome]] from an input that does not respect [[SDMX>>doc:sdmx:Glossary.Statistical data and metadata exchange.WebHome]] Time Formats.
556 556  
557 -XULADS 2008/2010 C
538 +The [[Component>>doc:sdmx:Glossary.Component.WebHome]] Mapping from SYS_TIME to TIME_PERIOD specifies itself as a time mapping with the following details:
558 558  
559 -=== 13. Time mapping ===
540 +(% style="width:652.294px" %)
541 +|(% style="width:139px" %)Source Value|(% style="width:165px" %)Source Mapping|(% style="width:182px" %)Target Frequency|(% style="width:163px" %)Output
542 +|(% style="width:139px" %)18/07/1981|(% style="width:165px" %)dd/MM/yyyy|(% style="width:182px" %)A|(% style="width:163px" %)1981
560 560  
561 -This use case is to create a time period from an input that does not respect SDMX Time Formats.
544 +When the target frequency is based on another target [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] value, in this example the value of the FREQ [[Dimension>>doc:sdmx:Glossary.Dimension.WebHome]] in the target [[DSD>>doc:sdmx:Glossary.Data structure definition.WebHome]].
562 562  
563 -The Component Mapping from SYS_TIME to TIME_PERIOD specifies itself as a time mapping with the following details:
546 +(% style="width:658.294px" %)
547 +|(% style="width:143px" %)Source Value|(% style="width:163px" %) Source Mapping|(% style="width:176px" %)Target Dimension|(% style="width:173px" %)Frequency Output
548 +|(% style="width:143px" %)18/07/1981|(% style="width:163px" %)dd/MM/yyyy|(% style="width:176px" %)FREQ|(% style="width:173px" %)1981-07-18 (when FREQ=D)
564 564  
565 -|Source Value|Source Mapping|Target Frequency|Output
566 -|18/07/1981|dd/MM/yyyy|A|1981
550 + When the source is a numerical format.
567 567  
568 -When the target frequency is based on another target Dimension value, in this example the value of the FREQ Dimension in the target DSD.
552 +(% style="width:658.294px" %)
553 +|(% style="width:143px" %)Source Value|(% style="width:163px" %) Start Period|(% style="width:176px" %)Interval|(% style="width:176px" %)Target FREQ|(% style="width:173px" %) Output
554 +|(% style="width:143px" %)1589808220|(% style="width:163px" %)1970|(% style="width:176px" %) millisecond|(% style="width:176px" %)M|(% style="width:173px" %)2020-05
569 569  
570 -Source Value Source Mapping Target Frequency Output
571 -
572 -Dimension
573 -
574 -|18/07/1981 dd/MM/yyyy FREQ| |1981-07-18 (when FREQ=D)
575 -| When the source is a numerical format| |
576 -|Source Value Start Period Interval|(((
577 -Target
578 -
579 -FREQ
580 -)))|Output
581 -|1589808220 1970 millisecond|M|2020-05
582 -
583 583  When the source frequency is lower than the target frequency additional information 3568 can be provided for resolve to start of period, end of period, or mid period, as shown 3569 in the following example:
584 584  
585 - Source Value Source Mapping Target Frequency Output
558 +(% style="width:666.294px" %)
559 +|(% style="width:131px" %) Source Value|(% style="width:143px" %)Source Mapping|(% style="width:149px" %)Target Dimension|(% style="width:114px" %)Frequency|(% style="width:126px" %)Output
560 +|(% style="width:131px" %)1981|(% style="width:143px" %)yyyy|(% style="width:149px" %)D – End of Period|(% style="width:114px" %) |(% style="width:126px" %)1981-12-31
586 586  
587 -Dimension
588 -
589 - 1981 yyyy D – End of Period 1981-12-31
590 -
591 -
592 592  When the start of year is April 1^^st^^ the Structure Map has YearStart=04-01:
593 593  
594 - Source Value Source Mapping Target Frequency Output
564 +(% style="width:666.294px" %)
565 +|(% style="width:131px" %) Source Value|(% style="width:143px" %)Source Mapping|(% style="width:149px" %)Target Dimension|(% style="width:114px" %)Frequency|(% style="width:126px" %)Output
566 +|(% style="width:131px" %)1981|(% style="width:143px" %)yyyy|(% style="width:149px" %)D – End of Period|(% style="width:114px" %) |(% style="width:126px" %)1982-03-31
595 595  
596 -Dimension
597 -
598 598  ----
599 599  
570 +(% contenteditable="false" tabindex="-1" %)
571 +(((
600 600  {{putFootnotes/}}
573 +)))
1750074994887-415.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.arturkryazhev
Size
... ... @@ -1,0 +1,1 @@
1 +12.4 KB
Content
SUZ.Methodology.Code.MethodologyClass[0]
SKMS.Methodology.Code.MethodologyClass[0]
Index
... ... @@ -1,0 +1,1 @@
1 +13