Version 1.10 by Helena K. on 2026/01/15 23:32

Hide last authors
Helena K. 1.1 1 {{box title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = DOCUMENT HISTORY =
6
7 |**Version**|**Date**|**Comment**
8 |1.0|01/03/2021|Initial version.
9 |2.0|24/04/2025|Adapted to SDMX 3.0. Extensions to controlled vocabulary. Clarified text.
10
11 = Introduction =
12
13 According to the SDMX documentation, the Annotation is a construct that contains user or organisation-specific metadata. The Annotation construct in SDMX is available to most of the SDMX structural metadata artefacts. This facility is essentially a flexible extension mechanism allowing metadata to be added to an SDMX structural artefact. Annotations are often used to store metadata in artefacts when there is no specific place for that information in the SDMX information model. Presentation metadata is a prime example, such as a default presentation for a dataflow.
14
15 Note that whilst the SDMX Annotation has a specific structure (Title, Type, URL, Text) individual organisations are free to use these in any way and any combination they wish. However, an Annotation can only be processed in a meaningful way (i.e. other than viewing it) by systems that understand its semantics.
16
17 The main advantage of the Annotation is its flexibility as all properties can be tailor-made and there is no limit to their number. This can prove very useful for specific applications, such as dissemination tools. The main drawback is poor interoperability as Annotations convey no semantics and are not standardised. This means that organisations that want to exchange Annotations and process them automatically must agree upon, at least, a common naming syntax.
18
19 The aim of this guideline is to improve machine interactions by proposing a controlled vocabulary for the Type property of the SDMX Annotation construct and a recommended usage for the other properties that will greatly improve the interoperability of Annotations between SDMX-compliant organisations.
20
21 The Controlled Vocabulary referred to above will be maintained as a SDMX Concept Scheme stored in the SDMX Global Repository.
22
23 = SDMX Information Model for the Annotation construct =
24
25 === SDMX 2.1 ===
26
27 [[image:1768507168026-558.png]]
28
29 All classes derived from the abstract class AnnotableArtefact may have Annotations. The Annotation is used to convey extra information to describe SDMX constructs. This information may be in the form of a URL reference, a non-localised text, and/or multiple localised texts (represented by the one-to-many relationship to LocalisedString).
30
31 === SDMX 3.0 ===
32
33 [[image:1768507168030-780.png]]
34
35 The URL can be localised which gives the advantage of linking to different resources depending on the language. It also removes the complexity of having to use AnnotationText in SDMX 2.1 to do this.
36
37 = Properties of the Annotation construct =
38
39 The properties of the Annotation construct are listed below. This information is taken from the [[SDMX official technical documentation>>url:https://sdmx.org/?page_id=5008]].
40
Helena K. 1.2 41 |**Property**|(% style="width:823px" %)**Description**|(% style="width:710px" %)**Controlled vocabulary context**
42 |**id**|(% style="width:823px" %)Identifier for the Annotation. It can be used to disambiguate one Annotation from another where there are several Annotations for the same annotated object.|(% style="width:710px" %)Id is set to @SDMX to identify it as part of the controlled vocabulary
43 |**title**|(% style="width:823px" %)A title used to identify an Annotation.|(% style="width:710px" %)A non-localised value for the annotation. Used when localisation is irrelevant.
44 |**type**|(% style="width:823px" %)(((
Helena K. 1.1 45 Specifies how the Annotation is to be processed.
Helena K. 1.3 46 The **type** is often used as the usage context of the Annotation. The types are not enumerated{{footnote}}The technical standard does not enumerate the annotation types, however this guideline provides a recommended enumeration or controlled vocabulary{{/footnote}}, as these can be specified by the Annotation creator. The definitions and use of Annotation types should be documented by their creator.
Helena K. 1.2 47 )))|(% style="width:710px" %)Identifies the usage (e.g. images are type IMAGE) of the annotation. The type values are enumerated in the controlled vocabulary table.
48 |**url**|(% style="width:823px" %)(((
Helena K. 1.1 49 A link to external descriptive text.
50 The **url** is a URI - typically a URL - which points to a resource. If a specific behaviour is desired, an Annotation type should be defined which specifies the use of this field more exactly.
Helena K. 1.2 51 )))|(% style="width:710px" %)A non-localised URL reference to an external resource. Used when localisation is irrelevant.
52 |**+url**|(% style="width:823px" %)**SDMX 3.0 and later**. An annotation may have several localised URLs|(% style="width:710px" %)A localised URL reference to an external resource.
53 |**+text**|(% style="width:823px" %)(((
Helena K. 1.1 54 An International String that provides the multilingual text content of the Annotation.
55
56 **Text** holds a language-specific string containing the text of the Annotation.
Helena K. 1.2 57 )))|(% style="width:710px" %)A localised value for the annotation.
Helena K. 1.1 58
59 = Introducing Standard Annotations =
60
61 As stated earlier, a major drawback of the Annotation construct is the fact that they are not standardised for reuse when exchanging structural metadata. Annotations are containers for additional information relating to the object to which they are attached. This means that for an Annotation to be interpreted in the same way by exchange partners, a reference is needed that defines some standard behaviour and implementation.
62
63 This guideline proposes an Annotation controlled vocabulary and guidelines on their (re)use for SDMX implementers.
64
65 A standard Annotation can be defined as an Annotation that has an agreed definition in the SDMX community. Some of them, especially the general and display-related annotations also have a described behaviour. They allow diverse systems to parse the information and perform a specific action in response.
66
67 = How to Identify Standard Annotations? =
68
69 In order to be able to configure their applications to implement actions based upon standard Annotations, systems must know how to identify such Annotations. This is done by setting the Annotation **id** property to “@SDMX” which indicates that the Annotation is part of the controlled vocabulary described in the section List of Standard Annotations, and avoids using “@SDMX” for other usage contexts. For example, ORDER could be the order of codes (as described in this controlled vocabulary) or some kind of order number (a different usage).
70
71 The additional mandatory information to be provided is the **type** property that specifies the type of action to be implemented. There may be other mandatory property values depending on the type of the standard Annotation.
72
73 == Examples ==
74
75 The green columns in the table below show example usages of standard Annotations. The orange “ORDER” column is not a standard Annotation because the usage context is not the same as the standard Annotation “ORDER”, therefore the **id** should not be “@SDMX”.
76
Helena K. 1.2 77 |**id***|**@SDMX**|(% style="width:249px" %)**@SDMX**|(% style="width:209px" %)**@SDMX**|(% style="width:888px" %)(((
Helena K. 1.1 78 **Not @SDMX**
79
80 This is a “customer order no.” which is a different use case than the ORDER standard Annotation which is a list order
81 )))
Helena K. 1.2 82 |**title**| |(% style="width:249px" %) |(% style="width:209px" %) |(% style="width:888px" %)1934245
83 |**type***|NOT_DISPLAYED|(% style="width:249px" %)EXCLUDES|(% style="width:209px" %)ORDER|(% style="width:888px" %)ORDER
84 |(% rowspan="2" %)**+text**|(% rowspan="2" %) |(% rowspan="2" style="width:249px" %) |(% style="width:209px" %)en :10|(% rowspan="2" style="width:888px" %)
85 |(% style="width:209px" %)fr :20
Helena K. 1.1 86
87 ~* denotes a mandatory information for standard Annotations
88
89 = The Business value of Standard Annotations =
90
91 The following diagram explains the business value and decision process when deciding whether to use a standard Annotation. As can be seen, if they are used then a maximum reuse is made of the Annotation itself, tools and processes. If they are not used then bespoke Annotations, agreements, tools and processing are required to understand and make use of the information in the Annotation, and it (plus supporting tools, processes, etc.) is harder to reuse.
92
93 [[image:1768507168033-962.png]]
94
95 = List of Standard Annotations =
96
97 This section lists the standard Annotations with their typical usage contexts. This list will be expanded over time as new implementations and needs arise. When references to external standards are made (e.g. skos or xkos specifications), the reader is invited to consult the “References” section for more information.
98
99 The list of standard Annotations will be available from the SDMX Registry as artefact: SDMX:CS_ANNOT(*.*.*). Link: [[https:~~/~~/registry.sdmx.org/ws/public/sdmxapi/rest/conceptscheme/SDMX/CS_ANNOT/latest/?format=sdmx-2.1&detail=full&references=none>>url:https://registry.sdmx.org/ws/public/sdmxapi/rest/conceptscheme/SDMX/CS_ANNOT/latest/?format=sdmx-2.1&detail=full&references=none]]
100
101 **Note:** There are several Annotations that are types of name or label, e.g. FULL_NAME, SHORT_LABEL, ORIGINAL_LABEL. These Annotations have specific use cases that are described in the tables below and should not be used to replace an artefact’s or item scheme item’s Name and Description property.
102
103 == Relationships between Annotation properties ==
104
Helena K. 1.2 105 === Text value defaults and specific locale values ===
Helena K. 1.1 106
107 Some use cases may benefit from having a single, default value for all locales/languages but also to set the value for certain locales. An example is ORDER where there may be a default list order for all locales but two locales have a specific order which is different from the default. In order to avoid having to state an order for every locale, the Annotation Title property may be used to state the default value, whereas the text property is used for the localised values.
108
109 Consider this annotation //Example~:// An ORDER annotation type that is attached to a code item ACME. If both the Annotation Text and Annotation Title have values, then the Annotation Text value (e.g. en:10,es:20) is used for the localized values instead of the Annotation Title (e.g. 30) which would only be taken if the locale in the context is not found among the specified ones.
110
Helena K. 1.2 111 === URL value defaults and specific locale values ===
Helena K. 1.1 112
113 ===== SDMX 2.1 and earlier =====
114
115 In SDMX 2.1, the Annotation’s URL property is a single, non-localised value. There may be cases where different URLs are required for certain locales. In this case, it is recommended to use the Annotation text property and state the language and URL in an HTML fragment, for example:
116
117 fr:<a href=”https:~/~/someLink”>
118
119 When both a URL and text property for the locale exists, the text property overrides (is used instead of) the URL property.
120
121 ===== SDMX 3.0 and later =====
122
123 Multiple URL localised properties were introduced in SDMX 3.0. Therefore, the URL work-around in the above paragraph is not recommended. The URL property should be used as shown in the table.
124
125 == General and Display-related Annotation types ==
126
Helena K. 1.10 127 == ==
Helena K. 1.1 128
Helena K. 1.5 129 |**Annotation Type**|(% style="width:524px" %)**Use Case**|(% style="width:198px" %)**Where to attach**|(% style="width:237px" %)(((
Helena K. 1.4 130 **+Text
131 (% style="background-color:transparent" %)Blue is optional(%%)**
Helena K. 1.7 132 )))|(% style="width:320px" %)(((
Helena K. 1.4 133 **Title
134 (% style="background-color:transparent" %)Blue is optional(%%)**
Helena K. 1.7 135 )))|(% style="width:203px" %)(((
Helena K. 1.4 136 **SDMX 2.1:URL
Helena K. 1.3 137 SDMX >=3.0:+URL
Helena K. 1.4 138 (% style="background-color:transparent" %)Blue is optional(%%)**
Helena K. 1.3 139 )))
Helena K. 1.5 140 |FULL_NAME|(% style="width:524px" %)Alternative name to be displayed for items in Item Schemes (e.g. Codelists, Concept Schemes, Category Schemes) whenever the item is displayed without its parent. For example, if a code list that has a hierarchy is displayed as a flat list, then this annotation may be used to provide sufficient context for the code. Concatenation of code + heading in NACE Rev.2.1 
141 en: A0123 Growing of citrus fruits|(% style="width:198px" %)Item in an Item Scheme|(% style="width:237px" %)(((
142 <language>:<content>,<language>:<content>,…
143 //Example~://
144 (% style="background-color:transparent" %)en:Labour force (Employment)
Helena K. 1.7 145 )))|(% style="width:320px" %)<content>|(% style="width:203px" %)
146 |REPLACE_NAME|(% style="width:524px" %)Replace each code name in a component by the value of another component in an observation or series|(% style="width:198px" %)A Dataflow or DSD|(% style="width:237px" %) |(% style="width:320px" %)(((
Helena K. 1.5 147 <component Id to replace name>:<component Id to use name>
148 //Example~://
149 (% style="background-color:transparent" %)CUST_BREAKDOWN:CUST_BREAKDOWN_LB
Helena K. 1.7 150 )))|(% style="width:203px" %)
151 |REPLACE_CONTENT|(% style="width:524px" %)Replace the content in a component by the value of another component in an observation or series|(% style="width:198px" %)A Dataflow or DSD|(% style="width:237px" %) |(% style="width:320px" %)(((
Helena K. 1.5 152 <component Id to replace content>:<component Id to use content>
153 //Example~://
154 (% style="background-color:transparent" %)REF_AREA:M49_CODE
Helena K. 1.7 155 )))|(% style="width:203px" %)
Helena K. 1.6 156 |COMPLEMENT|(% style="width:524px" %)(((
157 Additional fixed text to be displayed in parenthesis after the code name.
158 (% style="background-color:transparent" %)E.g. Representation of Non-hazardous (NHAZW), hazardous waste (HAZW) in the European List of Wastes(%%)
159 (% style="background-color:transparent" %)en: 01 03 04* acid-generating tailings from processing of sulphide ore (HAZW)(%%)
160 (% style="background-color:transparent" %)en: 01 03 99 wastes not otherwise specified (NHAZW)
161 )))|(% style="width:198px" %)Item in an Item Scheme|(% style="width:237px" %)(((
162 <language>:<content>,<language>:<content>,…
163
164 //Example~://
165 (% style="background-color:transparent" %)en:See reference metadata
Helena K. 1.7 166 )))|(% style="width:320px" %)<content>|(% style="width:203px" %)
Helena K. 1.6 167 |ORDER|(% style="width:524px" %)Explicit indication of a localised order of items in Items Schemes or artefacts (e.g. Codelist, Concept Scheme, Category Scheme, Dataflow, etc.)|(% style="width:198px" %)(((
168 Either:
169
170 * an artefact, or;
171 * an item in an Item Scheme
172 )))|(% style="width:237px" %)(((
173 <language>:<content>,<language>:<content>,…
174
175 //Example~://
176 (% style="background-color:transparent" %)en:10,es:20
Helena K. 1.7 177 )))|(% style="width:320px" %)<content>|(% style="width:203px" %)
Helena K. 1.6 178 |TOTAL|(% style="width:524px" %)(((
179 Code Item that represents a total value. If the attachment is:
180
181 * to a Code, the Annotation Text is optional and may contain an explanatory text;
182 * to a Codelist, the Annotation Title is mandatory and includes the code(s) that represent a total
183 )))|(% style="width:198px" %)(((
184 Either:
185
186 * a Code Item that represents a total value, or;
187 * a Codelist to specify the code(s) with the total
188 )))|(% style="width:237px" %)(((
189 <language>:<explanatory text>, 
190 (% style="background-color:transparent" %)<language>:<explanatory text>,…
Helena K. 1.7 191 )))|(% style="width:320px" %)(((
Helena K. 1.6 192 Attached to Code Item: <blank>
193 (% style="background-color:transparent" %)Attached to Codelist: <code>,<code>,…
Helena K. 1.7 194 )))|(% style="width:203px" %)
Helena K. 1.6 195 |DRILLDOWN|(% style="width:524px" %)Denotes the concept that specifies whether observations are at the aggregate level or a drilldown.|(% style="width:198px" %)(((
196 Either:
197
198 * A Dataflow or DSD
Helena K. 1.7 199 )))|(% style="width:237px" %) |(% style="width:320px" %)(((
Helena K. 1.6 200 <concept Id>
201 //Example~://
202 (% style="background-color:transparent" %)DD_DIM (this concept should be hidden using the NOT_DISPLAYED Annotation below)
Helena K. 1.7 203 )))|(% style="width:203px" %)
204 |DEPRECATED|(% style="width:524px" %)(((
205 Indication that an Item in an Item Scheme or an artefact is deprecated.
206 For an item scheme item, the annotation value provides a replacement name for the code name.
207 For an artefact, the URL points to the replacement artefact. May be used in conjunction with SUPERSEED where the replacement artefact references the replaced artefact.
208 Suggestion to use a controlled vocabulary
209 url: <[[http:~~/~~/publications.europa.eu/resource/authority/concept-status/CURRENT>>url:http://publications.europa.eu/resource/authority/concept-status/CURRENT]]>
210 url: <[[http:~~/~~/publications.europa.eu/resource/authority/concept-status/DEPRECATED>>url:http://publications.europa.eu/resource/authority/concept-status/DEPRECATED]]>
211 or
212 (% style="background-color:transparent" %)TITLE: true (false)
213 )))|(% style="width:198px" %)(((
214 Either:
Helena K. 1.1 215
Helena K. 1.7 216 * an artefact, or;
217 * an item in an Item Scheme
218 )))|(% style="width:237px" %)(((
219 For item scheme item:
Helena K. 1.1 220
Helena K. 1.7 221 <language>:<content>,<language>:<content>,…
Helena K. 1.3 222
Helena K. 1.7 223 //Example~://
224 (% style="background-color:transparent" %)en:deprecated,fr:obsolète
225 )))|(% style="width:320px" %)<content>|(% style="width:203px" %)(((
226 For artefact:
227 <see section URL value defaults and specific locale values>
228 )))
229 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
230 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
231 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
232 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
233 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
234 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
235 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
236 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
237 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
238 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
239 | |(% style="width:524px" %) |(% style="width:198px" %) |(% style="width:237px" %) |(% style="width:320px" %) |(% style="width:203px" %)
240
Helena K. 1.10 241 == Codelist and Statistical Classification-specific Annotations ==
242
243 The categories below are used widely, for example by the European Statistical System (ESS), and the United Nations Statistics Division for its central framework classifications ISIC4{{footnote}}International Standard Industrial Classification of All Economic Activities{{/footnote}} and CPC{{footnote}}Central Product Classification{{/footnote}}.
244
245
Helena K. 1.1 246 = Concept Scheme SDMX:CS_ANNOT =
247
248 The Concept Scheme for standard Annotations will have the Maintenance Agency SDMX and will describe the following properties for each Annotation. For the information represented by Annotations, the value is in AnnotationTitle apart from the URL property where it is in AnnotationURL.
249
Helena K. 1.3 250 |**Property**|(% style="width:309px" %)**Representation in Concept**|(% style="width:1173px" %)**Description**
251 |**Code**|(% style="width:309px" %)Concept Id|(% style="width:1173px" %)The Annotation Type column, e.g. NOT_DISPLAYED, EXCLUDES
252 |**Name**|(% style="width:309px" %)Concept Name|(% style="width:1173px" %)Short description of the standard Annotation derived from the “Use case” column
253 |**Representation**|(% style="width:309px" %)Concept Core Representation|(% style="width:1173px" %)Allowable type or format for the Annotation
254 |**Description**|(% style="width:309px" %)Concept Description|(% style="width:1173px" %)The information in the “Use case” column. Possible to add more contextual information. Specific details can be described here, such as if the value should be in AnnotationText or AnnotationTitle
255 |**Artefact(s)**|(% style="width:309px" %)Annotation Type: Artefact(s)|(% style="width:1173px" %)The information in the “Where to attach” column
256 |**URL**|(% style="width:309px" %)Annotation Type: URL|(% style="width:1173px" %)The Annotation URL column. The value is in URL
Helena K. 1.1 257
258 == Example of a Concept ==
259
260 |**Concept Id**|NOT_DISPLAYED
261 |**Concept Name**|Used to hide components or their values in the presentation
262 |**Concept Core Representation**|/TextFormat@textType="String"
263 |**Concept Description**|To hide dimensions and attributes in a display (e.g. a table). For example, if they have only one allowed, available or selected value
264 |**Concept: Annotation: Type: Artefact(s)**|Either a Dataflow or DSD, or an item in an item scheme
265
266 === SDMX-ML of the Example ===
267
268 <str:Concept id="NOT_DISPLAYED">
269 <com:Annotations>
270 <com:Annotation>
271 <com:AnnotationTitle>Either a Dataflow or DSD, or an item in an item scheme</com:AnnotationTitle>
272 <com:AnnotationType>Artefact(s)</com:AnnotationType>
273 </com:Annotation>
274 </com:Annotations>
275 <com:Name xml:lang="en">Used to hide components or their values in the presentation</com:Name>
276 <com:Description xml:lang="en">To hide dimensions and attributes in a display (e.g. a table). For example, if they have only one allowed, available or selected value</com:Description>
277 <str:CoreRepresentation>
278 <str:TextFormat textType="String"/>
279 </str:CoreRepresentation>
280 </str:Concept>
281
282 = References =
283
284 * [[Formalization of the Structure and Content of Statistical Classifications>>url:https://urldefense.com/v3/__https:/eur02.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2Feur02.safelinks.protection.outlook.com*2F*3Furl*3Dhttps*3A*2F*2Fec.europa.eu*2Feurostat*2Framon*2Fmiscellaneous*2Fgen_intro_classif_files*2FStructure_and_content_of_classifications_version_1_0_October_2019.docx*26data*3D02*7C01*7CDavid.BARRACLOUGH*40oecd.org*7Cf9cb429291334e5170cb08d80c883aeb*7Cac41c7d41f61460db0f4fc925a2b471c*7C0*7C1*7C637273126543303645*26sdata*3Dl01*2BEX3SNWREH*2FElV3r9Ld*2BG49l7ouvFi7pqAGYg2Ss*3D*26reserved*3D0__*3BJSUlJSUlJSUlJSUlJSUlJSUlJSU!!DOxrgLBm!Q_cL04DGMBYhHfuPQVRMMCKao1C3QuaoJxBTxO4_mSKNMGfLjmV2UTCtAhTDvbMAZtNzrTZ3*24&data=02*7C01*7CDavid.BARRACLOUGH*40oecd.org*7Ca70a73c696814b06406408d80d1d9336*7Cac41c7d41f61460db0f4fc925a2b471c*7C0*7C1*7C637273768055440921&sdata=r4CVvCdYBIU39XMN0qNmt*2FC9FIS7AnXrzYcjuzDe0Dc*3D&reserved=0__;JSUlJSUlJSUlJSoqKioqKioqJSUqKioqKioqKiUlKioqKiUlJSUlJSUlJSUlJSUl!!DOxrgLBm!RCGOp-FMBfmiP7CvEwdSAhL4XCil-vey-z32n6uxoCDXVTN7rXWXG442IZgqwpmM4wKQq908$]]
285 * [[SDMX Global Registry>>url:https://registry.sdmx.org/overview.html]]
286 * [[SDMX Glossary 2.1>>url:https://sdmx.org/wp-content/uploads/SDMX_Glossary_version_2_1-Final-2.docx]]
287 * SDMX Standards, “[[Information Model: UML Conceptual Design>>url:https://sdmx.org/wp-content/uploads/SDMX_2_0_SECTION_02_InformationModel.pdf]]”, version 2.1
288 * [[SKOS Specification>>url:https://www.w3.org/TR/2009/REC-skos-reference-20090818/]]
289 * [[XKOS Specification>>url:https://ddialliance.org/Specification/XKOS/1.2/OWL/xkos.html]]
290
291 ----
292
Helena K. 1.3 293 {{putFootnotes/}}
© Semantic R&D Group, 2026