Changes for page Guidelines for SDMX Data Structure Definitions
Last modified by Artur K. on 2026/05/29 14:28
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 21 added, 0 removed)
- 1768468989793-901.png
- 1768469016538-287.png
- 1768469652632-803.png
- 1768470533088-795.png
- 1768470575978-226.png
- 1768470596130-305.png
- 1768470611326-907.png
- 1768470626558-321.png
- 1768470646456-652.png
- 1768470678965-391.png
- 1768470705894-724.png
- 1768470729899-225.png
- 1768470752201-691.png
- 1768470775109-874.png
- 1768470796725-270.png
- 1768470829131-599.png
- 1768470860119-204.png
- 1768470878394-873.png
- 1768470896763-366.png
- 1768470911321-123.png
- 1768470939545-136.png
Details
- Page properties
-
- Content
-
... ... @@ -128,9 +128,9 @@ 128 128 129 129 === 2.3.4 Density and sparseness === 130 130 131 -The //density// of a DSD is closely related to its simplicity whereas //sparseness// often comes along with purity. For a dense DSD, a data flow provides data for all (or the large majority of) cells defined by the Cartesian product [[(%class="wikiinternallinkwikiinternallinkwikiinternallink"%)^^~[2~]^^>>path:#_ftn2]](%%)of the DSD dimensions. This is typically the case for simple DSDs. For pure DSDs with many dimensions, it is usually not feasible to share data 338 for the entire data space created by the combination of all dimensions.131 +The //density// of a DSD is closely related to its simplicity whereas //sparseness// often comes along with purity. For a dense DSD, a data flow provides data for all (or the large majority of) cells defined by the Cartesian product{{footnote}}A Cartesian product (or product set) is a mathematical construct that builds a new set out of a number of given sets. Each member of the Cartesian product corresponds to the selection of one element each in every one of the original sets.{{/footnote}} of the DSD dimensions. This is typically the case for simple DSDs. For pure DSDs with many dimensions, it is usually not feasible to share data 338 for the entire data space created by the combination of all dimensions. 132 132 133 -For example, a breakdown by “Institutional Sector” or “Gender” may only make sense for a subset of the “Indicators” provided. The sparseness may be measured in terms of the number of dimensions requiring a “not applicable” value or the number of observations that take at least one “not applicable” or “total” value (both as shares of the total number of dimension or the total number of observations, respectively) [[(%class="wikiinternallinkwikiinternallink wikiinternallink"%)^^~[3~]^^>>path:#_ftn3]](%%). An even more precise measure of sparseness is the proportion of theoretically possible key combinations that are irrelevant or not feasible or do not carry data.133 +For example, a breakdown by “Institutional Sector” or “Gender” may only make sense for a subset of the “Indicators” provided. The sparseness may be measured in terms of the number of dimensions requiring a “not applicable” value or the number of observations that take at least one “not applicable” or “total” value (both as shares of the total number of dimension or the total number of observations, respectively){{footnote}}In case a structure map is used to define reduced versions of the DSD, the number of unmapped dimensions is the equivalent measure of sparseness.{{/footnote}}. An even more precise measure of sparseness is the proportion of theoretically possible key combinations that are irrelevant or not feasible or do not carry data. 134 134 135 135 === 2.3.5 Unambiguousness === 136 136 ... ... @@ -138,6 +138,8 @@ 138 138 139 139 **Table 1. Unambiguousness example – dimensions** 140 140 141 +[[image:1768469016538-287.png]] 142 + 141 141 How would an observation of “Gross domestic product, volume, US dollars, reference year = 2005, millions” for the United States be represented with these dimensions? Table 2 provides three different possible representations (there may be even more). 142 142 143 143 **Table 2. Unambiguousness example – ambiguous representations** ... ... @@ -189,7 +189,7 @@ 189 189 190 190 The global BOP DSD that is currently being developed may serve as a more specific example for a multi-purpose DSD. It is supposed to support, amongst others, exchange of the ECB's Balance of Payments (BOP) and International Reserves Template (IRT) data, Eurostat's International Investment Position (IIP) and Trade in Services (TS) data, the OECD's BOP data, and the IMF's Coordinated Portfolio Investment (CPIS) and Coordinated Direct Investment (CDIS) data. 191 191 192 -Table 3 below shows some of the concepts considered relevant for some or all of these related data exchange exercises. [[(%class="wikiinternallinkwikiinternallinkwikiinternallink"%)^^~[4~]^^>>path:#_ftn4]](%%)Reporting Country and Unit of Measure are required by all data exchanges; the other concepts listed are only necessary (marked by an “X”) for a subset of the data exchanges. For instance, Eurostat's TS and IMF’s CDIS data do not require the distinction of flows and stocks, different maturities, or valuations (indicated by an “O”). Still, there is value in defining one master DSD that covers all concepts required for all of the data exchanges.194 +Table 3 below shows some of the concepts considered relevant for some or all of these related data exchange exercises.{{footnote}}Please note that the example is taken from the development status of the BOP DSD at the time of writing this document. The concepts and their relevance for certain data exchanges (represented as data flows or derived DSDs) may be different in the final version of the DSD.{{/footnote}} Reporting Country and Unit of Measure are required by all data exchanges; the other concepts listed are only necessary (marked by an “X”) for a subset of the data exchanges. For instance, Eurostat's TS and IMF’s CDIS data do not require the distinction of flows and stocks, different maturities, or valuations (indicated by an “O”). Still, there is value in defining one master DSD that covers all concepts required for all of the data exchanges. 193 193 194 194 If that approach is pursued, satellite DSDs for the individual purposes (or exchange exercises) can be created via constraints (and/or structure maps). Each exchange exercise may also be represented as a data flow (the constraints may also be defined in the data flow instead of the DSD). So there would be one data flow defined for each column in the table below. For instance, the IMF CPIS data flow would restrict “Flows and stocks indicator” and “Valuation” to certain values from the respective code lists. Data provision agreements may then be set up for each data flow with each reporting country. Constraints can be used to restrict the contribution of each country to its own data, so “Reporting country” would be set to the respective value. If the constraints are defined in the data flow and/or structure maps are used to exclude irrelevant dimensions, the satellite DSDs do not materialize; they are “virtual” DSDs. 195 195 ... ... @@ -243,50 +243,29 @@ 243 243 244 244 The range of options between the “//just one//”// //(mixed) and “//all component//” subject-matter dimensions approaches is subject to the comprehensiveness (i.e. size, coverage) of the data exchange that the DSD is being developed for. If using a “mixed dimensions” approach, rules for the composition of the mixed dimension(s) may be specified (e.g. concatenate concepts A, B, and C to get mixed dimension X), allowing their easy re-decomposition. In general composite dimensions should be avoided as previously recommended by the SDMX Technical Notes, but there are cases that suggest the usage of composite dimensions. Table 4 juxtaposes general pros and cons of the “//many pure concepts//” and “//fewer composite concepts//” approaches. 245 245 246 -|**Many pure concepts**|**Few composite concepts** 247 -|cleaner data structure|((( 248 -Mixed dimensions may be composed inconsistently making the decomposition into purer concepts and code lists difficult 249 - 250 -(requiring complex mapping etc.). Information that corresponds to the same concept may be included in different dimensions, e.g. reference year is contained in the indicator dimension in the first example but in the unit in the second example below. The optimal common data structure would consist of Economic Indicator, Unit, and Base period. 251 -))) 252 - 253 253 **Table 4. General comparison of data structuring approaches** 254 254 255 -|(% rowspan="3" %)((( 256 - 250 +|(% style="width:416px" %)**Many pure concepts**|(% style="width:1199px" %)**Few composite concepts** 251 +|(% style="width:416px" %)cleaner data structure|(% style="width:1199px" %)((( 252 +Mixed dimensions may be composed inconsistently making the decomposition into purer concepts and code lists difficult (requiring complex mapping etc.). Information that corresponds to the same concept may be included in different dimensions, e.g. reference year is contained in the indicator dimension in the first example but in the unit in the second example below. The optimal common data structure would consist of Economic Indicator, Unit, and Base period. 257 257 258 - 259 -)))|**Economic Indicator**|**Unit** 260 -|Industrial production (2000=100)|Index 261 -|GDP real|US Dollars at 2005 prices 254 +[[image:1768469652632-803.png||height="106" width="352"]] 255 +))) 256 +|(% style="width:416px" %)shorter and simpler code lists|(% style="width:1199px" %)code lists longer and more complex, may require hierarchy to be “readable” 257 +|(% style="width:416px" %)more flexible in terms of defining constraints, but constraints more complex|(% style="width:1199px" %)simpler constraints, but some constraints may be difficult to be represented because of mixed dimensions. Consider for instance a constraint “Base period = 1995” in the above example, where some observations include the base period in the Economic Indicator dimension, others in the Unit dimension. Instead of specifying a constraint on a pure Base Period dimension, the constraints may have to be specified at observation (or time series) level 258 +|(% style="width:416px" %)more flexible in terms of mapping to other data structures (used by other systems), further processing and analysis (e.g. tabulation, dissemination format), and future needs|(% style="width:1199px" %)“mixed” dimensions make data structure less flexible in these respects 259 +|(% style="width:416px" %)longer (i.e. more complex) observation keys|(% style="width:1199px" %)shorter keys 260 +|(% style="width:416px" %)special values of code lists such as “not applicable”, “total” may be rather heavily used|(% style="width:1199px" %)less usage of these special values 261 +|(% style="width:416px" %)creates sparse data if many observations use “not applicable”|(% style="width:1199px" %)way to avoid sparseness 262 +|(% style="width:416px" %)many constraints may be necessary due to sparseness|(% style="width:1199px" %)typically fewer constraints required because data are less sparse 263 +|(% style="width:416px" %)many dimensions are tantamount to many attachment levels for attributes (i.e. DSD more flexible in terms of attribute attachment)|(% style="width:1199px" %)less dimensions = less possible attribute attachment levels 264 +|(% style="width:416px" %)more difficult to handle by an end user|(% style="width:1199px" %)presumably more easily comprehensible and manageable by an end user 265 +|(% style="width:416px" %)more flexible in terms of defining queries; can be mapped to any “mixed” representation|(% style="width:1199px" %)less flexible in terms of search and retrieval 262 262 263 -shorter and simpler code lists code lists longer and more complex, may 264 - 265 -require hierarchy to be “readable” 266 - 267 - 268 -**Many pure concepts Few composite concepts** 269 - 270 -more flexible in terms of defining constraints, simpler constraints, but some constraints may 271 - 272 -but constraints more complex be difficult to be represented because of mixed 273 - 274 -dimensions. Consider for instance a constraint “Base period = 1995” in the above example, where some observations include the base period in the Economic Indicator dimension, others in the Unit dimension. Instead of specifying a constraint on a pure Base Period dimension, the constraints may have to be specified at observation (or time series) level 275 - 276 -|more flexible in terms of mapping to other data structures (used by other systems), further processing and analysis (e.g. tabulation, dissemination format), and future needs|“mixed” dimensions make data structure less flexible in these respects 277 -|longer (i.e. more complex) observation keys|shorter keys 278 -|special values of code lists such as “not applicable”, “total” may be rather heavily used|less usage of these special values 279 -|creates sparse data if many observations use “not applicable”|way to avoid sparseness 280 -|many constraints may be necessary due to sparseness|typically fewer constraints required because data are less sparse 281 -|many dimensions are tantamount to many attachment levels for attributes (i.e. DSD more flexible in terms of attribute attachment)|less dimensions = less possible attribute attachment levels 282 -|more difficult to handle by an end user|presumably more easily comprehensible and manageable by an end user 283 -|more flexible in terms of defining queries; can be mapped to any “mixed” representation|less flexible in terms of search and retrieval 284 - 285 - 286 - 287 287 The latter two aspects mentioned in the table could be summarized as the “many pure dimensions” approach being more difficult to handle for a “basic” user, but providing fewer options for an “advanced” user. When it comes to dissemination to end users, a purer data structure is the appropriate format for consumption by applications and advanced users. For less advanced user groups it makes sense to hide the (for them: unnecessary) complexity by means of concatenating dimensions, for instance to create a time series view. 288 288 289 -Comparing single-purpose and single-domain exchange scenarios with multi-domain and/or multi-purpose scenarios, pure concepts are typically easier to achieve in the former, whereas composite concepts/dimensions may make life easier in the latter, especially because certain cross-classification concepts may only apply to some domains and/or purposes covered. “Purpose” means either a certain data exchange exercise or data flow, for instance in the BOP DSD endeavor mentioned above each column represents one “purpose”, e.g. ECB IRT or OECD BOP. In multi-domain or –purpose scenarios, pure concepts are more easily obtained by a “many DSDs” approach, no matter if those are independent from each other or linked by a “master DSD”. Although it does not rule out the specification of pure concepts, a “one DSD” approach typically leads to using fewer, composite concepts (dimensions) in those scenarios. 269 +Comparing single-purpose and single-domain exchange scenarios with multi-domain and/or multi-purpose scenarios, pure concepts are typically easier to achieve in the former, whereas composite concepts/dimensions may make life easier in the latter, especially because certain cross-classification concepts may only apply to some domains and/or purposes covered. “Purpose” mean“mixed” dimensions make data structure less 270 +flexible in these respectsither a certain data exchange exercise or data flow, for instance in the BOP DSD endeavor mentioned above each column represents one “purpose”, e.g. ECB IRT or OECD BOP. In multi-domain or –purpose scenarios, pure concepts are more easily obtained by a “many DSDs” approach, no matter if those are independent from each other or linked by a “master DSD”. Although it does not rule out the specification of pure concepts, a “one DSD” approach typically leads to using fewer, composite concepts (dimensions) in those scenarios. 290 290 291 291 Table 5 provides an overview of the pros and cons of the “many pure concepts" and “fewer composite concepts” approaches in different data exchange settings with respect to the type of organizations involved. In any of these settings it is always possible to use one of the data structures that may already exist at one of the involved parties as DSD for the data exchange. The benefits and drawbacks discussed in the table assume that a new DSD is to be defined. A distinction between two different types of intended recipients is implicitly made. Inter-organizational data exchange is mostly machine-to-machine, whereas dissemination of data to end-users is often machine-to-user. 292 292 ... ... @@ -295,18 +295,13 @@ 295 295 |**Level of data exchange**|**Pure vs. composite concepts approach** 296 296 |**within an organization**|((( 297 297 Depends on diversity of systems involved in data exchange. 298 - 299 299 The approach that requires the least mapping (and similar processing) steps between the two communicating data structures is preferable in terms of a “quick win” solution. 300 - 301 301 In general, a more granular model is preferable due to its flexibility that helps support potential future needs (with respect to processing, analysis, exchange, dissemination, etc.). 302 - 303 303 However, an internal exchange should not be made more complex than necessary. If the structures of the communicating systems are comparable, it may not make sense to create an artificial intermediary structure that is more pure, but also more complex than both underlying structures. 304 - 305 305 Still, as a longer-term strategy it seems reasonable to define a set of internal “standard” code lists that all systems can map to. This allows bilateral communication via the shared concepts and code lists meaning that every data structure only has to be mapped once – to the internal standard – to be able to communicate with all other participating (i.e. mapped) systems. 306 306 ))) 307 307 |**between organizations at national level**|((( 308 308 The pros and cons at this level of exchange are comparable to those at the “within organization” level. If the data structures of the communicating systems are comparable, there is no need to introduce complexity by a conceptually optimal, pure data structure. However, if the data structures deviate to a greater extent (and they often do), they should both be decomposed to find a “common denominator”, a more granular “exchange vocabulary” which they can be mapped to. 309 - 310 310 If related international or national standards exist, they should be used, even though national labels and/or additional levels of detail may be required in the code lists. 311 311 ))) 312 312 |**between international organization and national organizations of member countries**|International organizations should collect data at a level of granularity and purity that is most suitable for the intended (and potential future) analyses. The tradeoff with the higher complexity of constraints required to check structural validity of collected data needs to be taken into account as well. Also it is recommended to consider the burden that a more complex data structure may put on national data providers. However, once a DSD is defined, its lifetime is expected to be a number of years. The main effort of the data provider is to specify the mapping from the production data structure to the DSD. Once this is done the data exchange can be automated and the complexity of the DSD does not matter that much. ... ... @@ -320,15 +320,14 @@ 320 320 321 321 **Table 6. Data structuring approaches by role in data exchange** 322 322 323 -|**Role in data exchange**|**Pure vs. composite concepts approach** 324 -|**Data provider**|((( 299 +|(% style="width:215px" %)**Role in data exchange**|(% style="width:1400px" %)**Pure vs. composite concepts approach** 300 +|(% style="width:215px" %)**Data provider**|(% style="width:1400px" %)((( 325 325 If the composition of the concepts in the data provider's production system largely differs from the one in the DSD, mapping it to a few composite concepts may be more complex than mapping it to many pure concepts. (Mapping to just one mixed concept is straightforward, though.) This is due to the need to decompose and recombine concepts in case of a “mixed concepts” DSD. If the data provider’s internal data structure is very granular or very similar to the DSD, it does not make a huge difference if the concepts in that DSD are pure or not. 326 - 327 327 For a “final” data provider disseminating data to the public, the flexibility offered by a pure data structure in terms of defining different output formats may be beneficial. 328 328 ))) 329 -|**Data collector**|Defining constraints for data validation is more complex for a highdimensional, pure DSD. But such a DSD provides more flexibility in terms of consumption and reuse, i.e. mapping to the data collector’s internal data model mapping easier. 330 -|**DSD maintenance**|Pure concepts usually have shorter, less complex code lists and are thus easier to maintain. In contrast, the maintenance of constraints, hierarchical code lists, and derived, composite concepts (e.g. for dissemination) requires more effort. 331 -|**End user (“the public”)**|Consumption and reuse are more flexible in a pure data structure, but it is more difficult to identify observation keys that actually have data because of the created sparseness. (Constraints may help in this respect.) Frequent occurrences of “non applicable” values may also make data usage cumbersome. 304 +|(% style="width:215px" %)**Data collector**|(% style="width:1400px" %)Defining constraints for data validation is more complex for a highdimensional, pure DSD. But such a DSD provides more flexibility in terms of consumption and reuse, i.e. mapping to the data collector’s internal data model mapping easier. 305 +|(% style="width:215px" %)**DSD maintenance**|(% style="width:1400px" %)Pure concepts usually have shorter, less complex code lists and are thus easier to maintain. In contrast, the maintenance of constraints, hierarchical code lists, and derived, composite concepts (e.g. for dissemination) requires more effort. 306 +|(% style="width:215px" %)**End user (“the public”)**|(% style="width:1400px" %)Consumption and reuse are more flexible in a pure data structure, but it is more difficult to identify observation keys that actually have data because of the created sparseness. (Constraints may help in this respect.) Frequent occurrences of “non applicable” values may also make data usage cumbersome. 332 332 333 333 == 4.2 Number and relations of DSDs == 334 334 ... ... @@ -350,38 +350,23 @@ 350 350 351 351 **Table 7. Data structuring approaches by level of data exchange** 352 352 353 -|**Level of data exchange**|**Data structuring approa one DSD**|(% colspan="2" %)((( 354 -**ch** 355 - 356 -**master + satellite DSDs** 357 -)))|**multiple, indep. DSDs** 328 +|(% colspan="1" rowspan="2" %)**Level of data exchange**|(% colspan="4" rowspan="1" %)**Data structuring approach** 329 +|**one DSD**|(% colspan="2" %)**master + satellite DSDs**|**multiple, indep. DSDs** 358 358 |**within organization**|((( 359 -best for single-domain, single-purpose can be created on the 360 - 361 -fly from structured databases 331 +best for single-domain, single-purpose can be created on the fly from structured databases 362 362 )))|(% colspan="2" %)use if harmonization is important in covered domains or purposes or if such a set of DSDs is already available at international level|easier to do than master + satellite approach each domain/purpose can maintain DSDs independently can be created on the fly from structured databases 363 363 |**between national organizations**|(% colspan="4" %)the same applies as to the “within organization” scenario 364 -|**Level of data exchange**|(% colspan="3" %)((( 365 -**Data structuring approach** 366 - 367 -**one DSD master + satellite DSDs** 368 -)))|**multiple, indep. DSDs** 369 369 |**between int. organization and national organizations**|(% colspan="2" %)best for single domain, single purpose scenarios that are usually rather restricted with very clear specification of what needs to be exchanged|preferable over multiDSD approach in case of multi-domain and/or multi-purpose scenarios with highly correlated data flows for maintenance reasons|((( 370 -for multi-domain and/or multipurpose scenarios; only recommended if overlap of domains/purposes is minor (e.g. just w.r.t. cross-domain concepts) 371 - 372 -equivalent to multiple “one DSD” solutions, one for each domain / purpose 335 +for multi-domain and/or multipurpose scenarios; only recommended if overlap of domains/purposes is minor (e.g. just w.r.t. cross-domain concepts) equivalent to multiple “one DSD” solutions, one for each domain / purpose 373 373 ))) 374 374 |**between international organizations**|(% colspan="3" %)comparable to “national to international” scenario| 375 375 |**dissemination to public**|(% colspan="2" %)for single-domain, single-purpose cases in more complex cases this may be the preferable approach for data discovery tools (one data structure to find and access all data)|(% colspan="2" %)((( 376 376 in multi-purpose or –domain scenarios: 377 377 378 -if it is relevant for the public to see the relationship between the data structures: use master + satellites approach 379 - 380 -otherwise the multi-DSD option is preferable, although with the highest possible degree of re-use of code lists and concepts 381 - 382 -in both cases: important to include only concepts, code lists, and codes actually available / used by the data 341 +* if it is relevant for the public to see the relationship between the data structures: use master + satellites approach 342 +* otherwise the multi-DSD option is preferable, although with the highest possible degree of re-use of code lists and concepts 343 +* in both cases: important to include only concepts, code lists, and codes actually available / used by the data 383 383 ))) 384 -| | | | | 385 385 386 386 In general, finding the “perfect” data structure is less important for bilateral data exchange. Independent, custom-tailored DSDs may do the job quite well, as harmonization and standardization are typically not of high importance. If the data exchange is just a part of a more comprehensive scenario (e.g. multi-purpose, multi-domain, gateway, or data-sharing scenarios), a master DSD with satellite DSDs is preferable. 387 387 ... ... @@ -389,24 +389,21 @@ 389 389 390 390 **Table 8. Data structuring approaches by role in data exchange** 391 391 392 -|**Role in data exchange**|**One DSD vs. master + satellite DSDs vs. multiple, indep. DSDs** 393 -|**Data provider**|It is easier to set up a data submission process against a single DSD (= less initial costs) than against multiple DSDs. 394 -|**Data collector**|((( 352 +|(% style="width:216px" %)**Role in data exchange**|(% style="width:1399px" %)**One DSD vs. master + satellite DSDs vs. multiple, indep. DSDs** 353 +|(% style="width:216px" %)**Data provider**|(% style="width:1399px" %)It is easier to set up a data submission process against a single DSD (= less initial costs) than against multiple DSDs. 354 +|(% style="width:216px" %)**Data collector**|(% style="width:1399px" %)((( 395 395 Data validation is easier with DSDs that only cover what needs to be collected. This is achieved via constraints in the master + satellites approach or via tailor-made independent DSDs. If a single DSD is used in a multi-domain or –purpose scenario, necessary constraints can be specified in the data flow definition or data provision agreement. 396 - 397 397 Further processing of collected data is more flexible and easier if relations are transparent and code lists are shared as in the one DSD or master + satellite DSDs approaches. The “shared context” created through the master DSD increases harmonization and standardization and this way facilitates combined usage of data. 398 398 ))) 399 -|**Role in data exchange**|**One DSD vs. master + satellite DSDs vs. multiple, indep. DSDs** 400 -|**DSD maintenance**|((( 358 +|(% style="width:216px" %)**DSD maintenance**|(% style="width:1399px" %)((( 401 401 The complexity and initial costs for developing and maintaining master + satellite DSDs are higher than for independent DSDs as this involves managing constraints and managing impacts of changes in shared code lists to all DSDs. 402 - 403 403 In the multiple independent DSDs approach, development and maintenance efforts may be distributed. This can be seen as an advantage, but on the other hand requires coordination in case the DSDs are only partially independent (i.e. share some code lists). 404 404 ))) 405 -|**End user (“the public”)**|For data discovery and retrieval the user needs to know what data is actually available (instead of what might be collected/disseminated with a certain data structure). This means that the potential sparseness should be hidden from the user. A reduced DSD derived from the data structure used in the background is more useful in most cases. Whether this is done via one DSD and constraints, master + satellite DSDs, or independent DSDs does not matter that much for the user. 362 +|(% style="width:216px" %)**End user (“the public”)**|(% style="width:1399px" %)For data discovery and retrieval the user needs to know what data is actually available (instead of what might be collected/disseminated with a certain data structure). This means that the potential sparseness should be hidden from the user. A reduced DSD derived from the data structure used in the background is more useful in most cases. Whether this is done via one DSD and constraints, master + satellite DSDs, or independent DSDs does not matter that much for the user. 406 406 407 407 = 5 MINIMUM STRUCTURAL AND SEMANTIC REQUIREMENTS = 408 408 409 -Although each data exchange scenario has specific requirements, especially on whether a concept needs to be a dimension, a mandatory or conditional attribute, on the attachment level of attributes, and on the attributes provided in the header of a DSD, a small set of minimum structural and semantic requirements can be defined for all scenarios. [[(% class="wikiinternallinkwikiinternallinkwikiinternallink"%)^^~[5~]^^>>path:#_ftn5]]366 +Although each data exchange scenario has specific requirements, especially on whether a concept needs to be a dimension, a mandatory or conditional attribute, on the attachment level of attributes, and on the attributes provided in the header of a DSD, a small set of minimum structural and semantic requirements can be defined for all scenarios.{{footnote}}For other more technical requirements such as the admissible characters in a code or label see the SDMX technical documents.{{/footnote}} 410 410 411 411 Certain concepts can be broadly agreed upon as being relevant in any data exchange, although their roles may differ between scenarios. The SDMX Content-Oriented Guidelines define many of these cross-domain concepts and, thus, should be referred to for further details on their specification. 412 412 ... ... @@ -432,19 +432,19 @@ 432 432 433 433 **Table 9. Minimum requirements for DSDs~*~*** 434 434 435 -|**Question**|**Concept**|**COG**|**Code list**|**Time series Cross-section** 436 -|Where?|reference area|X|revision|mand. attribute or dimension 437 -|What?|“indicator”|-|domain|one or multiple dimensions 438 -|How?|unit of measure|X|development|mand. attribute or dimension 439 -|How?|unit multiplier|X|available|mandatory attribute 440 -|How?|decimals|X|available|mandatory attribute 441 -|How?|//adjustment//|X|development|mand. att. not relevant 442 -|When?|time period|X|format|dimension mand. att. 443 -|When?|time format|X|available|mandatory attribute 444 -|When?|time period – collection|X|development|mand. att. cond. att. 445 -|When?|data update – last update|X|time stamp|mandatory attribute 446 -|How often?|//frequency//|X|available|mand. att. or not relevant 447 -|(% colspan="2" %)How much? observation value|-|numeric|dimension measure 392 +|(% style="width:205px" %)**Question**|(% style="width:272px" %)**Concept**|(% style="width:178px" %)**COG**|(% style="width:270px" %)**Code list**|(% style="width:690px" %)**Time series Cross-section** 393 +|(% style="width:205px" %)Where?|(% style="width:272px" %)reference area|(% style="width:178px" %)X|(% style="width:270px" %)revision|(% style="width:690px" %)mand. attribute or dimension 394 +|(% style="width:205px" %)What?|(% style="width:272px" %)“indicator”|(% style="width:178px" %)-|(% style="width:270px" %)domain|(% style="width:690px" %)one or multiple dimensions 395 +|(% style="width:205px" %)How?|(% style="width:272px" %)unit of measure|(% style="width:178px" %)X|(% style="width:270px" %)development|(% style="width:690px" %)mand. attribute or dimension 396 +|(% style="width:205px" %)How?|(% style="width:272px" %)unit multiplier|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mandatory attribute 397 +|(% style="width:205px" %)How?|(% style="width:272px" %)decimals|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mandatory attribute 398 +|(% style="width:205px" %)How?|(% style="width:272px" %)//adjustment//|(% style="width:178px" %)X|(% style="width:270px" %)development|(% style="width:690px" %)mand. att. not relevant 399 +|(% style="width:205px" %)When?|(% style="width:272px" %)time period|(% style="width:178px" %)X|(% style="width:270px" %)format|(% style="width:690px" %)dimension mand. att. 400 +|(% style="width:205px" %)When?|(% style="width:272px" %)time format|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mandatory attribute 401 +|(% style="width:205px" %)When?|(% style="width:272px" %)time period – collection|(% style="width:178px" %)X|(% style="width:270px" %)development|(% style="width:690px" %)mand. att. cond. att. 402 +|(% style="width:205px" %)When?|(% style="width:272px" %)data update – last update|(% style="width:178px" %)X|(% style="width:270px" %)time stamp|(% style="width:690px" %)mandatory attribute 403 +|(% style="width:205px" %)How often?|(% style="width:272px" %)//frequency//|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mand. att. or not relevant 404 +|(% colspan="2" style="width:477px" %)How much? observation value|(% style="width:178px" %)-|(% style="width:270px" %)numeric|(% style="width:690px" %)dimension measure 448 448 449 449 ~*~*Concepts in //italics// are only relevant for time series DSDs. An “X” in the COG column means the concept is defined in the COG. Code list “development” means that the SWG will develop a code list to be recommended in the COG; “revision” means that the code list is recommended by the COG and under revision by the SWG; “format” means that a format is defined by another concept; “text”, “time stamp”, and “numeric” provide data types used for uncoded concepts. 450 450 ... ... @@ -452,33 +452,25 @@ 452 452 453 453 **Table 10. Suggested additional concepts for certain scenarios~*~*** 454 454 455 -|**Question**|**Concept**|**COG**|**Code list**|**TS CS**|**Scenario**412 +|**Question**|**Concept**|**COG**|**Code list**|**TS**|**CS**|**Scenario** 456 456 |Who?|compiling agency|X|development|((( 457 -conditional conditional 458 - 459 - (sibling) (obs. level) 460 -)))|data provider different from data compiler 414 +conditional (sibling) 415 +)))|conditional (obs. level)|data provider different from data compiler 461 461 |Who?|((( 462 -confidentiality 463 - 464 -status – observation 465 -)))|X|available|mandatory (obs. level)|except dissemination 466 -|How?|observation status|X|available|conditional (obs. level)|except orig. collection 417 +confidentiality status – observation 418 +)))|X|available|(% colspan="2" rowspan="1" %)mandatory (obs. level)|except dissemination 419 +|How?|observation status|X|available|(% colspan="2" rowspan="1" %)conditional (obs. level)|except orig. collection 467 467 |How much?|((( 468 -//observation pre-// 421 +//observation pre-break value// 422 +)))|-|numeric|cond. (obs.)|not relevant|except orig. collection 423 +|What and how?|//time series title//|X|text|cond. (TS)|not relevant|dissemination 469 469 470 -//break value// 471 -)))|-|numeric|cond. (obs.) not relevant|except orig. collection 472 -|What and how?|//time series title//|X|text|cond. (TS) not relevant|dissemination 473 - 474 474 ~** The legend of Table 9 applies to Table 10 as well. The suggested attachment level of attributes (if any) is provided in parentheses in the TS (time series) or CS (cross-section) columns. In case an attribute does not vary at that level in a certain use case, it should be attached at the highest possible level. 475 475 476 476 == 5.2 Attribute attachment levels and definition of groups == 477 477 478 -Each concept can only be used once as a dimension or an attribute in one DSD. Each attribute must be explicitly attached to an observation, series, or group. The attachment level 429 +Each concept can only be used once as a dimension or an attribute in one DSD. Each attribute must be explicitly attached to an observation, series, or group. The attachment level depends on whether the value of the attribute changes by observation, observation group, or time series, or is the same for all observations. In the latter case, the attribute has to be specified at the //data flow// or //dataset// level. For some attributes described in the previous section, a certain attachment level applies, for others the attachment level depends on the data. For example, the time series title has to be attached at the time series level and the observation status at the observation level. 479 479 480 -depends on whether the value of the attribute changes by observation, observation group, or time series, or is the same for all observations. In the latter case, the attribute has to be specified at the //data flow// or //dataset// level. For some attributes described in the previous section, a certain attachment level applies, for others the attachment level depends on the data. For example, the time series title has to be attached at the time series level and the observation status at the observation level. 481 - 482 482 Series and groups are useful groupings of data that allow the specification of attributes for a set of observations instead of having to declare those attributes for every data point thereby. This increases the readability of an SDMX data file, reduces the size of the data file, and (in some cases) even increases the processing efficiency. 483 483 484 484 Series is relevant for time series data only. It refers to a group of observations that differ only with respect to the time dimension, i.e. all dimensions except time define the series attachment level. The best-known example of a group definition is the sibling group that combines time series with different frequencies. Observations in a sibling group differ with respect to frequency and time; all other dimensions are used to define the sibling group. A sibling group can be regarded as a time series group with the frequency excluded from the group definition. Any other combination of dimensions (or a single dimension) can also be used to define an observation group. An example for a group defined by a single dimension is reporting country. For instance, attributes related to methodology are often the same for all data of a country. In order to attach attributes to a group, a name for that group has to be specified. ... ... @@ -494,10 +494,8 @@ 494 494 * //ID//: a unique identifier of the message 495 495 * //Test//: a Boolean attribute that indicates whether the message is for test purposes or not 496 496 * //Prepared//: the date the message was prepared 497 -* //Sender//: the identification of the organization that is transmitting the message 446 +* //Sender//: the identification of the organization that is transmitting the message (recommended: code from the agency code list in the SDMX COG) 498 498 499 -(recommended: code from the agency code list in the SDMX COG) 500 - 501 501 From a business perspective, the inclusion of the //Name// element is highly recommended, as it can help to understand the purpose of the exchange message. Other header elements such as //Receiver// are optional. 502 502 503 503 = 6 STEP-BY-STEP GUIDE = ... ... @@ -508,68 +508,123 @@ 508 508 509 509 Figure 1 provides an overview of the overall process. As a first step, the context of the data exchange(s) that should be covered by the DSD(s) is defined in terms of purpose, domains, level of exchange, type of data, type of recipient, role of in data exchange, process pattern, and GSBPM phase (see Figure 2). Since reusing existing artefacts is one of the guiding principles, the second step identifies existing DSDs that may be reused (see Figure 3). In case relevant DSDs are available, their suitability in the present context is evaluated in step 3. Aspects to be taken into account are concept coverage, concept roles, attribute attachment levels, and code lists (see Figure 4). Step 4 is subject to the outcome of step 3. In case of a favorable assessment, the DSDs are simply reused. If the DSDs are partly suitable, modified versions can be derived. See section 2. for a summary of possible DSD modification scenarios. If the DSDs are not suitable or if no relevant DSDs are available at all, new DSDs will be defined as described in section 3. Finally, supporting artefacts such as data flow definitions and data provision agreements are defined (see Figure 5). 510 510 511 -==== Figure 1. Overview of the DSD design process ==== 458 +(% class="wikigeneratedid" %) 459 +[[image:1768470533088-795.png]] 512 512 461 +(% class="wikigeneratedid" id="HFigure1.OverviewoftheDSDdesignprocess" %) 462 +Figure 1. Overview of the DSD design process 463 + 513 513 Figure 2 summarizes the characteristics of the data exchange context that is defined in step 1. These characteristics affect the decision on the data structuring approach that is part of the process of defining the concepts of a new DSD (step 4.3. in Figure 1; see Figure 7 in section 2.). 514 514 466 +[[image:1768470575978-226.png]] 515 515 516 -==== Figure 2. Characteristics of data exchange context ==== 468 +(% class="wikigeneratedid" id="HFigure2.Characteristicsofdataexchangecontext" %) 469 +Figure 2. Characteristics of data exchange context 517 517 518 518 Figure 3 recaps the priorities given to different types of existing DSDs when searching for candidates for reuse in step 2. Global DSDs maintained by the SDMX consortium are ranked the highest. They can be found via the Global SDMX Registry. 519 519 520 -==== Figure 3. Priority ranking of existing DSDs for reuse ==== 473 +(% class="wikigeneratedid" %) 474 +[[image:1768470596130-305.png]] 521 521 476 +(% class="wikigeneratedid" id="HFigure3.PriorityrankingofexistingDSDsforreuse" %) 477 +Figure 3. Priority ranking of existing DSDs for reuse 478 + 522 522 Figure 4 summarizes the aspects to be considered in the assessment of the suitability of existing DSDs in step 3. For a detailed description of the cases of partial unsuitability see section 2.1. above. 523 523 524 -==== Figure 4. Aspects of DSD suitability ==== 481 +(% class="wikigeneratedid" %) 482 +[[image:1768470626558-321.png]] 525 525 484 +(% class="wikigeneratedid" id="HFigure4.AspectsofDSDsuitability" %) 485 +Figure 4. Aspects of DSD suitability 486 + 526 526 Figure 5 lists the most relevant artefacts required in addition to a DSD, its concept scheme, and code lists. 527 527 528 - **Figure5.Supportingartefacts**489 +[[image:1768470646456-652.png]] 529 529 491 +Figure 5. Supporting artefacts 492 + 530 530 == 6.2 Defining modified DSDs == 531 531 532 532 Figure 6 briefly recapitulates the actions that can be taken to overcome partial unsuitability of DSDs. As far as possible, existing artefacts should be reused in this case. This means that even if a DSD cannot be reused as a whole, concepts and code lists from that DSD can be included in the new DSD by reference. 533 533 534 - **Figure6.DSD modificationscenarios**497 +[[image:1768470678965-391.png]] 535 535 499 +Figure 6. DSD modification scenarios 500 + 536 536 == 6.3 Defining new DSDs == 537 537 538 538 In case no (suitable) DSD is available, the actual process of specifying a new DSD is started. Figure 7 depicts this process (step 4.3. in Figure 1). It encompasses the specification of concepts, code lists, and data formats. All three specification steps include the identification of already existing artefacts that could be reused or modified to satisfy the requirements at hand and the definition of new artefacts in case no suitable artefacts are detected. Several iterations of steps 1 (specification of concepts; see Figure 8) and 2 (specification of code lists; see Figure°13) may be necessary, including revisions of the decision concerning the data structuring approach. Finally all artefacts defined in the previous steps are put together into a DSD. 539 539 540 -==== Figure 7. New DSD specification process ==== 505 +(% class="wikigeneratedid" %) 506 +[[image:1768470705894-724.png]] 541 541 508 +(% class="wikigeneratedid" id="HFigure7.NewDSDspecificationprocess" %) 509 +Figure 7. New DSD specification process 510 + 542 542 Figure 8 outlines step 4.3.1, the process of concept specification. It covers the decision on the structuring approach, the identification of relevant concepts and the assessment of their suitability, the definition of new concepts, concept roles, and attribute attachment levels. 543 543 544 -==== Figure 8. Concept specification process ==== 513 +(% class="wikigeneratedid" %) 514 +[[image:1768470729899-225.png]] 545 545 516 +(% class="wikigeneratedid" id="HFigure8.Conceptspecificationprocess" %) 517 +Figure 8. Concept specification process 518 + 546 546 Both, the decision on reuse of existing concepts as well as the definition of new ones, may lead back to a revision of the data structuring approach. For example, it could turn out that a certain concept needs to be broken down further which may lead from a “few composite dimensions” to a “many pure dimensions” approach. Figure 9 provides the design options involved in the decision on a data structuring approach. The options are defined in terms of the number of DSDs and the number of concepts (especially dimensions). The reasonability and feasibility of these options depend on the context of the present data exchange(s) as defined in the first step of the overall design process and on the content of the data exchange with respect to concepts. 547 547 548 -==== Figure 9. DSD design options ==== 521 +(% class="wikigeneratedid" %) 522 +[[image:1768470752201-691.png]] 549 549 524 +(% class="wikigeneratedid" id="HFigure9.DSDdesignoptions" %) 525 +Figure 9. DSD design options 526 + 550 550 In the second step of new DSD design, relevant existing concepts are identified. Figure 10 indicates potential sources of those concepts such as the SDMX COG for cross-domain concepts, global or other DSDs as already identified earlier in the process, and domain standards such as the UN's System of National Accounts Manual 2008 for domain-specific concepts. 551 551 552 -==== Figure 10. Potential sources of concepts and definitions ==== 529 +(% class="wikigeneratedid" %) 530 +[[image:1768470775109-874.png]] 553 553 532 +(% class="wikigeneratedid" id="HFigure10.Potentialsourcesofconceptsanddefinitions" %) 533 +Figure 10. Potential sources of concepts and definitions 534 + 554 554 The definition of new concepts (step 4.3.1.4.2.) is necessary if no (suitable) concept can be reused. It entails giving each concept a name, a code, and a definition. Further details about the usage of the concepts in the DSD are specified in steps 4.3.1.5. (concept roles), 4.3.1.6. (dimension groups), and 4.3.1.7. (attribute attachment levels). Figure 11 and 12 summarize the possible concept roles and attribute attachment levels. 555 555 556 556 The second step in the process of defining a new DSD is the specification of code lists for all coded concepts. All dimensions must be coded (with time being an exception to this rule); attributes may be coded. For uncoded concepts, a data format has to be specified. Existing formats may be reused or new ones defined. An example is the time format that is specified in the SDMX COG. Figure 13 illustrates the code list specification process. If no relevant and suitable code list exists, a new one will be defined or a partially suitable one will be adapted (see Figure 16). Suitable code lists can simply be reused via reference. 557 557 539 +[[image:1768470796725-270.png]] 558 558 541 +(% class="wikigeneratedid" %) 542 +Figure 11. Possible concept roles 543 + 544 +(% class="wikigeneratedid" %) 545 +[[image:1768470829131-599.png]] 546 + 547 +(% class="wikigeneratedid" %) 548 +Figure 12. Possible attribute attachment levels 549 + 550 +(% class="wikigeneratedid" %) 551 +[[image:1768470860119-204.png]] 552 + 559 559 (% class="wikigeneratedid" id="HFigure13.Codelistspecificationprocess" %) 560 560 Figure 13. Code list specification process 561 561 556 +(% class="wikigeneratedid" %) 562 562 Figure 14 recaps the priorities given to different types of existing code lists when searching for candidates for reuse (step 4.3.2.1.). Code lists recommended by the SDMX COG (and maintained by the SDMX consortium) are ranked the highest. 563 563 559 +[[image:1768470878394-873.png]] 560 + 564 564 (% class="wikigeneratedid" id="HFigure14.Priorityrankingofexistingcodelistsforreuse" %) 565 565 Figure 14. Priority ranking of existing code lists for reuse 566 566 564 +(% class="wikigeneratedid" %) 567 567 Figure 15 summarizes the aspects to be considered in the evaluation of the suitability of existing code lists (step 4.3.2.2.). Figure 16 summarizes the scenarios of adapting existing code lists that do not fully meet the specified needs (step 4.3.2.3.2). For a detailed description of the cases of partial unsuitability see section 2.1. above. 568 568 567 +[[image:1768470896763-366.png]] 569 569 570 570 (% class="wikigeneratedid" id="HFigure15.Aspectsofcodelistsuitability" %) 571 571 Figure 15. Aspects of code list suitability 572 572 572 +(% class="wikigeneratedid" %) 573 +[[image:1768470911321-123.png]] 574 + 573 573 (% class="wikigeneratedid" id="HFigure16.Codelistmodificationscenarios" %) 574 574 Figure 16. Code list modification scenarios 575 575 ... ... @@ -581,8 +581,10 @@ 581 581 582 582 Figure 17 provides an overview of all steps in the DSD design process as described in the previous subsections 1. to 3. Figure 18 compiles those steps into a checklist for DSD designers to help them make sure all aspects are considered. 583 583 586 + 584 584 Figure 17. DSD design process 585 585 589 +[[image:1768470939545-136.png]] 586 586 587 587 Figure 18. Checklist for DSD design process 588 588 ... ... @@ -596,7 +596,7 @@ 596 596 597 597 Concepts assume different roles in a data structure definition: 598 598 599 -* //dimensions// are required to uniquely identify an observation (a data value); e.g., for time series, at least one geographic, one temporal, and one (“mixed") subject-matter dimension are required to identify a data value (for instance: reference area = Mexico, time = 2002, indicator = GDP nominal, US$) [[(% class="wikiinternallinkwikiinternallinkwikiinternallink"%)^^~[6~]^^>>path:#_ftn6]](%%);603 +* //dimensions// are required to uniquely identify an observation (a data value); e.g., for time series, at least one geographic, one temporal, and one (“mixed") subject-matter dimension are required to identify a data value (for instance: reference area = Mexico, time = 2002, indicator = GDP nominal, US$){{footnote}}Please note that this is not a recommendation to always have three dimensions only. This is just a simplified example.{{/footnote}}; 600 600 * //measures// are the containers of the actual observation or data values; 601 601 * //attributes// provide additional meta-information required to interpret the data correctly but not to identify the observations; for instance, data for the same observation defined by a value combination of the dimensions (also termed “key”) will usually only be provided for one unit multiplier, e.g. in millions; hence unit multiplier is not necessary to identify an observation, but it is still required for a proper interpretation. Attributes can be defined as mandatory or not mandatory, and they can be attached at different levels, e.g. at observation level or at the level of groups defined by the value combinations of a predefined subset of dimensions (for example reporting currency may be attached at the country level). 602 602 ... ... @@ -636,19 +636,6 @@ 636 636 637 637 METIS: Generic Statistical Business Process Model (GSBPM). Available online at http:~/~/www1.unece.org/stat/platform/display/metis/The+Generic+Statistical+Business+Process+Model. UN's System of National Accounts Manual 2008 (SNA2008). Available online at http:~/~/unstats.un.org/unsd/nationalaccount/sna2008.asp. 638 638 639 - 640 640 ---- 641 641 642 -[[~[2~]>>path:#_ftnref2]] A Cartesian product (or product set) is a mathematical construct that builds a new set out of a number of given sets. Each member of the Cartesian product corresponds to the selection of one element each in every one of the original sets. 643 - 644 -[[~[3~]>>path:#_ftnref3]] In case a structure map is used to define reduced versions of the DSD, the number of unmapped dimensions is the equivalent measure of sparseness. 645 - 646 -[[~[4~]>>path:#_ftnref4]] Please note that the example is taken from the development status of the BOP DSD at the time of writing this document. The concepts and their relevance for certain data exchanges (represented as data flows or derived DSDs) may be different in the final version of the DSD. 647 - 648 -[[~[5~]>>path:#_ftnref5]] For other more technical requirements such as the admissible characters in a code or label see the SDMX technical documents. 649 - 650 -[[~[6~]>>path:#_ftnref6]] Please note that this is not a recommendation to always have three dimensions only. This is just a simplified example. 651 - 652 ----- 653 - 654 654 {{putFootnotes/}}
- 1768468989793-901.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +52.9 KB - Content
- 1768469016538-287.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +42.6 KB - Content
- 1768469652632-803.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +10.7 KB - Content
- 1768470533088-795.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +48.6 KB - Content
- 1768470575978-226.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +95.8 KB - Content
- 1768470596130-305.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +44.4 KB - Content
- 1768470611326-907.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +51.5 KB - Content
- 1768470626558-321.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +51.5 KB - Content
- 1768470646456-652.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.7 KB - Content
- 1768470678965-391.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +117.9 KB - Content
- 1768470705894-724.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +23.9 KB - Content
- 1768470729899-225.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +66.5 KB - Content
- 1768470752201-691.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +38.0 KB - Content
- 1768470775109-874.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +36.5 KB - Content
- 1768470796725-270.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +30.7 KB - Content
- 1768470829131-599.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +30.8 KB - Content
- 1768470860119-204.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +37.9 KB - Content
- 1768470878394-873.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +49.7 KB - Content
- 1768470896763-366.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +29.9 KB - Content
- 1768470911321-123.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +49.2 KB - Content
- 1768470939545-136.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +143.4 KB - Content