-
Notifications
You must be signed in to change notification settings - Fork 0
/
sdmx-metadata.html
526 lines (452 loc) · 29.8 KB
/
sdmx-metadata.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
<!DOCTYPE html>
<html>
<head>
<title>SDMX Metadata</title>
<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
<script src='https://www.w3.org/Tools/respec/respec-w3c-common' async class='remove'></script>
<script class='remove'>
var respecConfig = {
specStatus: "CG-DRAFT",
shortName: "SDMX-Metadata",
subtitle: "An RDF vocabulary for representing the SDMX metadata model",
editors: [
{ name: "Franck Cotton", company: "INSEE", companyURL: "http://www.insee.fr/" }
],
wg: "Semantic Statistics Community Group",
wgURI: "https://www.w3.org/community/semstats/",
wgPatentURI: "http://creativecommons.org/licenses/by/4.0/",
processVersion: 2017,
edDraftURI: "https://github.com/linked-statistics/SDMX-Metadata",
githubAPI: "https://api.github.com/repos/linked-statistics/SDMX-Metadata",
localBiblio: {
"SDMX-MM": {
title: "SDMX 2.1 information model, Chapter 7",
href: "http://sdmx.org/wp-content/uploads/SDMX_2-1-1_SECTION_2_InformationModel_201108.pdf",
publisher: "SDMX Initiative"
}
}
};
</script>
</head>
<body>
<section id='abstract'>
<p>We try in this paper to express the “metadata” part of the SDMX information model (Metadata Structure Definition and Metadata Set) ([[!SDMX-MM]]) using RDF and related standards. We will take example on the work done for the Data Cube ([[!vocab-data-cube]]), which is an RDF vocabulary expressing the “data” part of the SDMX model. We use in the following the <code>sdmx-mm</code> prefix for the namespace (to be specified) where we define the vocabulary.</p>
<p>The vocabulary defined in this document is also available in these non-normative formats: <a href="sdmx-metadata.ttl">Turtle</a>.</p>
</section>
<section id='sotd'>
<p>This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p>
</section>
<section>
<h2>Background and Motivation</h2>
<p>SDMX is one of the most important metadata standards for the Official Statistics community. At the heart of the standard is the SDMX information model (SDMX-IM), which covers in particular two main parts: one about data (data sets and data structure definitions) and one about metadata (metadata sets and metadata sets definitions). The “data” part of the model gave birth to the Data Cube vocabulary, which is now widely used for the publication of statistical linked data. The SDMX “metadata” part of the SDMX information model is also an important component: in particular, the standards defined by Eurostat for the quality reporting (cf. SIMS) are based on it.</p>
<div class="issue">
<p>Add SIMS in biblio.</p>
</div>
<p>For organizations using RDF for the representation of metadata, it is useful to have a standard way of representing SDMX metadata.</p>
<p>Conformance to the SDMX model is to be balanced with the need to describe metadata for non-SDMX data.</p>
<p>Since quality metadata is a notable use case, we try also to link to the Data Quality Vocabulary ([[vocab-dqv]]).</p>
</section>
<section id="intro">
<h2>Introduction</h2>
<p>The SDMX metadata model includes two main parts: the description of the Metadata Structure Definition (MSD) and the description of the Metadata Set.</p>
</section>
<section id="overview">
<h2>Overview</h2>
<p>TBD.</p>
</section>
<section id="nsvoc">
<h2>SDMX-MM Namespace and Vocabulary</h2>
<p>The SDMX-MM namespace URI is:</p>
<ul>
<li><strong>http://www.w3.org/ns/sdmx-mm#</strong></li>
</ul>
<div class="issue">
<p>Define final namespace.</p>
</div>
<p>The prefix <code>sdmx-mm</code> will be associated to this namespace in all this specification.</p>
<p>The SDMX-MM vocabulary is a set of URIs, given in the left-hand column in the table below. The right hand column indicates in which section below the corresponding term is explained in more detail.</p>
<table class="simple">
<caption>Table 1. SDMX-MM Vocabulary</caption>
<thead>
<tr>
<th>URI</th>
<th>Definition</th>
</tr>
</thead>
<tbody>
<tr>
<td>sdmx-mm:MetadataAttributeProperty</td>
<td><a href="#metadata-structure-definition">Section 5. Metadata Structure Definition</a></td>
</tr>
<tr>
<td>sdmx-mm:MetadataAttributeSpecification</td>
<td><a href="#metadata-structure-definition">Section 5. Metadata Structure Definition</a></td>
</tr>
</tbody>
</table>
<div class="issue">
<p>Complete list.</p>
</div>
<p>Other vocabularies used in this document are listed in the table below, with their namespaces and associated prefixes.</p>
<table class="simple">
<caption>Table 2. Other vocabularies used in this document</caption>
<thead>
<tr>
<th>Prefix</th>
<th>URI</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>dcat</td>
<td>http://www.w3.org/ns/dcat#</td>
<td>Data Catalog Vocabulary ([[!vocab-dcat]])</td>
</tr>
<tr>
<td>dcterms</td>
<td>http://purl.org/dc/terms/</td>
<td>Dublin Core Metadata Initiative Metadata Terms ([[!DCTERMS]])</td>
</tr>
<tr>
<td>dqv</td>
<td>http://www.w3.org/ns/dqv#</td>
<td>Data Quality Vocabulary ([[vocab-dqv]])</td>
</tr>
<tr>
<td>foaf</td>
<td>http://xmlns.com/foaf/spec/</td>
<td>FOAF Vocabulary Specification 0.99 ([[!FOAF]])</td>
</tr>
<tr>
<td>prov</td>
<td>http://www.w3.org/ns/prov#</td>
<td>PROV-O: The PROV Ontology ([[!prov-o]])</td>
</tr>
<tr>
<td>qb</td>
<td>http://purl.org/linked-data/cube#</td>
<td>The RDF Data Cube Vocabulary ([[!vocab-data-cube]])</td>
</tr>
<tr>
<td>skos</td>
<td>http://www.w3.org/2004/02/skos/core#</td>
<td>Simple Knowledge Organization System</td>
</tr>
<tr>
<td>time</td>
<td>http://www.w3.org/2006/time#</td>
<td>Time Ontology in OWL ([[owl-time]])</td>
</tr>
</tbody>
</table>
<p>RDF, RDFS and OWL vocabularies are also used, with their usual URIs and prefixes.</p>
<p>The RDF examples are expressed with the Terse RDF Triple language (Turtle) [[!turtle]]. Unless otherwise specified, these examples use http://example.org/ns/ as a base namespace; resource names between angle brackets represent URIs in this namespace. Note however that individual resource names used as examples are entirely fictitious.</p>
</section>
<section id="metadata-structure-definition">
<h2>The Metadata Structure Definition</h2>
<section id="metadata-attribute">
<h3>The Metadata Attribute</h3>
<p>An important design choice in Data Cube is to represent Data Structure Definition (DSD) components as RDF properties. The <code>qb:ComponentProperty</code> class is a sub-class of <code>rdf:Property</code>, and is itself specialized into <code>qb:DimensionProperty</code>, <code>qb:AttributeProperty</code>, etc. This allows to directly attach to the observations (instances of the <code>qb:Observation</code> class) the values of the dimensions, measures or attributes defined in the DSD.</p>
<p>In the SDMX Metadata Structure Definition (MSD), the metadata attribute is the equivalent of the DSD components. Therefore, following the Data Cube approach, we create:</p>
<pre><code>
sdmx-mm:MetadataAttributeProperty a rdfs:Class, owl:Class;
rdfs:label "Metadata attribute"@en;
rdfs:comment "Defines a specific type of metadata."@en;
rdfs:subClassOf rdf:Property.
</code></pre>
<p>SDMX defines properties for the metadata attribute: a boolean <code>isPresentational</code> and integers giving the minimum and maximum number of occurrences of the attribute in a hierarchical context (see below). Likewise, the DSD dimension components have an order property, but the Data Cube model does not associate the order property to the <code>qb:DimensionPropery</code> or even to the <code>qb:ComponentProperty</code> but to a specific “enveloping” class, <code>qb:ComponentSpecification</code>. This allows a given dimension to be re-used in different DSDs, even if it does not appear at the same position. Similarly, we can define a specific class:</p>
<pre><code>
sdmx-mm:MetadataAttributeSpecification a rdfs:Class, owl:Class;
rdfs:label "Metadata attribute specification"@en;
rdfs:comment "Used to define properties of a metadata attribute which
are specific to its usage in an MSD."@en.
</code></pre>
<p>and the property that links it to the metadata attribute:</p>
<pre><code>
sdmx-mm:metadataAttributeProperty a rdf:Property, owl:ObjectProperty;
rdfs:label "metadata attribute"@en;
rdfs:comment "Indicates a metadata attribute property associated to the
metadata attribute specification"@en;
rdfs:domain sdmx-mm:MetadataAttributeSpecification;
rdfs:range sdmx-mm:MetadataAttributeProperty.
</code></pre>
<p>We can now define the <code>isPresentational</code> property and attach it to the attribute specification rather than to the attribute property, so that a given metadata attribute can be presentational in a given MSD and not in an other one.</p>
<pre><code>
sdmx-mm:isPresentational a rdf:Property, owl:DatatypeProperty;
rdfs:label "is presentational"@en;
rdfs:comment "When true, indicates that an attribute is for
presentation purpose only and cannot have a value by itself."@en;
rdfs:domain sdmx-mm:MetadataAttributeSpecification;
rdfs:range xsd:boolean.
</code></pre>
<p>The SDMX model does not explicitly define an order property for metadata attributes, although the XML Schema representation of the model implies that attributes are in a defined order. For a RDF representation, we will need to explicitly represent the order of the attributes. We cannot re-use the <code>qb:order</code> property because its domain is restricted to <code>qb:ComponentSpecification</code>, but we can adapt the definition:</p>
<pre><code>
sdmx-mm:order a rdf:Property, owl:DatatypeProperty;
rdfs:label "order"@en;
rdfs:comment "Indicates a priority order for the attributes of
metadata sets with this structure."@en;
rdfs:domain sdmx-mm:MetadataAttributeSpecification;
rdfs:range xsd:int.
</code></pre>
<p>Metadata attributes can be organized in hierarchies: this is represented by a <code>parent/child</code> self association. Finally, the SDMX model also defines the <code>minOccurs</code> and <code>maxOccurs</code> integer attributes to specify the minimum and maximum of times a metadata attribute can appear in a given hierarchical context. Once again, we can report these features on the attribute specification:</p>
<pre><code>
sdmx-mm:parent a rdf:Property, owl:ObjectProperty;
rdfs:label "parent"@en;
rdfs:comment "Associates a metadata attribute to its parent in the report."@en;
rdfs:domain sdmx-mm:MetadataAttributeSpecification;
rdfs:range sdmx-mm:MetadataAttributeSpecification.
</code></pre>
<pre><code>
sdmx-mm:minOccurs a rdf:Property, owl:DatatypeProperty;
rdfs:label "minOccurs"@en;
rdfs:comment "Specifies the minimum number of occurrences of the metadata
attribute that may be reported at this point in the metadata report."@en;
rdfs:domain sdmx-mm:MetadataAttributeSpecification;
rdfs:range xsd:int.
</code></pre>
<pre><code>
sdmx-mm:maxOccurs a rdf:Property, owl:DatatypeProperty;
rdfs:label "maxOccurs"@en;
rdfs:comment "Specifies the maximum number of occurrences of the metadata
attribute that may be reported at this point in the metadata report."@en;
rdfs:domain sdmx-mm:MetadataAttributeSpecification;
rdfs:range xsd:int.
</code></pre>
<p>Metadata attributes, like data structure definition components, have associated concepts. The Data Cube vocabulary defines the <code>qb:concept</code> property to materialize this link, but here again the property cannot be reused directly due to domain constraint. We therefore define:</p>
<pre><code>
sdmx-mm:concept a rdf:Property, owl:ObjectProperty;
rdfs:label "concept"@en;
rdfs:comment "Gives the metadata concept associated to a MetadataAttributeProperty."@en;
rdfs:domain sdmx-mm:MetadataAttributeProperty;
rdfs:range skos:Concept.
</code></pre>
<p>Note that the <code>skos:Concept</code> values of this property can in fact be instances of the <code>dqv:Dimension</code> and <code>dqv:Category</code> classes defined by the Data Quality Vocabulary, since both classes specialize <code>skos:Concept</code>.</p>
<div class="issue">
<p>Should we deal with attribute representation?</p>
</div>
<p>The following figure summarizes the vocabulary terms defined until now.</p>
<figure id="image-map">
<img src="img/sdmx-mm-map.png" alt="Metadata attribute overview" title="Metadata attribute overview"/>
<figcaption>Metadata attribute overview</figcaption>
</figure>
</section>
<section id="metadata-target">
<h3>The Metadata Target</h3>
<p>Another important component of the metadata structure definition is the metadata target, which allows to specify what the metadata attach to. The metadata target is specified as a combination of target objects, which possible types are exhaustively listed in the SDMX specification: a target object can be a data set, a full or partial key in a data set, a report period, the content of an attachment constraint, or any SDMX identifiable artefact (e.g. a data provider, a dimension in a data structure definition, etc.).</p>
<p>Like the metadata attribute, the target object derives from the SDMX base abstract class <code>Component</code>, and it can also be rendered as an RDF property, but there is no need here of an intermediary <code>TargetObjectSpecification</code> class: the only information contained in any of the <code>TargetObject</code> concrete sub-classes is an <code>objectType</code> property, which will be represented in the RDF world as the <code>rdf:type</code> of the property object.</p>
<p>The previous considerations lead to the following definitions:</p>
<pre><code>
sdmx-mm:MetadataTarget a rdfs:Class, owl:Class;
rdfs:label "Metadata target"@en;
rdfs:comment "Defines a part of a data or metadata set to which the metadata is attached."@en.
</code></pre>
<pre><code>
sdmx-mm:TargetObjectProperty a rdfs:Class, owl:Class;
rdfs:label "Target object"@en;
rdfs:comment "Defines a specific type of target object."@en;
rdfs:subClassOf rdf:Property.
</code></pre>
<pre><code>
sdmx-mm:targetObjectProperty a rdf:Property, owl:ObjectProperty;
rdfs:label "target object"@en;
rdfs:comment "Indicates a target object that is part of the metadata target definition."@en;
rdfs:domain sdmx-mm:MetadataTarget;
rdfs:domain sdmx-mm:TargetObjectProperty.
</code></pre>
<p>The five sub-classes of <code>TargetObject</code> that are defined in the SDMX model can actually be transposed as instances of the <code>TargetObjectProperty</code> property. Since the SDMX constraint construct is not yet part of any RDF specification, we will leave it out for now and define only four properties. Furthermore, we also generalize the range of these properties as follows:</p>
<ul>
<li>The range of the property corresponding to <code>DimensionDescriptorValuesTarget</code> is adapted to the Data Cube context and changed to <code>qb:ComponentSet</code>.</li>
<li>The range of the property corresponding to <code>IdentifiableObjetTarget</code> is left unspecified in order to match any RDF resource.</li>
<li>The range of the property corresponding to <code>ReportPeriodTarget</code> is generalized to <code>time:TemporalEntity</code>.</li>
<li>The range of the property corresponding to <code>DataSetTarget</code> is generalized from <code>qb:DataSet</code> (the Data Cube representation of the SDMX <code>DataSet</code>) to <code>dcat:Dataset</code>.</li>
</ul>
<pre><code>
sdmx-mm:componentSetTarget a rdf:Property, sdmx-mm:TargetObjectProperty;
rdfs:label "component set target objet"@en;
rdfs:comment "Indicates a target object which is a component set."@en;
rdfs:range qb:ComponentSet.
</code></pre>
<pre><code>
sdmx-mm:identifiableObjetTarget a rdf:Property, sdmx-mm:TargetObjectProperty;
rdfs:label "identifiable object target objet"@en;
rdfs:comment "Indicates a target object which is any identifiable object."@en.
</code></pre>
<pre><code>
sdmx-mm:reportPeriodTarget a rdf:Property, sdmx-mm:TargetObjectProperty;
rdfs:label "report period target objet"@en;
rdfs:comment "Indicates a target object which is a report period."@en;
rdfs:range time:TemporalEntity.
</code></pre>
<pre><code>
sdmx-mm:datasetTarget a rdf:Property, sdmx-mm:TargetObjectProperty;
rdfs:label "data set target objet"@en;
rdfs:comment "Indicates a target object which is a data set."@en;
rdfs:range dcat:Dataset.
</code></pre>
<div class="issue">
<p>Specify the domain of these properties.</p>
</div>
<p>The following figure shows the objects defined in this section.</p>
<figure id="image-top">
<img src="img/sdmx-mm-top.png" alt="Target object overview" title="Target object overview"/>
<figcaption>Target object overview</figcaption>
</figure>
</section>
<section id="other-msd-objects">
<h3>Other Metadata Structure Definition objects</h3>
<p>The remaining objects in this part of the SDMX metadata model are the <code>MetadataStructureDefinition</code> itself and the <code>ReportStructure</code>. Metadata attributes are contained in report structures, and a report structure reports for one or several metadata targets; the metadata structure definition is made of report structures and metadata targets. The following definitions reflect these relations. Note that no property is defined to express the composition relations between the MSD and the report structures or metadata targets: it is suggested to use the <code>hasPart</code>/<code>isPartOf</code> properties from the Dublin Core vocabulary.</p>
<pre><code>
sdmx-mm:ReportStructure a rdfs:Class, owl:Class;
rdfs:label "Report structure"@en;
rdfs:comment "Defines a set of concepts that comprises the metadata attributes to be reported."@en.
</code></pre>
<pre><code>
sdmx-mm:MetadataStructureDefinition a rdfs:Class, owl:Class;
rdfs:label "Metadata structure definition"@en;
rdfs:comment "A collection of metadata concepts, their structure and usage when used to collect
or disseminate reference metadata."@en.
</code></pre>
<pre><code>
sdmx-mm:metadataAttributeSpecification a rdf:Property, owl:ObjectProperty;
rdfs:label "metadata attribute specification"@en;
rdfs:comment "An association to the metadata attributes relevant to the report structure."@en;
rdfs:domain sdmx-mm:ReportStructure;
rdfs:range sdmx-mm:MetadataAttributeSpecification.
</code></pre>
<pre><code>
sdmx-mm:reportsFor a rdf:Property, owl:ObjectProperty;
rdfs:label "reports for"@en;
rdfs:comment "Associates the metadata targets for which this report structure is used."@en;
rdfs:domain sdmx-mm:ReportStructure;
rdfs:range sdmx-mm:MetadataTarget.
</code></pre>
<p>The following figure shows the metadata structure definition and its constituents.</p>
<figure id="image-msd">
<img src="img/sdmx-mm-msd.png" alt="Metadata structure definition overview" title="Metadata structure definition overview"/>
<figcaption>Metadata structure definition overview</figcaption>
</figure>
</section>
</section>
<section id="metadata-set">
<h2>The Metadata Set</h2>
<section id="metadata-set-classes">
<h3>Classes</h3>
<p>The main concrete classes in this part of the SDMX metadata model are the <code>MetadataSet</code>, the <code>MetadataReport</code> and the <code>TargetObjectKey</code>. These three classes are included in the RDF vocabulary with the same names, but note the following issue:</p>
<div class="issue">
<p>It would be more natural from a non purely SDMX perspective to use the name “metadata target” instead of “target object key”. The class currently named <code>MetadataTarget</code> (in the MSD part of the vocabulary) could be renamed <code>MetadataTargetSpecification</code>.</p>
</div>
<p>It is proposed to make the <code>MetadataSet</code> a sub-class of <code>prov:Entity</code> in order to be able to easily attach provenance information to it.</p>
<div class="issue">
<p>Should <code>MetadataSet</code> be also a sub-class of <code>dcat:Dataset</code>?</p>
</div>
<pre><code>
sdmx-mm:MetadataSet a rdfs:Class, owl:Class;
rdfs:label "Metadata set"@en;
rdfs:comment "An organized collection of metadata."@en;
rdfs:subClassOf prov:Entity.
</code></pre>
<pre><code>
sdmx-mm:MetadataReport a rdfs:Class, owl:Class;
rdfs:label "Metadata report"@en;
rdfs:comment "A set of values for metadata attributes defined in a report structure of a
metadata structure definition."@en.
</code></pre>
<pre><code>
sdmx-mm:TargetObjectKey a rdfs:Class, owl:Class;
rdfs:label "Target object key"@en;
rdfs:comment "Identifies the object to which the metadata are to be attached."@en.
</code></pre>
<p>A <code>DataProvider</code> class is also present in the model, but it seems possible to represent this notion with existing RDF classes like <code>foaf:Agent</code> or <code>prov:Agent</code>, linked to the <code>MetadataSet</code> by properties such as <code>dcterms:publisher</code> or <code>prov:wasAttributedTo</code>. In consequence, we do not define a “data provider” class in the present vocabulary.</p>
<p>The other classes present in the model are hierarchies of specializations of two abstract classes: <code>TargetObjectValue</code> and <code>ReportedAttribute</code>.</p>
<p>The <code>TargetObjectValue</code> allows to specify a concrete value of a <code>TargetObject</code> (a component of the <code>MetadataTarget</code>). The equivalent in an RDF context will be an instance of a class defined above as range of one of the <code>TargetObjectProperty</code> properties, for example a given <code>dcat:Dataset</code> or <code>qb:ComponentSet</code>. These resources will be identified by their URI and come with their characteristics as RDF property values. In consequence, it does not seem necessary to introduce an additional OWL construct corresponding to the <code>TargetObjectValue</code> or its sub-classes.</p>
<div class="issue">
<p>Give an illustrative example.</p>
</div>
<p>The <code>ReportedAttribute</code> represents a value for a <code>MetadataAttribute</code>. We saw previously that the semantics of the metadata attributes was rendered by RDF properties, and we could define these properties directly on the metadata report (i.e. specify <code>MetadataReport</code>) as their domain), but it is more coherent with the SDMX metadata model to create a specific type of resource, which plays in fact the same role as the qb:Observation for the data set. In reference to the SDMX model, this type will be named <code>ReportedAttribute</code>. On the other hand, it does not seem useful to reflect in OWL the different sub-classes of <code>ReportedAttribute</code>: they only specify the type of the attribute value, which is in RDF represented by the data type or class of the property range.</p>
<pre><code>
sdmx-mm:ReportedAttribute a rdfs:Class, owl:Class;
rdfs:label "Reported attribute"@en;
rdfs:comment "Value of a metadata attribute."@en.
</code></pre>
</section>
<section id="metadata-set-properties">
<h3>Properties</h3>
<p>A number of object properties must be defined in order to connect the classes described above:</p>
<ul>
<li>As we did for the metadata structure definition objects, we will use the <code>hasPart</code>/<code>isPartOf</code> properties from the Dublin Core vocabulary in order to represent the composition relation between the metadata set and the metadata report.</li>
<li>The composition between the metadata report and the reported attribute has a specific name in SMDX, but it is rather vague (“<code>metadata</code>”). By analogy with the Data Cube model, where <code>qb:dataSet</code> goes from <code>qb:Observation</code> to <code>qb:DataSet</code>, we will make the property go from the <code>ReportedAttribute</code> to the <code>MetadataReport</code> and name it <code>metadataReport</code>.</li>
<li>The other properties are transposed directly: <code>target</code> from <code>MetadataReport</code> to <code>MetadataTarget</code> and <code>attachesTo</code> from <code>MetadataReport</code> to <code>TargetObjectKey</code>.</li>
</ul>
<pre><code>
sdmx-mm:metadataReport a rdf:Property, owl:ObjectProperty;
rdfs:label "metadata report"@en;
rdfs:comment "Associates the reported attribute to the report that contains it."@en;
rdfs:domain sdmx-mm:ReportedAttribute;
rdfs:range sdmx-mm:MetadataReport.
</code></pre>
<pre><code>
sdmx-mm:target a rdf:Property, owl:ObjectProperty;
rdfs:label "target"@en;
rdfs:comment "Associates the metadata report to the target definition it is designed for."@en;
rdfs:domain sdmx-mm:MetadataReport;
rdfs:range sdmx-mm:MetadataTarget.
</code></pre>
<pre><code>
sdmx-mm:attachesTo a rdf:Property, owl:ObjectProperty;
rdfs:label "attaches to"@en;
rdfs:comment "Associates the metadata report to the specific target that it documents."@en;
rdfs:domain sdmx-mm:MetadataReport;
rdfs:range sdmx-mm:TargetObjectKey.
</code></pre>
<div class="issue">
<p>Do we define the <code>parent</code> for the <code>ReportedAttribute</code>? It is probably useful in different use cases. If yes, do we extend the property already introduces or do we create two different properties?</p>
</div>
<p>Only the <code>MetadataSet</code> class defines specific attributes, which are in fact common to all SDMX data sets and not particularly relevant for metadata set; not all need to be included in the OWL vocabulary.</p>
<ul>
<li><code>setId</code> provides an identification of the metadata set, which is not necessary in an RDF context.</li>
<li><code>action</code> is meant to specify the action to be taken on reception of the metadata set (update, replace, delete); this is a bit specific to SDMX message exchanges and it is proposed to ignore this attribute for now.</li>
<li>The other attributes represent temporal properties related to the metadata set: validity period of the metadata, beginning and end of the reporting period, publication year and period.</li>
</ul>
<p>Regarding the validity period, it is proposed not to create yet another <code>validFrom</code>/<code>validTo</code> property couple until the utility of this information is clearly established in precise use cases. We can also consider that the information on the publication date can be represented with the simple <code>issued</code> Dublin Core property.</p>
<p>For the remaining attributes on the reporting period, it is proposed to create to properties: <code>reportingBegin</code> and <code>reportingEnd</code>. It is preferable to keep the information at that level simple and generic, so those properties will be defined as data properties with <code>xs:date</code> type. More detailed information on the reporting period for specific reports in the metadata set can be given with the <code>reportPeriodTarget</code> defined above.
<div class="issue">
<p>A <code>dataExtractionDate</code> attribute is defined in the model definitions (§ 7.4.2.2) but does not appear in the metadata set class diagram.</p>
</div>
</section>
<p>The following figure represents the main objects defined in this section.</p>
<figure id="image-ms">
<img src="img/sdmx-mm-ms.png" alt="Metadata set overview" title="Metadata set overview"/>
<figcaption>Metadata set overview</figcaption>
</figure>
</section>
<section class='appendix'>
<h2>Acknowledgements</h2>
<p>This is a placeholder for now.</p>
</section>
<section class="appendix">
<h2>Full copyright</h2>
<p>Copyright © 2017 Insee, <i>All Rights Reserved</i><br/><a href="http://www.insee.fr/">http://www.insee.fr/</a></p>
<p>Content of this document is licensed under a Creative Commons License:<br/>Attribution 4.0 International (CC BY 4.0)</p>
<p>This is a human-readable summary of the Legal Code (the full license).<br/><a href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</a></p>
<p>You are free to:</p>
<ul>
<li>Share - copy and redistribute the material in any medium or format</li>
<li>Remix - remix, transform, and build upon the material</li>
</ul>
<p>for any purpose, even commercially.</p>
<p>The licensor cannot revoke these freedoms as long as you follow the license terms.</p>
<p>Under the following terms:</p>
<ul>
<li>Attribution. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.</li>
<li>No additional restrictions. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.</li>
</ul>
<div style="font-size:80%; margin-top:40px; margin-bottom:40px">
<p>Disclaimer</p>
<p>This deed highlights only some of the key features and terms of the actual license. It is not a license and has no legal value. You should carefully review all of the terms and conditions of the actual license before using the licensed material.</p>
<p>Creative Commons is not a law firm and does not provide legal services. Distributing, displaying, or linking to this deed or the license that it summarizes does not create a lawyer-client or any other relationship.</p>
</div>
<p>Legal Code:<br/><a href="http://creativecommons.org/licenses/by/4.0/legalcode">http://creativecommons.org/licenses/by/4.0/legalcode</a></p>
</section>
</body>
</html>