├── README.md ├── img ├── XKOS_9.2_Fisheries.png ├── annotations.png ├── anzsic.png ├── association-1.png ├── association-2.png ├── bp-caseLaw-example.png ├── bp-series-example.drawio ├── bp-series-example.png ├── concept-association-example.png ├── ddi-logo-r.png ├── int-syst-eco.png ├── labels-1.png ├── labels-2.png ├── nace-example.png ├── overview.png └── skos-xkos-properties.png ├── xkos-best-practices-conformance-shapes.ttl ├── xkos-best-practices-recommended-optional-shapes.ttl ├── xkos-best-practices.html ├── xkos.html └── xkos.ttl /README.md: -------------------------------------------------------------------------------- 1 | # XKOS 2 | 3 | ## An SKOS extension for representing statistical classifications 4 | 5 | XKOS is an extension of the Simple Knowledge Organization System (SKOS) applicable to the needs of statistical offices for describing statistical classification systems. 6 | 7 | More information on XKOS can be found at http://www.ddialliance.org/Specification/RDF/XKOS. -------------------------------------------------------------------------------- /img/XKOS_9.2_Fisheries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/XKOS_9.2_Fisheries.png -------------------------------------------------------------------------------- /img/annotations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/annotations.png -------------------------------------------------------------------------------- /img/anzsic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/anzsic.png -------------------------------------------------------------------------------- /img/association-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/association-1.png -------------------------------------------------------------------------------- /img/association-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/association-2.png -------------------------------------------------------------------------------- /img/bp-caseLaw-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/bp-caseLaw-example.png -------------------------------------------------------------------------------- /img/bp-series-example.drawio: -------------------------------------------------------------------------------- 1 | 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 -------------------------------------------------------------------------------- /img/bp-series-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/bp-series-example.png -------------------------------------------------------------------------------- /img/concept-association-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/concept-association-example.png -------------------------------------------------------------------------------- /img/ddi-logo-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/ddi-logo-r.png -------------------------------------------------------------------------------- /img/int-syst-eco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/int-syst-eco.png -------------------------------------------------------------------------------- /img/labels-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/labels-1.png -------------------------------------------------------------------------------- /img/labels-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/labels-2.png -------------------------------------------------------------------------------- /img/nace-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/nace-example.png -------------------------------------------------------------------------------- /img/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/overview.png -------------------------------------------------------------------------------- /img/skos-xkos-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linked-statistics/xkos/6810e592cb194c5b4a5df9515a8a0c875876a81b/img/skos-xkos-properties.png -------------------------------------------------------------------------------- /xkos-best-practices-conformance-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix dc: . 2 | @prefix dcat: . 3 | @prefix dct: . 4 | @prefix eli: . 5 | @prefix euvoc: . 6 | @prefix evoc: . 7 | @prefix foaf: . 8 | @prefix org: . 9 | @prefix owl: . 10 | @prefix prov: . 11 | @prefix qb: . 12 | @prefix rdf: . 13 | @prefix rdfs: . 14 | @prefix schema: . 15 | @prefix sh: . 16 | @prefix skos: . 17 | @prefix skosthes: . 18 | @prefix skosxl: . 19 | @prefix xkos: . 20 | @prefix xsd: . 21 | 22 | a owl:Ontology; 23 | rdfs:label "XKOS Best Practices conformance shapes"@en ; 24 | rdfs:comment """The XKOS Best Practices shapes are splitted in 2 files : shapes to check for (strict) XKOS conformance, 25 | and shapes to check for recommended practices. This file provides the rules to check for conformance, 26 | and as such contains shapes with sh:severity of sh:Violation. Users can use either the strict XKOS conformance rules 27 | or the strict conformance rules in conjunction with the recommended practices depending on their objective."""@en ; 28 | skos:scopeNote """The shapes described here use sh:class to encode some ranges, for example to enforce that the value of xkos:belongsTo is a skos:Concept. 29 | However that type information might not be available in the data graph that is being validated if a reference is made to a 'remote' URI. 30 | Users of these shapes should then interpret the validation report accordingly and ignore the related messages, 31 | or comment out these constraints from this file before validation."""@en; 32 | . 33 | 34 | # Classification Shape 35 | 36 | xkos:ClassificationShape a sh:NodeShape; 37 | rdfs:label "Classification"@en; 38 | sh:targetClass skos:ConceptScheme; 39 | sh:nodeKind sh:IRI; 40 | sh:order 1; 41 | sh:property 42 | # mandatory 43 | xkos:P_classification_skosnotation, 44 | xkos:P_classification_skosprefLabel_en, 45 | xkos:P_classification_dctissued, 46 | # recommended 47 | xkos:P_classification_skosprefLabel_other, 48 | xkos:P_classification_dcdescription, 49 | xkos:P_classification_skosscopeNote, 50 | xkos:P_classification_skoshasTopConcept, 51 | xkos:P_classification_dctmodified, 52 | xkos:P_classification_dctcreator, 53 | xkos:P_classification_schemastartDate, 54 | xkos:P_classification_schemaendDate, 55 | xkos:P_classification_xkosbelongsTo, 56 | xkos:P_classification_xkoslevels, 57 | xkos:P_classification_xkoscovers, 58 | xkos:P_classification_xkoscoversExhaustively, 59 | xkos:P_classification_xkoscoversMutuallyExclusively, 60 | xkos:P_classification_xkosnumberOfLevels, 61 | xkos:P_classification_xkosfollows, 62 | xkos:P_classification_xkossupersedes, 63 | # optional 64 | xkos:P_classification_xkosvariant, 65 | xkos:P_classification_skosscopeNote_other, 66 | xkos:P_classification_skosaltLabel, 67 | xkos:P_classification_dctlanguage, 68 | xkos:P_classification_dctlicense, 69 | xkos:P_classification_owldeprecated, 70 | xkos:P_classification_elibased_on 71 | ; 72 | . 73 | 74 | ## mandatory properties 75 | 76 | xkos:P_classification_skosnotation 77 | sh:order 1; 78 | sh:path skos:notation; 79 | sh:datatype xsd:string; 80 | sh:description "The value must be the short name of the classification, with no language tag."@en; 81 | sh:maxCount 1; 82 | sh:minCount 1; 83 | sh:name "short name"@en; 84 | sh:nodeKind sh:Literal; 85 | sh:severity sh:Violation . 86 | 87 | xkos:P_classification_skosprefLabel_en 88 | sh:order 2; 89 | sh:path skos:prefLabel; 90 | sh:datatype rdf:langString; 91 | sh:description "The value must be the complete name of the classification scheme in english."@en; 92 | sh:name "complete name in english"@en; 93 | sh:nodeKind sh:Literal; 94 | sh:qualifiedMaxCount 1; 95 | sh:qualifiedMinCount 1; 96 | sh:qualifiedValueShape [ 97 | sh:languageIn ("en") 98 | ] ; 99 | sh:severity sh:Violation 100 | . 101 | 102 | xkos:P_classification_dctissued 103 | sh:order 3; 104 | sh:path dct:issued; 105 | sh:datatype xsd:date; 106 | sh:description "The value must be the publication date of the classification scheme"@en; 107 | sh:maxCount 1; 108 | sh:minCount 1; 109 | sh:name "date of publication"@en; 110 | sh:nodeKind sh:Literal; 111 | sh:severity sh:Violation . 112 | 113 | 114 | ## recommended properties 115 | 116 | xkos:P_classification_skosprefLabel_other 117 | sh:order 4; 118 | sh:path skos:prefLabel; 119 | sh:datatype rdf:langString; 120 | sh:description "The value must be the complete name of the classification scheme in another language than english, with a proper language tag."@en; 121 | sh:name "complete name not in english"@en; 122 | sh:nodeKind sh:Literal; 123 | sh:severity sh:Violation . 124 | 125 | xkos:P_classification_dcdescription 126 | sh:order 5; 127 | sh:path dc:description; 128 | sh:datatype rdf:langString; 129 | sh:description "The value must be a short descriptive text about the classification scheme in english."@en; 130 | sh:name "short description"@en; 131 | sh:qualifiedMaxCount 1; 132 | sh:qualifiedValueShape [ 133 | sh:languageIn ("en") 134 | ] ; 135 | sh:nodeKind sh:Literal; 136 | sh:severity sh:Violation . 137 | 138 | xkos:P_classification_skosscopeNote 139 | sh:order 6; 140 | sh:path skos:scopeNote; 141 | sh:description "The explanatory note MUST have a xkos:plainText property which value is a long descriptive text about the classification scheme in English, with a language tag set at ‘@en’"@en; 142 | sh:name "long description"@en; 143 | sh:class xkos:ExplanatoryNote; 144 | sh:nodeKind sh:BlankNodeOrIRI; 145 | sh:qualifiedMaxCount 1; 146 | sh:qualifiedValueShape [ 147 | sh:node xkos:ExplanatoryNoteInEnglishShape; 148 | ] ; 149 | sh:severity sh:Violation . 150 | 151 | xkos:P_classification_skoshasTopConcept 152 | sh:order 7; 153 | sh:path [ sh:alternativePath ( skos:hasTopConcept [ sh:inversePath skos:topConceptOf ] ) ] ; 154 | sh:class skos:Concept; 155 | sh:description "Reference to a top-level classification entry of this classification. Top level entries can be indicated either from ConceptScheme to root Concepts, using `skos:hasTopConcept`, or from root Concepts to ConceptScheme, using `skos:topConceptOf`."@en; 156 | sh:name "top concept"@en; 157 | sh:nodeKind sh:IRI; 158 | sh:severity sh:Violation . 159 | 160 | xkos:P_classification_dctmodified 161 | sh:order 8; 162 | sh:path dct:modified; 163 | sh:datatype xsd:date; 164 | sh:description "The value must be the last modification date of the classification scheme."@en; 165 | sh:maxCount 1; 166 | sh:name "last modification date"@en; 167 | sh:nodeKind sh:Literal; 168 | sh:severity sh:Violation . 169 | 170 | xkos:P_classification_dctcreator 171 | sh:order 9; 172 | sh:path dct:creator; 173 | sh:nodeKind sh:IRI; 174 | sh:description "An agent responsible for creating the classification scheme."@en; 175 | sh:name "creator"@en; 176 | sh:severity sh:Violation . 177 | 178 | xkos:P_classification_schemastartDate 179 | sh:order 10; 180 | sh:path schema:startDate; 181 | sh:description "Begin date of the temporal validity of the classification."@en; 182 | sh:maxCount 1; 183 | sh:name "valid from"@en; 184 | sh:nodeKind sh:Literal; 185 | sh:severity sh:Violation . 186 | 187 | xkos:P_classification_schemaendDate 188 | sh:order 11; 189 | sh:path schema:startDate; 190 | sh:description "End date of the temporal validity of the classification."@en; 191 | sh:maxCount 1; 192 | sh:name "valid until"@en; 193 | sh:nodeKind sh:Literal; 194 | sh:severity sh:Violation . 195 | 196 | xkos:P_classification_xkosbelongsTo 197 | sh:order 12; 198 | sh:path xkos:belongsTo; 199 | sh:class skos:Concept; 200 | sh:description "Connects a major version of a classification to a concept representing the overall classification."@en; 201 | sh:maxCount 1; 202 | sh:name "overall classification"@en; 203 | sh:nodeKind sh:IRI; 204 | sh:severity sh:Violation . 205 | 206 | xkos:P_classification_xkoslevels 207 | sh:order 13; 208 | sh:path xkos:levels; 209 | sh:description "Lists the classification levels represented as an RDF list of ordered levels (instances of xkos:ClassificationLevel)."@en; 210 | sh:maxCount 1; 211 | sh:name "classification levels"@en; 212 | sh:nodeKind sh:BlankNode; 213 | sh:node [ 214 | sh:property [ 215 | sh:path rdf:rest ; 216 | sh:minCount 1; 217 | ] ; 218 | sh:property [ 219 | sh:path rdf:first ; 220 | sh:minCount 1; 221 | ] 222 | ] ; 223 | sh:severity sh:Violation . 224 | 225 | xkos:P_classification_xkoscovers 226 | sh:order 14; 227 | sh:path xkos:covers; 228 | sh:class skos:Concept; 229 | sh:description "The domain covered by the classification or its levels (eg. activities, products, etc.). Subproperties xkos:coversExhaustively and xkos:coversMutuallyExclusively can also be used."@en; 230 | sh:maxCount 1; 231 | sh:name "domain covered"@en; 232 | sh:nodeKind sh:IRI; 233 | sh:severity sh:Violation . 234 | 235 | xkos:P_classification_xkoscoversExhaustively 236 | sh:order 15; 237 | sh:path xkos:coversExhaustively; 238 | sh:class skos:Concept; 239 | sh:description "The domain covered by the classification (exhaustive coverage)."@en; 240 | sh:maxCount 1; 241 | sh:name "domain covered exhaustively"@en; 242 | sh:nodeKind sh:IRI; 243 | sh:severity sh:Violation . 244 | 245 | xkos:P_classification_xkoscoversMutuallyExclusively 246 | sh:order 16; 247 | sh:path xkos:coversMutuallyExclusively; 248 | sh:class skos:Concept; 249 | sh:description "The domain covered by the classification (mutually exclusive coverage)."@en; 250 | sh:maxCount 1; 251 | sh:name "domain covered mutually exhaustively"@en; 252 | sh:nodeKind sh:IRI; 253 | sh:severity sh:Violation . 254 | 255 | xkos:P_classification_xkosnumberOfLevels 256 | sh:order 17; 257 | sh:path xkos:numberOfLevels; 258 | sh:datatype xsd:integer; 259 | sh:description "Depth of a classification (number of hierarchically imbricated levels) ; 1 for a flat classification."@en; 260 | sh:maxCount 1; 261 | sh:name "classification depth"@en; 262 | sh:nodeKind sh:Literal; 263 | sh:severity sh:Violation . 264 | 265 | xkos:P_classification_xkosfollows 266 | sh:order 18; 267 | sh:path xkos:follows; 268 | sh:class skos:ConceptScheme; 269 | sh:description "Links major revisions of classifications."@en; 270 | sh:maxCount 1; 271 | sh:name "previous major version"@en; 272 | sh:nodeKind sh:IRI; 273 | sh:severity sh:Violation . 274 | 275 | xkos:P_classification_xkossupersedes 276 | sh:order 19; 277 | sh:path xkos:supersedes; 278 | sh:class skos:ConceptScheme; 279 | sh:description "Links major revisions of classifications, when the new one obsoletes the old one."@en; 280 | sh:maxCount 1; 281 | sh:name "previous major version (obsoleted)"@en; 282 | sh:nodeKind sh:IRI; 283 | sh:severity sh:Violation . 284 | 285 | ## optional properties 286 | 287 | xkos:P_classification_xkosvariant 288 | sh:order 20; 289 | sh:path xkos:variant; 290 | sh:class skos:ConceptScheme; 291 | sh:description "Connects a classification scheme to its variant(s)"@en; 292 | sh:name "variant"@en; 293 | sh:nodeKind sh:IRI; 294 | sh:severity sh:Violation . 295 | 296 | xkos:P_classification_skosscopeNote_other 297 | sh:order 21; 298 | sh:path skos:scopeNote; 299 | sh:description "Each explanatory note MUST have a xkos:plainText property which value is a long descriptive text about the classification scheme in another langage than english, with the langage tag set appropriately"@en; 300 | sh:name "long description not in english"@en; 301 | sh:class xkos:ExplanatoryNote; 302 | sh:nodeKind sh:BlankNodeOrIRI; 303 | sh:severity sh:Violation . 304 | 305 | xkos:P_classification_skosaltLabel 306 | sh:order 22; 307 | sh:path skos:altLabel; 308 | sh:datatype rdf:langString; 309 | sh:description "An alternative appelation to refer to the classification scheme."@en; 310 | sh:name "other name"@en; 311 | sh:nodeKind sh:Literal; 312 | sh:severity sh:Violation . 313 | 314 | xkos:P_classification_dctlanguage 315 | sh:order 23; 316 | sh:path dct:language; 317 | sh:datatype xsd:language; 318 | sh:description "Indicates the langage coverage of the classificaiton scheme. Each value must correspond to a possible langage of labels within that classification."@en; 319 | sh:name "langage coverage"@en; 320 | sh:nodeKind sh:Literal; 321 | sh:severity sh:Violation . 322 | 323 | xkos:P_classification_dctlicense 324 | sh:order 24; 325 | sh:path dct:license; 326 | sh:description "The URI to the legal document giving official permission to do something with the classification."@en; 327 | sh:maxCount 1; 328 | sh:name "license"@en; 329 | sh:nodeKind sh:IRI; 330 | sh:severity sh:Violation . 331 | 332 | xkos:P_classification_owldeprecated 333 | sh:order 25; 334 | sh:path owl:deprecated; 335 | sh:description "Indicates the classification is no longer active and has been superseded by a new revision."@en; 336 | sh:maxCount 1; 337 | sh:name "deprecated"@en; 338 | sh:nodeKind sh:Literal; 339 | sh:datatype xsd:boolean; 340 | sh:severity sh:Violation . 341 | 342 | xkos:P_classification_elibased_on 343 | sh:order 26; 344 | sh:path eli:based_on; 345 | sh:description "Legislation on which the nomenclature is based. Use of an ELI (European Legislation Identifier) URI is preferred, if one is available."@en; 346 | sh:maxCount 1; 347 | sh:name "based on legislation"@en; 348 | sh:nodeKind sh:IRI; 349 | sh:severity sh:Violation . 350 | 351 | ## Other Shapes necessary to encode Classification Shape 352 | 353 | xkos:ExplanatoryNoteInEnglishShape a sh:NodeShape; 354 | rdfs:label "Explanatory Note in english"@en; 355 | sh:property [ 356 | sh:path xkos:plainText ; 357 | sh:datatype rdf:langString; 358 | sh:languageIn ("en"); 359 | sh:maxCount 1; 360 | sh:minCount 1; 361 | sh:name "value"@en; 362 | sh:nodeKind sh:Literal; 363 | ] 364 | . 365 | 366 | xkos:ExplanatoryNoteNotInEnglishShape a sh:NodeShape; 367 | rdfs:label "Explanatory Note not in english"@en; 368 | sh:property [ 369 | sh:path xkos:plainText; 370 | sh:datatype rdf:langString; 371 | sh:maxCount 1; 372 | sh:minCount 1; 373 | sh:name "value"@en; 374 | sh:nodeKind sh:Literal; 375 | sh:node [ 376 | sh:not [ sh:languageIn ("en") ] 377 | ] ; 378 | ] 379 | . 380 | 381 | # Versioned Note Shape 382 | 383 | xkos:VersionedNoteShape a sh:NodeShape; 384 | rdfs:label "Versioned note"@en; 385 | # notes must have an IRI 386 | sh:nodeKind sh:IRI; 387 | sh:order 3; 388 | # any value of these properties are matched by this shape 389 | sh:targetObjectsOf skos:scopeNote; 390 | sh:targetObjectsOf skos:definition; 391 | sh:targetObjectsOf xkos:coreContentNote; 392 | sh:targetObjectsOf xkos:additionalContentNote; 393 | sh:targetObjectsOf xkos:exclusionNote; 394 | sh:targetObjectsOf xkos:inclusionNote; 395 | sh:targetObjectsOf xkos:caseLaw; 396 | sh:property 397 | xkos:P_note_xkos_plainText, 398 | xkos:P_note_dct_language, 399 | xkos:P_note_dcat_version, 400 | xkos:P_note_schema_startDate, 401 | xkos:P_note_schema_endDate, 402 | xkos:P_note_rdf_value; 403 | . 404 | 405 | ## Mandatory properties 406 | 407 | xkos:P_note_xkos_plainText 408 | sh:order 30; 409 | sh:path xkos:plainText; 410 | sh:datatype rdf:langString; 411 | sh:description "The value of the note, in plain text (no HTML / XML markup). The literal is tagged with a proper language tag."@en; 412 | sh:minCount 1; 413 | sh:maxCount 1; 414 | sh:name "value (plain text)"@en; 415 | sh:nodeKind sh:Literal; 416 | sh:severity sh:Violation . 417 | 418 | xkos:P_note_dct_language 419 | sh:order 31; 420 | sh:path dct:language; 421 | sh:datatype xsd:language; 422 | sh:description "The language code of the note. This is a repetition of the language tag of the xkos:plainText attribute, that makes it easier to query/select notes in a certain language."@en; 423 | sh:minCount 1; 424 | sh:maxCount 1; 425 | sh:name "language"@en; 426 | sh:nodeKind sh:Literal; 427 | sh:severity sh:Violation . 428 | 429 | xkos:P_note_dcat_version 430 | sh:order 32; 431 | sh:path dcat:version; 432 | sh:datatype xsd:int; 433 | sh:description "The version number of the note. e.g. \"1\"^^xsd:int, \"2\"^^xsd:int, etc. Note that this version number will typically be used in the URI of the xkos:ExplanatoryNote."@en; 434 | sh:minCount 1; 435 | sh:maxCount 1; 436 | sh:name "version"@en; 437 | sh:nodeKind sh:Literal; 438 | sh:severity sh:Violation . 439 | 440 | xkos:P_note_schema_startDate 441 | sh:order 33; 442 | sh:path schema:startDate; 443 | sh:datatype xsd:dateTime; 444 | sh:description "The date from which this note content is valid."@en; 445 | sh:minCount 1; 446 | sh:maxCount 1; 447 | sh:name "start date"@en; 448 | sh:nodeKind sh:Literal; 449 | sh:severity sh:Violation . 450 | 451 | xkos:P_note_schema_endDate 452 | sh:order 34; 453 | sh:path schema:endDate; 454 | sh:datatype xsd:dateTime; 455 | sh:description "The date until which this note content was (or will be) valid, indicating it was (or will be) replaced with another note with a different text, and its version number increased by 1. This property is not set in the case if there is no known end date."@en; 456 | sh:maxCount 1; 457 | sh:name "end date"@en; 458 | sh:nodeKind sh:Literal; 459 | sh:severity sh:Violation . 460 | 461 | ## recommended properties 462 | 463 | 464 | ## optional properties 465 | 466 | xkos:P_note_rdf_value 467 | sh:order 35; 468 | sh:path rdf:value; 469 | sh:datatype rdf:XMLLiteral; 470 | sh:description "If needed the value of the note containing HTML or XML markup."@en; 471 | sh:maxCount 1; 472 | sh:name "value (with markup)"@en; 473 | sh:nodeKind sh:Literal; 474 | sh:severity sh:Violation . 475 | 476 | 477 | # Timestamped Note Shape 478 | 479 | xkos:TimestampedNoteShape a sh:NodeShape; 480 | rdfs:label "Timestamped note"@en; 481 | # notes must have an IRI 482 | sh:nodeKind sh:IRI; 483 | sh:order 4; 484 | # any value of these properties are matched by this shape 485 | sh:targetObjectsOf skos:changeNote; 486 | # some property shapes are common with versioned note shape 487 | sh:property 488 | xkos:P_note_xkos_plainText, 489 | xkos:P_note_dct_language, 490 | xkos:P_note_dcat_version, 491 | xkos:P_note_dct_issued; 492 | . 493 | 494 | ## Mandatory properties 495 | 496 | xkos:P_note_dct_issued 497 | sh:order 40; 498 | sh:path dct:issued; 499 | sh:datatype xsd:dateTime; 500 | sh:description "The date at which the note was issued. Note that this date will typically be used in the URI of the xkos:ExplanatoryNote."@en; 501 | sh:minCount 1; 502 | sh:maxCount 1; 503 | sh:name "date of publication"@en; 504 | sh:nodeKind sh:Literal; 505 | sh:severity sh:Violation . 506 | 507 | 508 | 509 | 510 | # Correspondence Shape 511 | 512 | xkos:CorrespondenceShape a sh:NodeShape; 513 | rdfs:label "Correspondence"@en; 514 | sh:targetClass xkos:Correspondence; 515 | sh:nodeKind sh:IRI; 516 | sh:order 4; 517 | sh:property 518 | # mandatory 519 | xkos:P_correspondence_skosprefLabel_en, 520 | xkos:P_correspondence_dctissued, 521 | # recommended 522 | xkos:P_correspondence_skosprefLabel_other, 523 | xkos:P_correspondence_skosscopeNote, 524 | xkos:P_correspondence_dctcreator, 525 | # optional 526 | xkos:P_correspondence_skosscopeNote_other, 527 | xkos:P_correspondence_dctlicense, 528 | xkos:P_correspondence_rdfsseeAlso, 529 | xkos:P_correspondence_xkosweightedBy; 530 | . 531 | 532 | ## Mandatory properties 533 | 534 | xkos:P_correspondence_skosprefLabel_en 535 | sh:order 1; 536 | sh:path skos:prefLabel; 537 | sh:datatype rdf:langString; 538 | sh:description "A name given to the correspondence table in english."@en; 539 | sh:name "name in english"@en; 540 | sh:nodeKind sh:Literal; 541 | sh:qualifiedMaxCount 1; 542 | sh:qualifiedMinCount 1; 543 | sh:qualifiedValueShape [ 544 | sh:languageIn ("en") 545 | ] ; 546 | sh:severity sh:Violation 547 | . 548 | 549 | xkos:P_correspondence_dctissued 550 | sh:order 2; 551 | sh:path dct:issued; 552 | sh:datatype xsd:date; 553 | sh:description "The publication date of the correspondence table."@en; 554 | sh:maxCount 1; 555 | sh:minCount 1; 556 | sh:name "date of publication"@en; 557 | sh:nodeKind sh:Literal; 558 | sh:severity sh:Violation . 559 | 560 | ## Recommended properties 561 | 562 | xkos:P_correspondence_skosprefLabel_other 563 | sh:order 3; 564 | sh:path skos:prefLabel; 565 | sh:datatype rdf:langString; 566 | sh:description "A name given to the correspondence table in another language than english, with a proper language tag."@en; 567 | sh:name "name not in english"@en; 568 | sh:nodeKind sh:Literal; 569 | sh:severity sh:Violation . 570 | 571 | xkos:P_correspondence_skosscopeNote 572 | sh:order 4; 573 | sh:path skos:scopeNote; 574 | sh:description "The explanatory note MUST have a xkos:plainText property which value is a long descriptive text about the classification scheme in English, with a language tag set at ‘@en’"@en; 575 | sh:name "long description"@en; 576 | sh:class xkos:ExplanatoryNote; 577 | sh:nodeKind sh:BlankNodeOrIRI; 578 | sh:severity sh:Violation . 579 | 580 | xkos:P_correspondence_dctcreator 581 | sh:order 5; 582 | sh:path dct:creator; 583 | sh:class dct:Agent; 584 | sh:description "An agent responsible for creating the correspondence table."@en; 585 | sh:name "creator"@en; 586 | sh:severity sh:Violation . 587 | 588 | ## Optional properties 589 | 590 | xkos:P_correspondence_skosscopeNote_other 591 | sh:order 6; 592 | sh:path skos:scopeNote; 593 | sh:description "A short descriptive text about the correspondance table in another language than english. The explanatory note MUST have a xkos:plainText property with a language tag set appropriately."@en; 594 | sh:name "scope note"@en; 595 | sh:class xkos:ExplanatoryNote; 596 | sh:nodeKind sh:BlankNodeOrIRI; 597 | sh:severity sh:Violation . 598 | 599 | xkos:P_correspondence_dctlicense 600 | sh:order 7; 601 | sh:path dct:license; 602 | sh:description "The URI to the legal document giving official permission to do something with the entire correspondence table."@en; 603 | sh:maxCount 1; 604 | sh:name "license"@en; 605 | sh:nodeKind sh:IRI; 606 | sh:severity sh:Violation . 607 | 608 | xkos:P_correspondence_rdfsseeAlso 609 | sh:order 8; 610 | sh:path rdfs:seeAlso; 611 | sh:description "Refers to another correspondence table based on the same classifications but with a different approach (e.g. reversing the role of the source and target classification)."@en; 612 | sh:name "basis for"@en; 613 | sh:qualifiedMaxCount 1; 614 | sh:qualifiedValueShape [ 615 | sh:class xkos:Correspondence ; 616 | ] ; 617 | sh:nodeKind sh:IRI; 618 | sh:severity sh:Violation . 619 | 620 | xkos:P_correspondence_xkosweightedBy 621 | sh:order 9; 622 | sh:path xkos:weightedBy; 623 | sh:description "Refers to a matrix that contains the weights / ratios associated to each pair of mapped source and target concepts."@en; 624 | sh:name "weighted by"@en; 625 | sh:maxCount 1; 626 | sh:class qb:DataSet ; 627 | sh:nodeKind sh:IRI; 628 | sh:severity sh:Violation . -------------------------------------------------------------------------------- /xkos-best-practices-recommended-optional-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix dc: . 2 | @prefix dcat: . 3 | @prefix dct: . 4 | @prefix eli: . 5 | @prefix euvoc: . 6 | @prefix evoc: . 7 | @prefix foaf: . 8 | @prefix org: . 9 | @prefix owl: . 10 | @prefix prov: . 11 | @prefix qb: . 12 | @prefix rdf: . 13 | @prefix rdfs: . 14 | @prefix schema: . 15 | @prefix sh: . 16 | @prefix skos: . 17 | @prefix skosthes: . 18 | @prefix skosxl: . 19 | @prefix xkos: . 20 | @prefix xsd: . 21 | 22 | <> rdfs:label "XKOS Best Practices recommended shapes"@en ; 23 | rdfs:comment """The XKOS Best Practices shapes are splitted in 2 files : shapes to check for (strict) XKOS conformance, 24 | and shapes to check for recommended practices. This file provides the rules to check for recommended practices, 25 | and as such contains shapes with sh:severity of sh:Warning."""@en ; 26 | . 27 | 28 | 29 | xkos:ClassificationShape a sh:NodeShape; 30 | sh:property 31 | # mandatory 32 | # recommended 33 | xkos:P_classification_skosprefLabel_other_recommended, 34 | xkos:P_classification_dcdescription_recommended, 35 | xkos:P_classification_skosscopeNote_recommended, 36 | xkos:P_classification_skoshasTopConcept_recommended, 37 | xkos:P_classification_dctmodified_recommended, 38 | xkos:P_classification_dctcreator_recommended, 39 | xkos:P_classification_schemastartDate_recommended, 40 | xkos:P_classification_schemaendDate_recommended, 41 | xkos:P_classification_xkosbelongsTo_recommended, 42 | xkos:P_classification_xkoslevels_recommended, 43 | xkos:P_classification_xkoscovers_recommended, 44 | xkos:P_classification_xkoscoversExhaustively_recommended, 45 | xkos:P_classification_xkoscoversMutuallyExclusively_recommended, 46 | xkos:P_classification_xkosnumberOfLevels_recommended, 47 | xkos:P_classification_xkosfollows_recommended, 48 | xkos:P_classification_xkossupersedes_recommended, 49 | # optional 50 | xkos:P_classification_xkosvariant_optional, 51 | # xkos:P_classification_skosscopeNote, 52 | xkos:P_classification_skosaltLabel_optional, 53 | xkos:P_classification_dctlanguage_optional, 54 | xkos:P_classification_dctlicense_optional, 55 | xkos:P_classification_elibased_on_optional, 56 | xkos:P_classification_rdfs_seeAlso_optional; 57 | . 58 | 59 | 60 | 61 | ## mandatory properties 62 | 63 | 64 | ## recommended properties 65 | 66 | xkos:P_classification_skosprefLabel_other_recommended 67 | sh:path skos:prefLabel; 68 | sh:qualifiedMinCount 1; 69 | sh:qualifiedValueShape [ 70 | sh:not [ 71 | sh:languageIn ("en"); 72 | ] 73 | ]; 74 | sh:severity sh:Warning 75 | . 76 | 77 | xkos:P_classification_dcdescription_recommended 78 | sh:path dc:description; 79 | sh:qualifiedMinCount 1; 80 | sh:qualifiedValueShape [ 81 | sh:languageIn ("en") 82 | ] ; 83 | sh:severity sh:Warning . 84 | 85 | xkos:P_classification_skosscopeNote_recommended 86 | sh:path skos:scopeNote; 87 | sh:qualifiedMinCount 1; 88 | sh:qualifiedValueShape [ 89 | sh:node xkos:ExplanatoryNoteInEnglishShape; 90 | ] ; 91 | sh:severity sh:Warning . 92 | 93 | xkos:P_classification_skoshasTopConcept_recommended 94 | sh:path [ sh:alternativePath ( skos:hasTopConcept [ sh:inversePath skos:topConceptOf ] ) ]; 95 | sh:minCount 1; 96 | sh:severity sh:Warning . 97 | 98 | xkos:P_classification_dctmodified_recommended 99 | sh:path dct:modified; 100 | sh:minCount 1; 101 | sh:severity sh:Warning . 102 | 103 | xkos:P_classification_dctcreator_recommended 104 | sh:path dct:creator; 105 | sh:minCount 1; 106 | sh:severity sh:Warning . 107 | 108 | xkos:P_classification_schemastartDate_recommended 109 | sh:path schema:startDate; 110 | sh:minCount 1; 111 | sh:severity sh:Warning . 112 | 113 | xkos:P_classification_schemaendDate_recommended 114 | sh:path schema:endDate; 115 | sh:minCount 1; 116 | sh:severity sh:Warning . 117 | 118 | xkos:P_classification_xkosbelongsTo_recommended 119 | sh:path xkos:belongsTo; 120 | sh:minCount 1; 121 | sh:severity sh:Warning . 122 | 123 | xkos:P_classification_xkoslevels_recommended 124 | sh:path xkos:levels; 125 | sh:minCount 1; 126 | sh:severity sh:Warning . 127 | 128 | xkos:P_classification_xkoscovers_recommended 129 | sh:path xkos:covers; 130 | sh:minCount 1; 131 | sh:severity sh:Warning . 132 | 133 | xkos:P_classification_xkoscoversExhaustively_recommended 134 | sh:path xkos:coversExhaustively; 135 | sh:minCount 1; 136 | sh:severity sh:Warning . 137 | 138 | xkos:P_classification_xkoscoversMutuallyExclusively_recommended 139 | sh:path xkos:coversMutuallyExclusively; 140 | sh:minCount 1; 141 | sh:severity sh:Warning . 142 | 143 | xkos:P_classification_xkosnumberOfLevels_recommended 144 | sh:path xkos:numberOfLevels; 145 | sh:minCount 1; 146 | sh:severity sh:Warning . 147 | 148 | xkos:P_classification_xkosfollows_recommended 149 | sh:path xkos:follows; 150 | sh:minCount 1; 151 | sh:severity sh:Warning . 152 | 153 | xkos:P_classification_xkossupersedes_recommended 154 | sh:path xkos:supersedes; 155 | sh:minCount 1; 156 | sh:severity sh:Warning . 157 | 158 | ## optional properties 159 | 160 | xkos:P_classification_xkosvariant_optional 161 | sh:path xkos:variant; 162 | sh:minCount 1; 163 | sh:severity sh:Info . 164 | 165 | xkos:P_classification_skosscopeNote_optional 166 | sh:path skos:scopeNote; 167 | sh:qualifiedMinCount 1; 168 | sh:qualifiedValueShape [ 169 | sh:node xkos:ExplanatoryNoteNotInEnglishShape; 170 | ] ; 171 | sh:severity sh:Info . 172 | 173 | xkos:P_classification_skosaltLabel_optional 174 | sh:path skos:altLabel; 175 | sh:minCount 1; 176 | sh:severity sh:Info . 177 | 178 | xkos:P_classification_dctlanguage_optional 179 | sh:path dct:language; 180 | sh:minCount 1; 181 | sh:severity sh:Info . 182 | 183 | xkos:P_classification_dctlicense_optional 184 | sh:path dct:license; 185 | sh:minCount 1; 186 | sh:severity sh:Info . 187 | 188 | xkos:P_classification_elibased_on_optional 189 | sh:path eli:based_on; 190 | sh:minCount 1; 191 | sh:severity sh:Info . 192 | 193 | xkos:P_classification_rdfs_seeAlso_optional 194 | sh:path rdfs:seeAlso; 195 | sh:maxCount 1; 196 | sh:severity sh:Info . 197 | 198 | 199 | xkos:CorrespondenceShape a sh:NodeShape; 200 | sh:property 201 | # mandatory 202 | # recommended 203 | xkos:P_correspondence_skosprefLabel_other_recommended, 204 | xkos:P_correspondence_skosscopeNote_recommended, 205 | xkos:P_correspondence_dctcreator_recommended, 206 | # optional 207 | xkos:P_correspondence_skosscopeNote_optional, 208 | xkos:P_correspondence_dctlicense_optional 209 | 210 | . 211 | 212 | ## Mandatory properties 213 | 214 | ## Recommended properties 215 | 216 | xkos:P_correspondence_skosprefLabel_other_recommended 217 | sh:path skos:prefLabel; 218 | sh:qualifiedMinCount 1; 219 | sh:qualifiedValueShape [ 220 | sh:not [ 221 | sh:languageIn ("en"); 222 | ] 223 | ]; 224 | sh:severity sh:Warning 225 | . 226 | 227 | xkos:P_correspondence_skosscopeNote_recommended 228 | sh:path skos:scopeNote; 229 | sh:qualifiedMinCount 1; 230 | sh:qualifiedValueShape [ 231 | sh:node xkos:ExplanatoryNoteInEnglishShape; 232 | ] ; 233 | sh:severity sh:Warning . 234 | 235 | xkos:P_correspondence_dctcreator_recommended 236 | sh:path dct:creator; 237 | sh:minCount 1; 238 | sh:severity sh:Warning . 239 | 240 | ## Optional properties 241 | 242 | xkos:P_correspondence_skosscopeNote_optional 243 | sh:path skos:scopeNote; 244 | sh:qualifiedMinCount 1; 245 | sh:qualifiedValueShape [ 246 | sh:node xkos:ExplanatoryNoteNotInEnglishShape; 247 | ] ; 248 | sh:severity sh:Info . 249 | 250 | xkos:P_correspondence_dctlicense_optional 251 | sh:path dct:license; 252 | sh:minCount 1; 253 | sh:severity sh:Info . 254 | 255 | xkos:P_correspondence_rdfsseeAlso_optional 256 | sh:path rdfs:seeAlso; 257 | sh:minCount 1; 258 | sh:severity sh:Info . 259 | 260 | xkos:P_correspondence_xkosweightedBy_optional 261 | sh:path xkos:weightedBy; 262 | sh:minCount 1; 263 | sh:severity sh:Info . -------------------------------------------------------------------------------- /xkos.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | XKOS 5 | 6 | 7 | 8 | 153 | 154 | 155 |

(Authors affiliations were recorded at the beginning of the writing of this document and might have changed since.)

156 | 157 |
158 |

Semantic technology associated with Linked Open Data (LOD) is gaining much broader use and acceptance. Marrying LOD techniques to those of the international statistical community is the goal. Specifically, the use of the Simple Knowledge Organization System ([[!SKOS]]) for managing statistical classifications and concept management systems is addressed, since SKOS is widely used. LOD is used to create Web artifacts that machines can interpret, so publishing machine readable statistical classifications and other concept management systems as SKOS instances is desired. We found that SKOS is insufficient for the problem. No aspect of SKOS was found to be wrong, just incomplete. Therefore, we propose an extension to SKOS, which we call XKOS.

159 |
160 | 161 |
162 |

This document is the first published version of this product by the DDI Alliance.

163 | 164 |

The publication process is governed by DDI Alliance Bylaws and Standards Development and Review Process and Procedures. 165 | 166 |

For changes since the last draft, see the GitHub repository.

167 |
168 | 169 |
170 |

Background and Motivation

171 |

Semantic technology associated with developments of the Semantic Web and particularly Linked Open Data (LOD) is gaining much wider use and acceptance. The purpose of current efforts is to marry LOD techniques with needs of the international statistical community. Specifically, we address the use of the Simple Knowledge Organization System (SKOS), a LOD specification, to satisfy the requirements of classification systems and concept management in general for the statistical community.

172 | 173 |

The specifics will be described below, but we found that SKOS is insufficient to represent the needs of statistical classifications and concept management. No aspect of SKOS was found to be wrong, just incomplete. Therefore, we propose an extension to SKOS, which we call XKOS.

174 | 175 |

SKOS concept schemes are defined from the point of view of thesauri, which rely on the loosely defined notions of broader than, narrower than, and related to relationships. Statistical classifications on the other hand rely on the hierarchical relations, which are called generic (generic-specific) and partitive (whole-part). Further, statistical classifications, through their hierarchies, are structured according to levels. Levels correspond to all those concepts that are same distance from the top of the hierarchy, and levels are used as a means to identify concepts within a classification used to classify instances at the same specificity. Finally, concept management requires the use of associations that are more specific than related to. Causal, sequential, and temporal relations are defined.

176 | 177 |

The proposed extensions to SKOS were not only guided by the needs of the statistical community but by requirements laid out in ISO standards on terminology, such as ISO 704:2009 ([[!ISO704]]) and ISO 1087-1:2000 ([[!ISO1087]]). These standards describe and define the constructs and relations necessary for concept management and a more complete description of statistical classifications. These documents describe concepts, the terms and codes that designate them, relations that may exist among them, the structure of concepts, and the relationship between concepts and objects in the world they classify.

178 | 179 |

The result is a more unified approach. This approach is incorporated into the new XKOS.

180 |
181 | 182 |
183 |

Introduction

184 |
185 |

Understanding statistical classifications

186 |

This section provides a brief introduction to the terminology relevant to the understanding of statistical classifications.

187 | 188 |

The United Nations Expert Group Meeting on International Statistical Classifications writes in [[UNSTATS]] : 189 |

190 | Generally a statistical classification is a set of discrete, exhaustive and mutually exclusive categories which can be assigned to one or more variables used in the collection and presentation of data, and which describe the characteristics of a particular population. 191 |
192 | Readers can refer to [[UNSTATS]] for more background information on statistical classifications. 193 |

194 |

A Statistical Classification Scheme (SCS) is a concept scheme which includes concepts associated codes (numeric string labels), short textual names (also labels), definitions, and longer descriptions that include rules for their use. It can be flat (i.e., one level) or hierarchical. By a hierarchy, we mean a system of concepts where each has zero or one parents and zero or more children. The root, or top category, has no parent; the leaves, or bottom categories, have no children; and the rest have one parent and one or more children.

195 | 196 |

If an SCS is hierarchical, it is with the added proviso that all its categories are grouped into levels. In every SCS, the root concept is implicit and is often referred to as the defining concept for the SCS. All the concepts in one level are the same number of relationships away from the root, and this number is known as the depth of the level. All the concepts at each level are mutually exclusive and exhaustive, meaning each unit can be classified to one and only one concept per level.

197 |

Each level is defined by its own concept, as the collection of concepts at a particular level have a common overall meaning. For instance, the first level below the root in the North American Standard Industrial Classification ([[!NAICS]]) is known as Sectors, and Manufacturing is one of the sectors; these sectors are the broadest industry categories.

198 | 199 |

The most important use of a classification scheme is to classify and organize units within some domain, for example business establishments by industry. NAICS is used for this in the US, but due to limitations in coverage for some geographic areas, establishment sizes, or NAICS concepts, not enough data might be available to report meaningfully at all levels. So, the lowest level with meaningful data in most of the concepts is used. However, what determines “meaningful” is a statistical consideration and out of scope for this specification.

200 |

Practically speaking, the rows in tables and the dimensions used to specify measures in a time series are major uses of SCSs in data dissemination. Aggregated data in tables and series are classified by given levels of SCSs. If the data are sparse at that level, then there is a danger that data about individuals (people or businesses) is recoverable. In this case, the next higher level is used, and the data are aggregated some more into the broader categories. This is an important reason for the hierarchical design of SCSs.

201 |

Another use of SCSs is in data collection. The possible answers to questions on a form or in a questionnaire are the categories in SCSs. Another way SCSs are used in data collection is through classifying textual responses. For instance, the US American Community Survey asks respondents to briefly describe their jobs, and these descriptions are classified to NAICS and the Standard Occupational Classification ([[!SOC]]).

202 |

Statistical agencies that manage SCSs sometimes make versions to reflect changes in the subject matter domain, and these versions are separate SCSs. However, they belong to the same family, and that is known as a classification. For instance, NAICS is updated every five years, and each version (a separate SCS) is known by its year.

203 |

Other notions linked to classifications, for example correspondence tables, are introduced in the next sections. A model for describing and managing classifications developed by the international statistical community can be found in the Neuchâtel model [[NEUCHATEL]]. Further examples of statistical classifications are the ISCED for education, ISCO for occupations, ISIC and NACE for economic activities ([[!ISCED]], [[!ISCO]], [[!ISIC]], [[!NACE]]). A complete overview of the statistical classifications that are used at world (e.g. United Nations) and regional levels (e.g. European Union) is available at RAMON ([[RAMON]]).

204 |
205 |
206 |

Managing terminological features of classification schemes

207 |

In terminology, concepts are designated by signifiers which denote them. A signifier is typically an alphanumeric string, symbol, or some physical phenomenon such as voltage. Signifiers are assigned to denote concepts and are used to communicate concepts much as words, which are alphanumeric strings, do in natural language.

208 | 209 |

Designations come in several kinds: terms are linguistic expressions (i.e., words in natural language); codes are non-linguistic alpha-numeric strings of a specified length; and symbols are pictures, sound waves, etc. Other kinds of designations are possible as well.

210 | 211 |

In classification schemes for statistics, the concepts in the scheme, referred to as categories, are designated in several ways in practice. There are codes, short "labels", long "labels", and possibly others. Concepts also have definitions, relationships to other concepts, and explanatory text associated with them.

212 | 213 |

In SKOS, there are many properties that allow one to record the various designations of a concept: prefLabel; altLabel; hiddenLabel. All are repeatable for different languages. One drawback is the insistence on a preferred label. For statistical classifications, the preference for some designation depends on the context of its use. Codes are used for classification, data representation, and data interoperability. Short labels, a kind of term, are used in reports and the stubs of tables. Long labels, another kind of term, which are intended to convey much of the meaning of the designated cateory, are used in semantic interoperability. Each is “preferred” in its main areas of use. This is described in Section 8.1.

214 | 215 |

Relationships between concepts, along with the definitions of the concepts, are the main way semantics are captured. The semantics of each relationship are based on the related concepts and the meaning of the linkage itself, called a relation. For instance, the various authors of this paper are related both as professional colleagues and as friends. Each friendship, for instance, is described by the use of the “friend” relation and by the people themselves. Each friend linkage has the same semantics, so “friend” is a relation. Likewise, “professional colleague” is a relation. SKOS provides only a limited set of relations.

216 | 217 |

Some relations are important enough to define in advance because their use is pervasive. Two in particular are the hierarchical relations: generic and partitive. These relations are regularly employed in statistical classifications. The generic relation refers to type – sub-type, or “kind of”, relationships (a person is a kind of mammal). Partitive relations are used to describe part – whole relationships (an engine is part of a car). This is described in Section 9.

218 |
219 |
220 | 221 |
222 |

Overview of XKOS

223 |

XKOS extends SKOS with two main objectives: the first one is to allow the description of statistical classifications, the second one is to introduce refinements of the semantic properties defined in SKOS.

224 |

In order to describe classifications, XKOS draws from the Neuchâtel model [[NEUCHATEL]], which is a well known standard in the statistical community: the notions of classification levels (Section 6) or correspondence tables (Section 7) are directly taken from this model. Some aspects of the model are rendered in XKOS differently (e.g. classification families by the 'covers' property) or in a more general way (concepts associations, for example). Other aspects (e.g. indexes) are not covered by XKOS. XKOS also defines a few new additional properties that are not present in the Neuchâtel model. A new version of the Neuchâtel model has recently been created and included in the General Statistical Information Model ([[GSIMSCM]]).

225 |

The figure below gives an overview of the SKOS/XKOS model for representing classifications and their components. This model will be described in sections 5 to 7.

226 | 227 | 228 | 229 |
Figure 1 – Overview of the SKOS/XKOS model for classifications
SKOS/XKOS model for classifications
230 |

XKOS also defines documentary properties for classifications (Section 8). In particular, specializations of the SKOS scope note property are proposed in order to represent the different types of explanatory notes that usually come with statistical classifications.

231 |

The other objective of XKOS is to make available to concept or classification schemes designers the semantic properties defined by ISO 704 and ISO 1087-1. Those properties are defined in Section 9, and their articulation with SKOS semantic properties is described. An overall view of the SKOS and XKOS property structure can be found in Annex B.

232 |
233 | 234 |
235 |

XKOS Namespace and Vocabulary

236 |

The XKOS namespace URI is:

237 |
    238 |
  • http://rdf-vocabulary.ddialliance.org/xkos#
  • 239 |
240 |

The prefix xkos will be associated to this namespace in all this specification.

241 |

The XKOS 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.

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 |
Table 1. XKOS Vocabulary
URIDefinition
xkos:belongsToSection 5. Classifications and classification schemes
xkos:followsSection 5. Classifications and classification schemes
xkos:supersedesSection 5. Classifications and classification schemes
xkos:variantSection 5. Classifications and classification schemes
xkos:coversSection 5. Classifications and classification schemes
xkos:coversExhaustivelySection 5. Classifications and classification schemes
xkos:coversMutuallyExclusivelySection 5. Classifications and classification schemes
xkos:classifiedUnderSection 5. Classifications and classification schemes
xkos:ClassificationLevelSection 6. Classification levels
xkos:depthSection 6. Classification levels
xkos:numberOfLevelsSection 6. Classification levels
xkos:levelsSection 6. Classification levels
xkos:organizedBySection 6. Classification levels
xkos:notationPatternSection 6. Classification levels
xkos:ConceptAssociationSection 7. Correspondences and concept associations
xkos:sourceConceptSection 7. Correspondences and concept associations
xkos:targetConceptSection 7. Correspondences and concept associations
xkos:CorrespondenceSection 7. Correspondences and concept associations
xkos:madeOfSection 7. Correspondences and concept associations
xkos:comparesSection 7. Correspondences and concept associations
xkos:maxLengthSection 8. Documentation properties
xkos:ExplanatoryNoteSection 8. Documentation properties
xkos:inclusionNoteSection 8. Documentation properties
xkos:coreContentNoteSection 8. Documentation properties
xkos:additionalContentNoteSection 8. Documentation properties
xkos:exclusionNoteSection 8. Documentation properties
xkos:caseLawSection 8. Documentation properties
xkos:plainTextSection 8. Documentation properties
xkos:isPartOfSection 9. Semantic properties
xkos:hasPartSection 9. Semantic properties
xkos:specializesSection 9. Semantic properties
xkos:generalizesSection 9. Semantic properties
xkos:causalSection 9. Semantic properties
xkos:causesSection 9. Semantic properties
xkos:causedBySection 9. Semantic properties
xkos:sequentialSection 9. Semantic properties
xkos:precedesSection 9. Semantic properties
xkos:previousSection 9. Semantic properties
xkos:succeedsSection 9. Semantic properties
xkos:nextSection 9. Semantic properties
xkos:temporalSection 9. Semantic properties
xkos:beforeSection 9. Semantic properties
xkos:afterSection 9. Semantic properties
xkos:disjointSection 9. Semantic properties
429 |

Other vocabularies used in this document are listed in the table below, with their namespaces and associated prefixes.

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 |
Table 2. Other vocabularies used in this document
PrefixURIDescription
dctermshttp://purl.org/dc/terms/Dublin Core Metadata Initiative Metadata Terms ([[!DC-TERMS]])
skoshttp://www.w3.org/2004/02/skos/core#Simple Knowledge Organization System ([[!SKOS]])
skosxlhttp://www.w3.org/2008/05/skos-xl#SKOS eXtension for Labels (SKOS-XL) ([[!SKOSXL]])
iso-theshttp://purl.org/iso25964/skos-thes#ISO 25964 SKOS extension ([[ISOTHES]])
462 |

RDF, RDFS and OWL vocabularies are also used, with their usual URIs and prefixes. Information on these standards can be found on the W3C web site.

463 |

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 fictious.

464 |
465 | 466 |
467 |

Classifications and classification schemes

468 |
469 |

Representation

470 |

In order to represent classifications and classification schemes, XKOS does not define specific classes but uses directly SKOS classes, adding to them different properties that specifically apply to classifications or classification schemes.

471 | 472 |

Each major version of a classification is represented in XKOS by a skos:ConceptScheme. All the versions of the same classification are grouped under a single resource identifying the classification itself by the xkos:belongsTo property. XKOS does not declare a formal range for xkos:belongsTo, and does not define a class to represent the classification itself; it is recommended to model it as an instance of skos:Concept that will serve as an entry in statistical classification registries, but another class could be used as well.

473 | 474 |

For example, in the diagram below, the european Statistical Classification of Economic Activities (NACE) is a skos:Concept, and each version of the NACE (the original 1970 version, the 1990 NACE rev. 1, the 2003 NACE Rev. 1.1 and the 2008 NACE Rev. 2) is a skos:ConceptSchemes linking to the NACE by the xkos:belongsTo property.

475 | 476 |

For example, the european Statistical Classification of Economic Activities (NACE) will be a skos:Concept, and each version of the NACE (the original 1970 version, the 1990 NACE rev. 1, the 2003 NACE Rev. 1.1 and the 2008 NACE Rev. 2) will be skos:ConceptSchemes linking to the NACE by the xkos:belongsTo property.

477 | 478 | 479 | 480 | 481 |
Figure 2 – The NACE classification and the classification schemes that belong to it
The NACE classification
482 |

Note that, while XKOS considers that each major version of a classification is a separate skos:ConceptScheme, it is agnostic on what happens to the classification items (skos:Concepts) inside the classification. In particular, and depending on the situation, a new major version of a classification may redefine new URIs for every item, or may reuse the URIs of the items existing in the previous version.

483 |

Readers should also be aware that the Provenance Ontology [[!PROV-O]], which was not available at the time of writing of this specification, introduces the related notion of "entity specialization" (prov:specializationOf). This can be an alternative approach for describing the versioning of classifications.

484 |
485 | 486 |
487 |

Versioning – managing information over time

488 |

The precise definition of what constitutes a version of a skos:ConceptScheme, skos:Collection or skos:Concept is out of scope for this model, but validity and version information can be represented in simple ways.

489 |

The property dcterms:valid can express the temporal validity of a concept, classification scheme, etc. In the case of classification, the major versioning activity takes place at the classification scheme level, so that is where the property will normally be attached. When no validity information is attached to a skos:Concept representing a classification item, it is usual to assume that the validity of the item is the same as the validity of the classification scheme it belongs to.

490 | 491 |

The succession in time of classifications and classification schemes is expressed by the xkos:follows property, which is defined at the skos:ConceptScheme level. For example, NACE rev. 2 followed NACE rev. 1.1. In this particular case, the new revision also obsoleted the previous one: the xkos:supersedes property conveys this additional meaning. xkos:supersedes is a sub-property of xkos:follows.

492 | 493 |

When a major version of a classification follows another, the statistical agencies usually have to know how the items of the previous version have evolved under the new version: this is important for the continuity of time series, indexes, national accounts, etc., to give a few example. Thus, it is very common that the agency responsible for the classification establishes a list of correspondences between the items of the two versions: this is a particular example of a correspondence (cf. Section 7).

494 |
495 | 496 |
497 |

Variants

498 |

In certain circumstances, statisticians need to "customize" a classification scheme for a specific use, by restricting the coverage, merging or splitting certain items at a given level, etc. In particular, when a new version of a classification scheme is being elaborated, it is useful to test different variants. The xkos:variant property can be used to represent the relation between the base classification scheme and its variant(s). skos:ConceptScheme is the domain and range of this property.

499 |
500 | 501 |
502 |

Coverage

503 |

A classification covers a defined field: economic activity, occupations, living organisms, etc. XKOS specifies the xkos:covers property to express this relation. The field covered should be represented by a skos:Concept, for example a term from a well-knowned thesaurus like EuroVoc ([[EUROVOC]]) or the Library of Congress Subject Headings ([[LOCSH]]). If the coverage of the given field is complete (i.e. all notions in the field can potentially be classified under the classification), we say that the coverage is exhaustive. If there is no overlap between the classification items at a given level of the classification, we say that the skos:Concepts representing the items are mutually exclusive. The xkos:coversExhaustively and xkos:coversMutuallyExclusively sub-properties of xkos:covers are introduced to represent these notions. Well-defined classifications usually cover their field in a exhaustive and mutually exclusive way (they form a partition of the field): in this case, xkos:coversExhaustively and xkos:coversMutuallyExclusively will be used together.

504 |
505 | 506 |
507 |

Classifying resources

508 |

The main purpose of a classification is to classify the entities that belong to or operate in the field that it covers. In linked data terms, classifying results in the creation of a RDF statement where the resource representing the entity is the subject and the concept representing the classification item is the object. XKOS defines a generic property, xkos:classifiedUnder, that can be used in such statements, but classification criteria are often quite complex: for example, a same enterprise could be classified in different items of a classification of activities, depending on the rules that are used to measure its main economic activity. Thus, it is expected that xkos:classifiedUnder will be specialized for different classification systems.

509 |
510 |
511 | 512 |
513 |

Classification levels

514 |

Classification schemes are frequently organized in nested levels of increasing detail. ISCO-08, for example, has four levels: at the top level are ten major groups, each of which contain sub-major groups, which in turn are subdivided in minor groups, which contain unit groups. Even when a classification is not structured in levels ("flat classification"), the usual convention, which is adopted here, is to consider that it contains one unique level.

515 | 516 |

In XKOS, a classification level is defined as a specialization of skos:Collection named xkos:ClassificationLevel. A classification level can bear an integer property, xkos:depth, that indicates its distance from the (abstract) root node of the hierarchy. In the ISCO case, the level of sub-major groups will have a xkos:depth of 2, whereas the level of unit groups will have a xkos:depth of 4. The unique level of a flat classification would have a xkos:depth of 1. In addition, a xkos:numberOfLevels property is defined for the classification schemes to document the number of levels they include: ISCO-08 would have an xkos:numberOfLevels of 4.

517 | 518 |

The levels of a classification scheme are organized as an rdf:List (implying order), starting with the most aggregated level. The skos:ConceptScheme representing the classification scheme points to the rdf:List of its xkos:ClassificationLevels with the xkos:levels property. 519 | Example 10.1 below gives a good representation of this construction.

520 | 521 |

Individual skos:Concept objects are related to the xkos:ClassificationLevel to which they belong by the usual skos:member property (going from the level to the classification item).

522 | 523 |

A classification level is often characterized by a generic name for the classification items that it regroups. The ISCO names "major groups" the items of the first level, "sub-major groups" the items of the second level, etc. The NACE uses the terms "sections", "divisions", "groups" and "classes"; the NAICS has "sectors", "subsectors", "groups", etc. This information can be rendered in XKOS by the property xkos:organizedBy that links the xkos:ClassificationLevel object to a skos:Concept representing the generic item for this level (e.g. the concept of an ISCO major group, of a NACE section, etc.).

524 | 525 |

Also, classification items of a given levels usually have a code (expressed by the skos:notation property) that conforms to a specific structure. For example, the NACE sections are identified by a capital letter between A and U; NACE divisions are identified by two-digits codes, etc. In order to capture this information, XKOS defines the xkos:notationPattern property. This property is attached to a classification level and should contain a regular expression refecting the code structure of the items of this level.

526 | 527 |
528 | 529 |
530 |

Correspondences and concept associations

531 |

Different classification schemes can cover the same field, or fields that are semantically related. This induces semantic relations between the classification items that belong to these schemes. A simple example of this is given by two successive major versions of a classification: some items may remain unchanged in the new version, but others will disappear, merge, be created, etc. More complicated n to m correspondences between items of the two versions are frequent.

532 | 533 |

A much more complex example of relations between classifications or classification schemes is given by the international system of economic classifications maintained by the United Nations Statistical Division. The European view of this system is well described in the online publication of the NACE Rev. 2 (chapter 1.1). The economic classifications forming this system are linked either by a common structure which is more and more detailed from international to European and then national levels, or by semantic correspondences between the economic fields covered: activities, products and goods (e.g. activities create products). Here again, the high-level links established between classifications result in more fine-grained correspondences between items: one defined activity will create one or more specific products.

534 | 535 |

Since classification items are represented as SKOS Concepts, we could use the usual SKOS associative properties to represent correspondences between them. However, this simple approach has some limitations:

536 |
    537 |
  • As mentioned above, relations between items in correspondences are often m to n, whereas SKOS properties relate one unique concept to another unique concept. It is always possible to decompose an m to n relation into several 1 to 1 relations, but it is better to have a global vision of a given correspondence. We also want to be able to represent 0 to n relations, for example when an item is created or disappears in a new version of a classification.
  • 538 |
  • More globally, we want to be able to group all the fine-grained item associations that compose a given high-level relation between two classification schemes, such as the ones that exist in the international system of economic classifications. Such a collection of item associations is called a correspondence or conversion table, or sometimes a concordance. Further synonyms are correlation table and mapping.
  • 539 |
  • Lastly, it is often useful to be able to attach additional information (for example notes) to items associations, for example to describe what proportion of the different items are linked in the association.
  • 540 |
541 | 542 |

For these reasons, XKOS defines the xkos:ConceptAssociation class that can be used to represent correspondences between classification items when the SKOS properties are not sufficient. Each xkos:ConceptAssociation may have input or source skos:Concept(s) and output or target skos:Concept(s). The complete collection of such associations for all the concepts in two SKOS Concept Schemes forms a correspondence and is expressed as an instance of the xkos:Correspondence class. The xkos:madeOf property is used to link the xkos:Correspondence to its xkos:ConceptAssociation components. The xkos:compares property may be used to link directly the xkos:Correspondence to the classification schemes that it puts in relation.

543 | 544 |

The following figures illustrate two examples of concept associations between classification items. Example 10.3 below gives a more complex real-life example.

545 | 546 | 547 | 548 |
Figure 3.1 – Association example – Item with no correspondence
Item with no correspondence
549 |

 

550 | 551 | 552 | 553 |
Figure 3.2 – Association example – m-n correspondence
m-n correspondence
554 | 555 |

The xkos:ConceptAssociation is similar to the Correspondence Item of the Neuchâtel model. However, the xkos:ConceptAssociation can describe the relationship of any number of source concepts to any number of target concepts rather than expressing the association through a set of pair-wise associations.

556 | 557 |

Well-defined classifications cover their field in a mutually exclusive way (cf. Section 5.4); hence it should be noted that the interpretation of relating multiple source or target concepts in a xkos:ConceptAssociation is the union of these concepts, since their intersection will be empty in mutually exclusive classifications.

558 | 559 |

As already mentioned, there are different types of correspondences between classifications, classification schemes or classification items:

560 |
    561 |
  • Between classification on the same field, for example North American and European activities classifications
  • 562 |
  • Between different linked fields, for example classifications of activities and products
  • 563 |
  • Historical correspondence, for example SIC ([[!SIC]]) to NAICS
  • 564 |
  • Versioning of items over time within a given classification scheme
  • 565 |
566 | 567 |

In this version, XKOS does not define any properties or sub-classes for xkos:Correspondence and xkos:ConceptAssociation in order to model these different types of correspondences. This may be added in a future version.

568 |
569 | 570 |
571 |

Documentation properties

572 |

Statistical classifications usually come with textual material that describe in detail the structure and use of the classification, the content of the different items, the past decisions taken on classifying field entities, etc. This material is organized in notes, called explanatory notes, that are attached to the various objects described above. XKOS defines the xkos:ExplanatoryNote class and a set of sub-properties of skos:scopeNote that correspond to a typology of explanatory notes which is widely used for statistical classifications.

573 | 574 |

In some circumstances, classification publishers desire to provide, in addition to the official labels, normalized fixed-length labels that can be used in situations where the labels length is constrained, for example in table headers. XKOS defines the xkos:maxLength property that can be used in combination with SKOS-XL xl:Label instances.

575 | 576 |
577 |

Additional labels

578 |

This section gives an example of how to define fixed-length labels while conforming to the SKOS integrity conditions.

579 | 580 |

Assuming that we want to define, for a given classification scheme, labels of maximum length of 40 characters to each item.

581 |

In all cases the skos:prefLabel property is used to express the full (official) label. For the additional fixed-length labels, skosxl:Label instances are created with the xkos:maxLength property indicating the maximum length of these additional labels. Two cases must be distinguished:

582 |
    583 |
  • If the additional label is different from the full label, the skosxl:Label is attached by a skosxl:altLabel property.
  • 584 |
  • If the additional label is equal to the full label, the skosxl:Label must be attached by a skosxl:prefLabel property in order to comply with the SKOS integrity rules about labels.
  • 585 |
586 |

The following figures illustrate these two cases.

587 | 588 | 589 | 590 | 591 | 592 |
Figure 4 – Labels of maximum length
Labels of maximum length
Labels of maximum length
593 |
594 | 595 |
596 |

Explanatory notes

597 |

Classifications require a range of specialized explanatory notes that indicate various types of descriptive properties used in defining the concept. Explanatory notes describing the content of a concept have three main forms. Central content is a description of those things known specifically to be included in the concept. Limit content expresses those things that were either identified at a later point to be included, clarify decisions based on specific cases, or are otherwise clarifications of "gray" areas. Finally, concepts are defined as a set of things they exclude. These are things that might appear to be included but have been associated with other concepts in the classification. Exclusion statements provide both the list of items and their appropriate concepts.

598 | 599 |

Moreover, the actual classification of an item in one position or another of a statistical classification is often decided after a debate between experts. For example, when a new product appears, it is necessary to study its characteristics in respect to the design principles of the classification in order to determine where the product will be classified. Those decisions and the reasoning behind them are recorded and attached to the relevant items of the classification in order to be referred to later on. These special kinds of explanatory notes are called "case law" notes.

600 | 601 |

For the description of classification items contents, XKOS extends the skos:scopeNote annotation property, which is a sub-property of skos:note, to define additional sub-properties needed to support the model described above. The sub-properties added to skos:scopeNote include an xkos:inclusionNote and xkos:exclusionNote. Additional sub-properties were added to xkos:inclusionNote to further define the type of inclusion specification using the sub-properties xkos:coreContentNote (to identify central content) and xkos:additionalContentNote. For the recording of case law notes, XKOS defines the xkos:caseLaw as a direct sub-property of skos:note.

602 | 603 |

In paper or electronic documents, the following labels are generally found : 604 |

    605 |
  • xkos:coreContentNote is generally labelled "This category includes", "This item includes", "This division includes", "Includes" or similar;
  • 606 |
  • xkos:additionalContentNote is generally labelled "This category includes also", "This item includes also", "This division includes also", "Includes also", or similar;
  • 607 |
  • xkos:exclusionNote is generally labelled "This category excludes", "This item excludes", "This division excludes", "Excludes" or similar;
  • 608 |
609 |

610 | 611 |

The values of SKOS and XKOS annotation properties can directly be textual literals. However, in most cases, it is desirable to attach more properties to the explanatory notes, in particular versioning and authoring information. In these cases, explanatory notes will themselves be resources. XKOS defines the xkos:ExplanatoryNote class so that all resources corresponding to explanatory notes can be typed in a standard manner.

612 | 613 | 614 | 615 | 616 |
Figure 5 – XKOS annotations
XKOS annotations
617 | 618 |

XKOS defines the property xkos:plainText on xkos:ExplanatoryNotes as a way to capture the raw content of the note (text without formatting markup). If needed, other properties can be defined to further describe the note, typically to store variants of the text including markup. The definition of these properties is outside the scope of XKOS.

619 | 620 |
621 |
622 | 623 |
624 |

Semantic properties

625 |

The semantic properties extend the possible relations that can be applied between pairs of concepts. SKOS allows the following relations: has broader, has narrower, and related to. The first two are hierarchical relations, one in each direction. However, terminologists recognize two main kinds of hierarchical relations: generic and partitive. IsPartof and hasPart are partitive; and specializes and generalizes are generic. In addition, several detailed associations, the related to relations, are provided: causal and sequential. Causal has two directions: causes and causedBy, and sequential has two directions: precedes or previous, and succeeds or next. Previous and next have the additional criterion that they are transitive relations. In addition, temporal is a kind of sequential relation, which is subdivided into before and after, in addition which are transitive. Two concepts are disjoint if no objects correspond to both concepts at once.

626 | 627 |

The management of classification structures requires further specification of a number of SKOS terms in order to describe very specific relationships. XKOS has chosen to address these as refinements of existing SKOS terms whenever possible in order to facilitate understanding among users of related domain areas:

628 |
    629 |
  • skos:broader and its inverse skos:narrower
  • 630 |
  • skos:related a refinement of several associative properties
  • 631 |
632 | 633 |
634 |

Hierarchical properties

635 | 636 |

The refinements of skos:broader and skos:narrower focus on the differentiating between the ideas of a generic relationship (generalized/specialized) and a partitive relationship (whole/part). These are important distinctions in many classification structures.

637 | 638 |

XKOS defines the following sub-type for skos:broader and skos:narrower

639 |
    640 |
  • xkos:specializes is a sub-property of skos:broader
  • 641 |
  • xkos:generalizes is a sub-property of skos:narrower
  • 642 |
643 |
644 | 				

The term Vehicle is a generalized description of which Car is a specialized type of Vehicle.

645 |
646 |
    647 |
  • xkos:isPartOf is a sub-property of skos:broader
  • 648 |
  • xkos:hasPart is a sub-property of skos:narrower
  • 649 |
650 |
651 | 				

The term Car has a part with the term SteeringWheel.

652 |
653 |

The Occupational Injury and Illness Classification System ([[!OIICS]]) offers more realistic examples. This classification defines four different schemes called Nature, Body part, Source and Event.

654 |

The idea is to classify each work related injury or illness which causes missed time at work with these four facets.

655 |

The Body Part facet scheme uses partitive relationships throughout:

656 |
657 | 				

1 Head
1.3 Face
1.3.3 Nose
1.3.3.4 Sinus(es)

658 |
659 |

These features are related through the part-whole relation.

660 |

The Nature facet scheme uses generic relationships throughout:

661 |
662 | 				

2 Diseases and Disorders of Body Systems
2.3 Circulatory System Diseases
2.3.3 Ischemic Heart Disease, including heart attack
2.3.3.1 Myocardial Infarction (heart attack)

663 |
664 |

These features are related through the specific-generic relation.

665 |

It should be noted [[ISOTHES]] also extends the SKOS hierarchical properties with equivalent notions. Thus, the following property equivalences are declared : 666 |

    667 |
  • xkos:generalizes is equivalent to iso-thes:narrowerGeneric
  • 668 |
  • xkos:specializes is equivalent to iso-thes:broaderGeneric
  • 669 |
  • xkos:hasPart is equivalent to iso-thes:narrowerPartitive
  • 670 |
  • xkos:isPartOf is equivalent to iso-thes:broaderPartitive
  • 671 |
672 |

673 |
674 | 675 |
676 |

Associative properties

677 | 678 |

XKOS provides several refinements to skos:related which define causal and sequential relationships. These refinements transpose the content of ISO standards on terminology, such as ISO 704:2009 ([[!ISO704]]) and ISO 1087-1:2000 ([[!ISO1087]]). These properties are initially separated into causal and sequential relationship types (xskos:causal and xkos:sequential) which are then further defined as shown in the diagram in Appendix A.

679 | 680 |

Causal relationships are either xkos:caused or xkos:causedBy.

681 | 682 |

Sequential relationships may be transitive or intransitive. When transitive the relationship is expressed by the pair xkos:precedes and xkos:succeeds. When not transitive the relationship is expressed by the pair xkos:previous and xkos:next.

683 | 684 |
685 |

Example of transitive and non-transitive sequential relationships

686 |

Consider the following sequence going left to right:

687 | 688 |

A → B → C → D → E

689 | 690 |

If a transitive relationship to C is being described, C precedes D and E (which succeed C) and succeeds A and B (which precede C). The relation implied by xkos:precedes is n-m and xkos:succeeds is n+m where m is an number >= 1.

691 |

If a non-transitive relationship needs to be expressed between C and D then C is previous in order to D and D is next in order C. The relation implied by xkos:previous is n-1 and xkos:next is n+1.

692 | 693 |

Temporal relationships are a specific type of sequential where one event or object is before or after another in terms of time. Temporal relationships are transitive and are expressed as xkos:before and xkos:after.

694 | 695 |

Note that a concept may have a temporal aspect that is not sequential in nature but simply an expression of the period for which it is applicable. This is expressed using dcterms:valid which provides the date range of validity.

696 |
697 |
698 |
699 | 700 |
701 |

Examples

702 |
703 |

Statistical classification (ANZSIC)

704 |

The following figure gives an example inspired by the ANZSIC (Australian and New Zealand Industry Classification [[!ANZSIC]]), which is a classification covering the field of economic activity. A small excerpt is shown here, limited to the classification object itself and its levels, as well as one item of the most detailed level (Class 6720 – Real Estate Services) and its parent items. Note that the URI employed in this example are entirely fictitious, since the ANZSIC has not yet been published as RDF.

705 | 706 | 707 | 708 |
Figure 6 – Statistical classification – ANZSIC
Classification example - ANZSIC
709 |

On the left of the figure is the skos:ConceptScheme instance that corresponds to the ANZIC 2006 classification scheme, with its various SKOS and Dublin Core properties. Additionnal XKOS properties indicate that the classification has four levels and covers the field of economic activity, represented here as a concept from the EuroVoc thesaurus. In this case, the coverage is intended to be exhaustive and without overlap, so xkos:coversExhaustively and xkos:coversMutuallyExclusively could have been used together instead of xkos:covers.

710 |

The four levels are instances of xkos:ClassificationLevel; they are organized as a rdf:List which is attached to the classification by the xkos:levels property. Some level information has been represented on the top level, for example its depth in the classification (xkos:depth) and the concept that characterizes the items it is composed of (xkos:organizedBy). In the same fashion, concepts of subdivision, group and class could be created to describe the items of the lower levels.

711 |

The usual SKOS properties are used to connect the classification items to their respective level (skos:member) and to the classification (skos:inScheme or its specialization skos:topConceptOf) for the items of the first level). Similarly, skos:narrower is used to express the hierarchical relations between the items, but the subproperties defined in this specification could also be used. For example, xkos:hasPart could express the partitive relation between subdivision 67 ("Property Operators and Real Estate Services") and group 672 ("Real Estate Services").

712 |

For clarity, the properties of the classification items (code, labels, notes) have not been included in the figure.

713 |
714 |
715 |

Fisheries – Simple hierarchy

716 |

This example shows the encoding of a simple set of three classification items found within the International Standard Statistical Classification of Aquatic Animals and Plants (ISSCAAP). A number of declarations are included for completeness that in reality would likely be grouped in a second common scheme to improve reusability, e.g. custom datatypes and classification families.

717 | 718 | 719 | 720 |
Figure 7 – Fisheries example – Simple hierarchy
Fisheries example - Simple hierarchy
721 | 722 |
723 | 				

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 724 | @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . 725 | @prefix skos: <http://www.w3.org/2004/02/skos/core#> . 726 | @prefix owl: <http://www.w3.org/2002/07/owl#> . 727 | @prefix xkos: <http://rdf-vocabulary.ddialliance.org/xkos#> . 728 | @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 729 | @prefix fi: <http://www.fao.org/fishery/ns#> . 730 | 731 | # Datatypes, used to type notations which are used for codes 732 | fi:ISSCAAPGroupCode a rdfs:Datatype ; 733 | rdfs:comment "ISSCAAP Group code" ; 734 | owl:onDatatype xsd:string ; 735 | owl:withRestrictions ( 736 | [ 737 | xsd:pattern "[0-9]{2,}" 738 | ] 739 | ) . 740 | 741 | fi:ISSCAAPDivisionCode a rdfs:Datatype ; 742 | rdfs:comment "ISSCAAP Division code" ; 743 | owl:onDatatype xsd:string ; 744 | owl:withRestrictions ( 745 | [ 746 | xsd:pattern "[0-9]{1,}" 747 | ] 748 | ) . 749 | 750 | fi:FAO3Alpha a rdfs:Datatype ; 751 | rdfs:comment "FAO 3-Alpha code" ; 752 | owl:onDatatype xsd:string ; 753 | owl:withRestrictions ( 754 | [ 755 | xsd:pattern "[A-Z]{3,}" 756 | ] 757 | ) . 758 | 759 | fi:FAOTaxonomicCode a rdfs:Datatype ; 760 | rdfs:comment "FAO Taxonomic code" ; 761 | owl:onDatatype xsd:string ; 762 | owl:withRestrictions ( 763 | [ 764 | xsd:pattern "[0-9]{10,}" 765 | ] 766 | ) . 767 | 768 | # This could probably be done using standards from the Darwin Core 769 | fi:FAOScientificName a rdfs:Datatype ; 770 | rdfs:comment "FAO Scientific name" ; 771 | owl:onDatatype xsd:string . 772 | 773 | # Create a concept for the family of classifications 774 | fi:AquaticAnimalsAndPlants a skos:Concept ; 775 | skos:prefLabel "Aquatic Animals and Plants Family of Classifications"@en . 776 | 777 | # Create a concept for the classification that is independent of the set of versions 778 | fi:ISSCAAP a skos:Concept ; 779 | skos:prefLabel "International Standard Statistical Classification of Aquatic Animals and Plants 2005"@en . 780 | 781 | # Generic classification levels that can be reused 782 | fi:ISSCAAP_Division a skos:Concept ; 783 | skos:prefLabel "ISSCAAP Division"@en . 784 | 785 | fi:ISSCAAP_Group a skos:Concept ; 786 | skos:prefLabel "ISSCAAP Group"@en . 787 | 788 | fi:ASFIS rdf:type skos:Concept ; 789 | skos:prefLabel "ASFIS"@en . 790 | 791 | # Classification levels for this particular classification scheme 792 | fi:ISSCAAP_L1 a xkos:ClassificationLevel ; 793 | xkos:organizedBy fi:ISSCAAP_Division 794 | xkos:coversMutuallyExclusively fi:AquaticAnimalsAndPlants ; 795 | xkos:depth 1 ; 796 | skos:member fi:ISSCAAP_3 . 797 | 798 | fi:ISSCAAP_L2 a xkos:ClassificationLevel ; 799 | xkos:organizedBy fi:ISSCAAP_Group ; 800 | xkos:coversMutuallyExclusively fi:AquaticAnimalsAndPlants ; 801 | xkos:depth 2 ; 802 | skos:member fi:ISSCAAP_32 . 803 | 804 | fi:ISSCAAP_L3 a xkos:ClassificationLevel ; 805 | xkos:organizedBy fi:ASFIS ; 806 | xkos:coversMutuallyExclusively fi:AquaticAnimalsAndPlants ; 807 | xkos:depth 3 ; 808 | skos:member fi:ASFIS_COD . 809 | 810 | # The classification scheme 811 | fi:ISSCAAP_2005 a skos:ConceptScheme; 812 | skos:prefLabel "International Standard Statistical Classification of Aquatic Animals and Plants 2005"@en ; 813 | xkos:belongsTo fi:ISSCAAP ; 814 | xkos:coversMutuallyExclusively fi:AquaticAnimalsAndPlants ; 815 | xkos:numberOfLevels 3 ; 816 | xkos:levels ( fi:ISSCAAP_L1 fi:ISSCAAP_L2 fi:ISSCAAP_L3 ) ; 817 | xkos:follows <http://www.fao.org/fishery/ns#ISSCAAP_2001> . 818 | 819 | fi:ASFIS_COD a skos:Concept ; 820 | skos:inScheme fi:ISSCAAP_2005 ; 821 | skos:prefLabel "Atlantic Cod"@en ; 822 | skos:prefLabel "Morue de l'Atlantique"@fr ; 823 | skos:prefLabel "Bacalao del Atlántico"@es ; 824 | skos:altLabel "Cod"@en ; 825 | skos:altLabel "Morue"@fr ; 826 | skos:altLabel "Bacalao"@es ; 827 | skos:notation "COD"^^fi:FAO3Alpha ; 828 | skos:notation "1480400202"^^fi:FAOTaxonomicCode ; 829 | skos:notation "Gadus morhua, Linnaeus 1758"^^fi:FAOScientificName ; 830 | xkos:specializes fi:ISSCAAP_32 . 831 | 832 | fi:ISSCAAP_32 a skos:Concept ; 833 | skos:inScheme fi:ISSCAAP_2005 ; 834 | skos:prefLabel "Cods, Hakes, Haddocks"@en ; 835 | skos:notation "32"^^fi:ISSCAAPGroupCode ; 836 | xkos:generalizes fi:ASFIS_COD . 837 | 838 | fi:ISSCAAP_3 a skos:Concept ; 839 | skos:inScheme fi:ISSCAAP_2005 ; 840 | skos:prefLabel "Marine Fishes"@en ; 841 | skos:notation "3"^^fi:ISSCAAPDivisionCode ; 842 | xkos:generalizes fi:ISSCAAP_32 . 843 |

844 |
845 |
846 |
847 |

Concept association

848 |

This example shows the use of the Correspondence and ConceptAssociation classes to create correspondences across two classification schemes; these might be different versions of one classification or two different classifications from the same family of classifications. in this example FAO Commodity List and the Central Product Classification V2.1 are used. It is only a fragment, and the actual classifications are not fleshed out as concepts. To see an example of that go to case 1.

849 | 850 | 851 | 852 |
Figure 8 – Concept association example
Concept association example
853 |
854 | 				

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 855 | @prefix owl: <http://www.w3.org/2002/07/owl#> . 856 | @prefix xkos: <http://rdf-vocabulary.ddialliance.org/xkos#> . 857 | @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 858 | @prefix skos: <http://www.w3.org/2004/02/skos/core#> . 859 | @prefix ess: <http://www.fao.org/ess/ns#> . 860 | @prefix cpc: <http://unstats.un.org/cpc21/ns#> . 861 | 862 | # A Correspondence is madeOf a set of ConceptAssociations 863 | ess:FCL2012_CPC2 rdf:type xkos:Correspondence; 864 | skos:prefLabel "Correspondence from FAO Commodity list to Central Product Classification"@en; 865 | xkos:madeOf ess:FCL2012_CPC2_1, ess:FCL2012_CPC2_2, ess:FCL2012_CPC2_3. 866 | 867 | # Each ConceptAssociation represents a mapping across two items 868 | # note that this association is 1:n 869 | ess:FCL2012_CPC2_1 rdf:type xkos:ConceptAssociation; 870 | xkos:sourceConcept ess:FCL0015; 871 | xkos:targetConcept cpc:CPC01111; 872 | xkos:targetConcept cpc:CPC01112. 873 | 874 | ess:FCL2012_CPC2_2 rdf:type xkos:ConceptAssociation; 875 | xkos:sourceConcept ess:FCL0027; 876 | xkos:targetConcept cpc:CPC01131; 877 | xkos:targetConcept cpc:CPC01131. 878 | 879 | # note that this association is n:m 880 | ess:FCL2012_CPC2_3 rdf:type xkos:ConceptAssociation; 881 | xkos:sourceConcept ess:FCL0056; 882 | xkos:sourceConcept ess:FCL0067; 883 | xkos:sourceConcept ess:FCL0068; 884 | xkos:targetConcept cpc:CPC01121; 885 | xkos:targetConcept cpc:CPC01122. 886 |

887 |
888 |
889 |
890 | 891 |
892 |

Overview of SKOS and XKOS semantic properties

893 |

The figure below gives a panoptical view of the semantic properties defined in SKOS and XKOS. Solid lines represent subsumption links, and dashed lines represent disjunction links.

894 | 895 | 896 | 897 |
Figure 9 – SKOS and XKOS properties
SKOS and XKOS properties
898 |
899 | 900 |
901 |

Acknowledgements

902 |

The authors would like to give special thanks to:

903 |
    904 |
  • Thomas Bosch (GESIS, Leibniz Institute for the Social Sciences, Germany), who did all the UML modeling work and realized the ANZSIC figure.
  • 905 |
  • Jannik Jensen (Danish Data Archive, Odense, Denmark), who participated in the first sub-team meetings on the XKOS vocabulary.
  • 906 |
907 |

Most of the work on XKOS was done during two workshops titled "Semantic Statistics for Social, Behavioural, and Economic Sciences: Leveraging the DDI Model for the Linked Data Web" and held at Schloss Dagstuhl - Leibniz Center for Informatics in Wadern, Germany, September 11-16, 2011 and October 14-19, 2012.

908 |

The workshops were organized by:

909 |
    910 |
  • Richard Cyganiak (DERI, National University of Ireland, Galway, Ireland)
  • 911 |
  • Arofan Gregory (Open Data Foundation, Tucson, USA)
  • 912 |
  • Wendy Thomas (Minnesota Population Center, University of Minnesota, USA)
  • 913 |
  • Joachim Wackerow (GESIS, Leibniz Institute for the Social Sciences, Germany)
  • 914 |
915 |

The authors of the paper would like to acknowledge the other participants to this workshop:

916 |
    917 |
  • Archana Bidargaddi (Norwegian Social Science Data Services, Bergen, Norway)
  • 918 |
  • Marcel Hebing (German Institute for Economic Research, Berlin, Germany)
  • 919 |
  • Benedikt Kämpgen (Karlsruhe Institute of Technology, Germany)
  • 920 |
  • Stefan Kramer (Cornell Institute for Social and Economic Research, Ithaca, USA)
  • 921 |
  • Amber Leahey (Ontario Council of University Libraries, University of Toronto, Canada)
  • 922 |
  • Olof Olsson (Swedish National Data Service, Göteborg, Sweden)
  • 923 |
  • Heiko Paulheim (Darmstadt Technical University, Germany)
  • 924 |
  • Abdul Rahim (Metadata Technology Inc., Washington, USA)
  • 925 |
  • John Shepherdson (UK Data Archive, University of Essex, United Kingdom)
  • 926 |
  • Humphrey Southall (Great Britain Historical Geographical Information System, University of Portsmouth, United Kingdom)
  • 927 |
  • Johanna Vompras (Bielefeld University Library, Germany)
  • 928 |
  • Benjamin Zapilko (GESIS, Leibniz Institute for the Social Sciences, Germany)
  • 929 |
  • Matthäus Zloch (GESIS, Leibniz Institute for the Social Sciences, Germany))
  • 930 |
931 |

The editor would like to thank the people who contributed during the public review, as well as the following persons who helped to integrate these contributions:

932 |
    933 |
  • Thomas Francart (Sparna, Tours, France)
  • 934 |
  • Guillaume Duffes (Insee, Paris, France)
  • 935 |
936 |

This document uses a modified version of ReSpec.

937 | 938 |
939 | 940 |
941 |

Full copyright

942 |

Copyright © 2014-2019 The DDI Alliance, All Rights Reserved
http://www.ddialliance.org/

943 |

Content of this document is licensed under a Creative Commons License:
Attribution 4.0 International (CC BY 4.0)

944 |

This is a human-readable summary of the Legal Code (the full license).
http://creativecommons.org/licenses/by/4.0/

945 |

You are free to:

946 |
    947 |
  • Share - copy and redistribute the material in any medium or format
  • 948 |
  • Remix - remix, transform, and build upon the material
  • 949 |
950 |

for any purpose, even commercially.

951 |

The licensor cannot revoke these freedoms as long as you follow the license terms.

952 |

Under the following terms:

953 |
    954 |
  • 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.
  • 955 |
  • No additional restrictions. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
  • 956 |
957 |
958 |

Disclaimer

959 |

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.

960 |

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.

961 |
962 |

Legal Code:
http://creativecommons.org/licenses/by/4.0/legalcode

963 |
964 | 965 |
966 |

Implementations

967 |

A list of XKOS implementations is given in the corresponding section of the XKOS homepage.

968 |
969 | 970 | 971 | -------------------------------------------------------------------------------- /xkos.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix owl: . 3 | @prefix xkos: . 4 | @prefix xml: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix skos: . 8 | @prefix skosxl: . 9 | @prefix dc: . 10 | @prefix dcterms: . 11 | @prefix voaf: . 12 | @prefix vann: . 13 | @prefix cc: . 14 | @prefix iso-thes: . 15 | 16 | ################################################################# 17 | # Ontology 18 | ################################################################# 19 | 20 | a owl:Ontology, voaf:Vocabulary ; 21 | dc:title "XKOS: an SKOS extension for representing statistical classifications"@en , "XKOS : une extension de SKOS pour la représentation des nomenclatures statistiques"@fr ; 22 | rdfs:comment "This ontology is based on work initiated at Dagstuhl Schloss in September 2011"@en ; 23 | rdfs:comment "Cette ontologie est basée sur le travail commencé à Dagstuhl Schloss en septembre 2011"@fr ; 24 | dc:contributor "Daniel Gillman", "Wendy L. Thomas", "Richard Cyganiak", "Jannik Jensen", "Thomas Bosch", "R.T.A.M. Grim", "Yves Jaques" ; 25 | dc:creator "Franck Cotton" ; 26 | voaf:extends ; 27 | vann:preferredNamespacePrefix "xkos" ; 28 | vann:preferredNamespaceUri ; 29 | dc:rights "Copyright © 2014-2019 The DDI Alliance" ; 30 | cc:license ; 31 | voaf:classNumber "4"^^xsd:integer ; 32 | voaf:propertyNumber "40"^^xsd:integer ; 33 | owl:versionInfo "Version 1.0.1 - 2014-11-26", "Version 1.0.2 - 2016-03-15", "Version 1.0.3 - 2016-03-15", "Version 1.1 - 2016-03-20", "Version 1.2 - 2019-05-01" . 34 | 35 | 36 | ################################################################# 37 | # Classes 38 | ################################################################# 39 | 40 | # A classification is a skos:ConceptScheme and a classification level is a skos:Collection 41 | # If the order of the items in the specific level is significant, this level can also be declared as an instance of skos:OrderedCollection 42 | 43 | xkos:ClassificationLevel a rdfs:Class, owl:Class ; 44 | rdfs:label "Classification level"@en, "Niveau de nomenclature"@fr ; 45 | rdfs:subClassOf skos:Collection ; 46 | rdfs:isDefinedBy . 47 | 48 | # The ConceptAssociation class generalizes the semantic relations modelled as properties in SKOS 49 | 50 | xkos:ConceptAssociation a rdfs:Class, owl:Class ; 51 | rdfs:label "Concept association"@en , "Association de concepts"@fr ; 52 | rdfs:isDefinedBy . 53 | 54 | # The Correspondence is used to group concept associations between two classifications (concordances, correspondence tables...) 55 | 56 | xkos:Correspondence a rdfs:Class, owl:Class ; 57 | rdfs:label "Correspondence"@en , "Correspondance"@fr ; 58 | rdfs:isDefinedBy . 59 | 60 | # The ExplanatoryNote class is used as a base class for all the annotations that qualify or describe the contents of the classification items 61 | 62 | xkos:ExplanatoryNote a rdfs:Class, owl:Class ; 63 | rdfs:label "Explanatory note"@en , "Note explicative"@fr ; 64 | rdfs:isDefinedBy . 65 | 66 | ################################################################# 67 | # Annotation properties 68 | ################################################################# 69 | 70 | # Sub-properties of skos:scopeNote used for explanatory notes of classifications 71 | 72 | xkos:inclusionNote a rdf:Property, owl:AnnotationProperty ; 73 | rdfs:label "inclusions"@en, "inclusions"@fr ; 74 | rdfs:subPropertyOf skos:scopeNote ; 75 | rdfs:isDefinedBy . 76 | 77 | xkos:coreContentNote a rdf:Property, owl:AnnotationProperty ; 78 | rdfs:label "core content"@en, "contenu central"@fr ; 79 | rdfs:subPropertyOf xkos:inclusionNote ; 80 | rdfs:isDefinedBy . 81 | 82 | xkos:additionalContentNote a rdf:Property, owl:AnnotationProperty ; 83 | rdfs:label "additional content"@en, "contenu limite"@fr ; 84 | rdfs:subPropertyOf xkos:inclusionNote ; 85 | rdfs:isDefinedBy . 86 | 87 | xkos:exclusionNote a rdf:Property, owl:AnnotationProperty ; 88 | rdfs:label "exclusions"@en, "exclusions"@fr ; 89 | rdfs:subPropertyOf skos:scopeNote ; 90 | rdfs:isDefinedBy . 91 | 92 | xkos:caseLaw a rdf:Property, owl:AnnotationProperty ; 93 | rdfs:label "case law"@en, "jurisprudence"@fr ; 94 | rdfs:subPropertyOf skos:note ; 95 | rdfs:isDefinedBy . 96 | 97 | # Simple text of an explanatory note 98 | 99 | xkos:plainText a rdf:Property, owl:AnnotationProperty ; 100 | rdfs:label "plain text"@en, "texte brut"@fr ; 101 | rdfs:domain xkos:ExplanatoryNote ; 102 | rdfs:range rdf:PlainLiteral ; 103 | rdfs:comment "This property is expected to store plain text literals, without HTML or XML markup."@en ; 104 | rdfs:isDefinedBy . 105 | 106 | ################################################################# 107 | # Data properties 108 | ################################################################# 109 | 110 | # Depth of a classification (number of hierarchically imbricated levels) ; 1 for a flat classification 111 | 112 | xkos:numberOfLevels a rdf:Property, owl:DatatypeProperty ; 113 | rdfs:label "number of levels"@en, "nombre de niveaux"@fr ; 114 | rdfs:domain skos:ConceptScheme ; 115 | rdfs:range xsd:positiveInteger ; 116 | rdfs:isDefinedBy . 117 | 118 | # Depth of a level inside a classification (1 for the highest level) 119 | 120 | xkos:depth a rdf:Property, owl:DatatypeProperty ; 121 | rdfs:label "depth"@en, "profondeur"@fr ; 122 | rdfs:domain xkos:ClassificationLevel ; 123 | rdfs:range xsd:positiveInteger ; 124 | rdfs:isDefinedBy . 125 | 126 | # Maximum number of characters for a label that is constrained in length 127 | 128 | xkos:maxLength a rdf:Property, owl:DatatypeProperty ; 129 | rdfs:label "maximum length"@en, "longueur maximale"@fr ; 130 | rdfs:domain skosxl:Label ; 131 | rdfs:range xsd:positiveInteger ; 132 | rdfs:isDefinedBy . 133 | 134 | # Structure (defined as a regular expression) of the item codes at a given level 135 | 136 | xkos:notationPattern a rdf:Property, owl:DatatypeProperty ; 137 | rdfs:label "code pattern"@en, "gabarit de code"@fr ; 138 | rdfs:domain xkos:ClassificationLevel ; 139 | rdfs:range xsd:string ; 140 | rdfs:isDefinedBy . 141 | 142 | ################################################################# 143 | # Object properties 144 | ################################################################# 145 | 146 | # List of the classification levels represented as an RDF list of ordered levels (instances of ClassificationLevel) 147 | 148 | xkos:levels a rdf:Property, owl:ObjectProperty ; 149 | rdfs:label "level list"@en, "liste des niveaux"@fr ; 150 | rdfs:domain skos:ConceptScheme ; 151 | rdfs:range rdf:List ; 152 | rdfs:isDefinedBy . 153 | 154 | # Property used to group concept associations in correspondences 155 | 156 | xkos:madeOf a rdf:Property, owl:ObjectProperty ; 157 | rdfs:label "made of"@en, "comprend"@fr ; 158 | rdfs:domain xkos:Correspondence ; 159 | rdfs:range xkos:ConceptAssociation ; 160 | rdfs:isDefinedBy . 161 | 162 | # Properties linking concepts to concepts associations 163 | 164 | xkos:sourceConcept a rdf:Property, owl:ObjectProperty ; 165 | rdfs:label "source concept"@en, "concept source"@fr ; 166 | rdfs:domain xkos:ConceptAssociation ; 167 | rdfs:range skos:Concept ; 168 | rdfs:isDefinedBy . 169 | 170 | xkos:targetConcept a rdf:Property, owl:ObjectProperty ; 171 | rdfs:label "target concept"@en, "concept cible"@fr ; 172 | rdfs:domain xkos:ConceptAssociation ; 173 | rdfs:range skos:Concept ; 174 | rdfs:isDefinedBy . 175 | 176 | # Property linking a correspondence to the major versions of classifications that it connects 177 | 178 | xkos:compares a rdf:Property, owl:ObjectProperty ; 179 | rdfs:label "compares"@en, "compare"@fr ; 180 | rdfs:domain xkos:Correspondence ; 181 | rdfs:range skos:ConceptScheme ; 182 | rdfs:isDefinedBy . 183 | 184 | # Properties linking major versions of classifications 185 | 186 | xkos:follows a rdf:Property, owl:ObjectProperty ; 187 | rdfs:label "follows"@en, "suit"@fr ; 188 | rdfs:domain skos:ConceptScheme ; 189 | rdfs:range skos:ConceptScheme ; 190 | rdfs:isDefinedBy . 191 | 192 | xkos:supersedes a rdf:Property, owl:ObjectProperty ; 193 | rdfs:label "supersedes"@en, "remplace"@fr ; 194 | rdfs:subPropertyOf xkos:follows ; 195 | skos:exactMatch dcterms:replaces ; 196 | rdfs:isDefinedBy . 197 | 198 | 199 | # Property connecting a classification scheme to its variant(s) 200 | 201 | xkos:variant a rdf:Property, owl:ObjectProperty ; 202 | rdfs:label "variant"@en, "variante"@fr ; 203 | rdfs:domain skos:ConceptScheme ; 204 | rdfs:range skos:ConceptScheme ; 205 | rdfs:isDefinedBy . 206 | 207 | # Property connecting a major version of a classification to a concept representing the overall classification 208 | 209 | xkos:belongsTo a rdf:Property, owl:ObjectProperty ; 210 | rdfs:label "belongs to"@en, "appartient à"@fr ; 211 | rdfs:domain skos:ConceptScheme ; 212 | # no explicit range on xkos:belongsTo is defined to allow other types to be used 213 | # rdfs:range skos:Concept ; 214 | rdfs:isDefinedBy . 215 | 216 | # Name (or nature, or type) of the items that constitute the level 217 | 218 | xkos:organizedBy a rdf:Property, owl:ObjectProperty ; 219 | rdfs:label "organized by"@en, "organisé en"@fr ; 220 | rdfs:domain xkos:ClassificationLevel ; 221 | rdfs:range skos:Concept ; 222 | rdfs:isDefinedBy . 223 | 224 | # Domain covered by the classification or its levels (eg. activities, products, etc.) 225 | 226 | xkos:covers a rdf:Property, owl:ObjectProperty ; 227 | rdfs:label "covers"@en, "couvre"@fr ; 228 | rdfs:domain [rdf:type owl:Class ; owl:unionOf (skos:ConceptScheme xkos:ClassificationLevel)] ; 229 | rdfs:range skos:Concept ; 230 | rdfs:isDefinedBy . 231 | 232 | # Domain covered by the classification (exhaustive coverage) 233 | 234 | xkos:coversExhaustively a rdf:Property, owl:ObjectProperty ; 235 | rdfs:label "covers exhaustively"@en, "couvre exhaustivement"@fr ; 236 | rdfs:subPropertyOf xkos:covers ; 237 | rdfs:isDefinedBy . 238 | 239 | # Domain covered by the classification (mutually exclusive coverage) 240 | 241 | xkos:coversMutuallyExclusively a rdf:Property, owl:ObjectProperty ; 242 | rdfs:label "covers mutually exclusively"@en, "couvre sans recouvrement"@fr ; 243 | rdfs:subPropertyOf xkos:covers ; 244 | rdfs:isDefinedBy . 245 | 246 | # Property linking a resource to a classification item it is classified under 247 | 248 | xkos:classifiedUnder a rdf:Property, owl:ObjectProperty ; 249 | rdfs:label "classified under"@en, "classé sous"@fr ; 250 | rdfs:domain rdfs:Resource ; 251 | rdfs:range skos:Concept ; 252 | rdfs:isDefinedBy . 253 | 254 | # Types of semantic relations from ISO 1087 : associative relations 255 | 256 | xkos:causal a rdf:Property, owl:ObjectProperty ; 257 | rdfs:label "has causal"@en, "en relation causale"@fr ; 258 | rdfs:subPropertyOf skos:related ; 259 | rdfs:isDefinedBy . 260 | 261 | xkos:causes a rdf:Property, owl:ObjectProperty ; 262 | rdfs:label "causes"@en, "est la cause de"@fr ; 263 | rdfs:subPropertyOf xkos:causal ; 264 | rdfs:isDefinedBy . 265 | 266 | xkos:causedBy a rdf:Property, owl:ObjectProperty ; 267 | rdfs:label "caused by"@en, "est causé par"@fr ; 268 | rdfs:subPropertyOf xkos:causal ; 269 | rdfs:isDefinedBy . 270 | 271 | xkos:sequential a rdf:Property, owl:ObjectProperty ; 272 | rdfs:label "has sequential"@en, "en relation séquentielle"@fr ; 273 | rdfs:subPropertyOf skos:related ; 274 | rdfs:isDefinedBy . 275 | 276 | xkos:precedes a rdf:Property, owl:TransitiveProperty ; 277 | rdfs:label "precedes"@en, "précède"@fr ; 278 | rdfs:comment "predecessor in the sequence"@en, "prédécesseur dans la séquence"@fr ; 279 | rdfs:subPropertyOf xkos:sequential ; 280 | rdfs:isDefinedBy . 281 | 282 | xkos:previous a rdf:Property, owl:ObjectProperty ; 283 | rdfs:label "previous"@en, "précédent"@fr ; 284 | rdfs:comment "immediate predecessor in the sequence"@en, "prédécesseur immédiat dans la séquence"@fr ; 285 | rdfs:subPropertyOf xkos:precedes ; 286 | rdfs:isDefinedBy . 287 | 288 | xkos:succeeds a rdf:Property, owl:TransitiveProperty ; 289 | rdfs:label "succeeds"@en, "succède à"@fr ; 290 | rdfs:comment "successor in the sequence"@en, "successeur dans la séquence" ; 291 | rdfs:subPropertyOf xkos:sequential ; 292 | rdfs:isDefinedBy . 293 | 294 | xkos:next a rdf:Property, owl:ObjectProperty ; 295 | rdfs:label "next"@en, "suivant"@fr ; 296 | rdfs:comment "immediate successor in the sequence"@en, "successeur immédiat dans la séquence" ; 297 | rdfs:subPropertyOf xkos:succeeds ; 298 | rdfs:isDefinedBy . 299 | 300 | xkos:temporal a rdf:Property, owl:ObjectProperty ; 301 | rdfs:label "has temporal"@en, "en relation temporelle"@fr ; 302 | rdfs:subPropertyOf xkos:sequential ; 303 | rdfs:isDefinedBy . 304 | 305 | xkos:before a rdf:Property, owl:TransitiveProperty ; 306 | rdfs:label "before"@en, "avant"@fr ; 307 | rdfs:subPropertyOf xkos:temporal ; 308 | rdfs:isDefinedBy . 309 | 310 | xkos:after a rdf:Property, owl:TransitiveProperty ; 311 | rdfs:label "after"@en, "après"@fr ; 312 | rdfs:subPropertyOf xkos:temporal ; 313 | rdfs:isDefinedBy . 314 | 315 | # Types of semantic relations from ISO 1087 : hierarchical relations 316 | # Partitive relations and generic/specific relations 317 | 318 | xkos:isPartOf a rdf:Property, owl:ObjectProperty ; 319 | rdfs:label "is a part of"@en, "est une partie de"@fr ; 320 | owl:inverseOf xkos:hasPart ; 321 | rdfs:subPropertyOf skos:broader ; 322 | skos:exactMatch dcterms:isPartOf ; 323 | owl:equivalentProperty iso-thes:broaderPartitive ; 324 | rdfs:isDefinedBy . 325 | 326 | xkos:hasPart a rdf:Property, owl:ObjectProperty ; 327 | rdfs:label "has part"@en, "a pour partie"@fr ; 328 | owl:inverseOf xkos:isPartOf ; 329 | rdfs:subPropertyOf skos:narrower ; 330 | skos:exactMatch dcterms:hasPart ; 331 | owl:equivalentProperty iso-thes:narrowerPartitive ; 332 | rdfs:isDefinedBy . 333 | 334 | xkos:specializes a rdf:Property, owl:ObjectProperty ; 335 | rdfs:label "specializes"@en, "spécialise"@fr ; 336 | owl:inverseOf xkos:generalizes ; 337 | rdfs:subPropertyOf skos:broader ; 338 | owl:equivalentProperty iso-thes:broaderGeneric ; 339 | rdfs:isDefinedBy . 340 | 341 | xkos:generalizes a rdf:Property, owl:ObjectProperty ; 342 | rdfs:label "generalizes"@en , "généralise"@fr ; 343 | owl:inverseOf xkos:specializes ; 344 | rdfs:subPropertyOf skos:narrower ; 345 | owl:equivalentProperty iso-thes:narrowerGeneric ; 346 | rdfs:isDefinedBy . 347 | 348 | # Types of relations for comparison purposes 349 | 350 | xkos:disjoint a rdf:Property, owl:ObjectProperty ; 351 | rdfs:label "disjoint from"@en, "disjoint de"@fr ; 352 | rdfs:subPropertyOf skos:related ; 353 | rdfs:isDefinedBy . --------------------------------------------------------------------------------