Caliper - Statistical Classifications in a Linked Open World

Learn about the data models used to express statistical classifications in Caliper

Classifications' modelling at a glance

Each classification’s version is an SKOS Concept Scheme, while classifications’ items are skos:Concept. The hierarchical backbone of the classifications is given by the SKOS broader and narrower properties. Any piece of information about items (such as labels, codes, definitions etc.) is rendered using properties from SKOS, or other RDF vocabularies. Correspondences are rendered using SKOS and XKOS. Classification's metadata is expressed using constructs from SKOS, DC and DCT. 

Below, a summary of the treatment of classifications’ elements in RDF terms:

 

Classification's elementsSKOS elements
Classificationskos:ConceptScheme
(identified by a URI = unique http:// identifier, non-local ID)
Item skos:Concept
(identified by a URI = unique http:// identifier, non-local ID)
Codeskos:notation
(its subject is a skos:Concept)
Item namesskos:prefLabel
(its subject is a skos:Concept; with language tag)
Explanatory noteskos:scopeNote
(its subject is a skos:Concept; with language tag)
Definitionskos:Definition
(its subject is a skos:Concept; with language tag)
Hierarchy: item A is more general than item B URI_A skos:broader URI_B
(subject and object are skos:Concept)
Hierarchy: B is more specific than AURI_B skos:narrower URI_A
(subject and object are skos:Concept)
1-1 correspondence between A, BURI_A skos:exactMatch URI_B
(subject and object are skos:Concept)
1-n, n-1, n-n correspondencesskos:closeMatch
(subject and object are skos:Concept)


Classifications versioning

Each classification’s versions is an SKOS “concept scheme”, expressed by the triple:

<https://stats.fao.org/classifications/ICC/v1.1/scheme> rdf:type skos:ConceptScheme

Therefore, the versioning number is clearly indicated in the resource URI, and also by means of dedicated properties, such as:

<https://stats.fao.org/classifications/ICC/v1.1/scheme> owl:versionInfo "1.1"

Hierarchical structure

The hierarchical structure of a classification  is rendered using the SKOS broader and narrower properties (skos:broader, skos:narrower). Thanks to these constructs, stating that item_A is the parent to item_B is as simple as stating a triple like the following:

item_A skos:broader item_B

Note that in real life "item_A" is an URI.

 

Hierarchical levels

Hierarchical levels are represented as SKOS collections, having as members all items at the same level, and as preferred label the name used in the specific classification (e.g. in CPC v2.1: Section, Division, Group, Class, Subclass). Collections have associated a “depth” property defined in XKOS to define the generality of the level (depth 1 to most generic).

Correspondences between items

Correspondences (aka alignments) between items from different classifications are expressed using the SKOS properties skos:exactMatch and skos:closeMatch properties.

In addition to that, XKOS provides specific constructs to express correspondences between classifications.


Classifications’ items

All classifications’ items are RDF resources of type skos:Concept. Items are typically specified by the following properties:

belonging to the ConceptScheme, with the related Concept properties (notation for the code/identifier, prefLabel in English for the label/name/description, prefLabels in other languages for the translations, altLabel for alternative names, definition for term definitions, scopeNote for administrative/ editorial annotations).

Skos:inScheme
Skos:TopConceptOf (optional)

Skos:broader, skos:narrower
Skos:definition (optional)
Skos:scopeNote (optional)
skos:prefLabel = for the name of the classification, multiple languages allowed
skos:notation = acronym – needed for processing purposes
skos:historyNote = for a narrative of the history of the classification
skos:note for the disclaimer.
dc:publisher
dcat:mediaType
dct:conformsTo
dct:description
dct:source
dct:tile
owl:versionInfo
skos:hasTopConcept
dc:creator
dct:creator
owl:version = for the RDF serialization version,
skos:numberOfLevels

Specific groups of items.

Flat subsets with no hierarchy: they’re represented as SKOS Collections belonging to the original scheme. (SKOS collections are conceived indeed to represent subsets, but only flat ones, as they do not support hierarchies well.)
To link collections to a specific scheme, we use the SKOS inScheme property. The property skos:member links to all concepts belonging to the collection. URI patterns: collections have the same base URI of the scheme.

Follows the general model described above. One concept scheme only.

Follows the general model described above. One concept scheme only.

CPC v2.1 is rendered as two two concept schemes. One scheme is to model the “core” of CPC 2.1, namely the items published in the main body of the CPC handbook, and follows the general model described above. The second scheme is dedicated to the extension of CPC focusing on agriculture and strictly corresponding to the Appendix of the handbook. Therefore this second scheme includes all new items not appearing in the main classification, plus the entire tree “above them” (these are part of the core). New items, belonging only to the expansion, are also grouped in a dedicated skos:collection. Another collection is dedicated to the items relevant to fisheries (i.e., used by the FAO Fishery division). 

URI patterns:

Classifications’ levels are rendered as  skos:Collection, named according to the official naming adopted in CPC v.21: Section, Division, Group, Class, Subclass. Each of these collection has a property xkos:depth to define the sequence from Section, the most generic with depth 1, to Subclass, the most specific with depth 5.

Follows the general model described above. One concept scheme only.

Follows the general model described above. One concept scheme only.

The general approach followed to create URIs is to take the item's code as local part of the URI. In the case of ICC v1.1, since codes contain "dots" (".") they are replaced with "hyphens" ("-"). Compare:

Item code: "3.05.01"; Item label (@en): "Apples "

Concept URI: https://stats.fao.org/classifications/ICC/v1.1/3-05-01

The reason was to avoid conflicts with applications' assumption of URIs resolution.

Follows the general model described above. One concept scheme only.

Follows the general model described above. One concept scheme only.

It follows the general model described above, with the use of an extra vocabulary, the Darwin Core (DWC, http://rs.tdwg.org/dwc/terms/). From DWC, we use two properties: 

  1. dwc:scientificName (to represent the scientific name of the crop, also represented as SKOS altLabel). 
  2. To do this, we declare each concept also as a DwC Taxon, which is not completely correct: the crop is not a DWC identifier (a sample) nor precisely a taxon (some crops are defined by more than one scientific name, so correspond to more than one taxon). Besides, the taxonomic level is not the same for all crops (most are species, some are varieties, some cultivars). For the moment, we just use the generic class Taxon and its property scientificName.]

Items are given two statements with rdf:type:
URI rdf:type skos:Concept
URI rdf:type dwc:Taxon 

Concepts' URI take as local part the English name of the item, as in https://stats.fao.org/classifications/WCA2020/crops/Banana 

Scientific names are rendered as skos:prefLabel, dwc:scientificName (with language tag "Latin")
Common names are rendered as skos:altLabel, dwc:vernacularName (with language tag "English")
a code (skos:notation) has been introduced for uniformity with the other classifications included in Caliper.