SKOS : un standard pour une ressource sémantique simple et FAIR

SKOS est un modèle de données pour représenter de manière standardisée des systèmes d’organisation des connaissances simples comme des vocabulaires contrôlés, thésaurus ou dictionnaires. SKOS est une recommandation du W3C depuis le 18 août 2009 et s’appuie sur le langage Resource Description Framework (RDF). RDF et SKOS font partie des standards recommandés pour représenter les vocabulaires de manière FAIR, découvrez pourquoi.

Vous trouverez également sur cette page une introduction à RDF, les éléments de base de SKOS, comment organiser les concepts avec SKOS et comment créer des alignements vers d’autres ressources.

En quoi SKOS contribue aux principes FAIR

La démarche FAIR se traduit par un ensemble d’actions et de choix touchant à la représentation des données, des identifiants et des métadonnées ainsi qu’aux moyens de les échanger. Les principes FAIR sont publiés par Wilkinson et al. en 2016 après un travail commun d’universitaires, d’industriels et d’éditeurs. Leur  intention est de donner des clés aux producteurs et gestionnaires de données pour améliorer la réutilisabilité des données. Les principes FAIR mettent un accent particulier sur l’amélioration de la capacité des machines à trouver et utiliser les données, en plus de favoriser leur réutilisation par les humains. Si les principes s’appliquent aux données, ils s’appliquent également aux thésaurus, vocabulaires contrôlés, terminologies, etc. Le principe I2 précise ainsi que “Les données et les métadonnées utilisent des vocabulaires qui respectent les principes FAIR.” 

Dans le tableau ci-dessous, nous montrons que le modèle SKOS pour représenter les vocabulaires est en accord avec les principes FAIR et en quoi son utilisation permet de mettre en œuvre certains de ces principes.

Principes FAIRRespect des principes avec SKOS
F1 Les données et les métadonnées sont identifiées par un identifiant global unique et pérenne. Les vocabulaires représentés en SKOS s’appuient sur RDF qui impose l’utilisation d’Uniform Resource Identifier (URI) pour identifier un concept ou un schème par exemple.
F3 Les données sont enregistrées et indexées dans un dispositif permettant de les rechercher.SKOS vous permet de publier et de rendre accessible votre vocabulaire sur des entrepôts tels qu’Agroportal ou Loterre qui acceptent ce standard.
A1 Les données et les métadonnées sont accessibles par leur identifiant via un protocole de communication standardisé.Grâce au mécanisme de déréférencement prévu par RDF, les informations contenues dans un vocabulaire en SKOS peuvent être accessibles via le protocole de communication standardisé http. RDF est également utilisable via des API.
I1 Les données et les métadonnées utilisent un langage formel, accessible, partagé et largement applicable pour la représentation des connaissances.Dédié à la représentation de connaissances,  SKOS est un modèle plutôt formel même s’il offre des possibilités limitées de raisonnement (ou inférence), largement connu et exploitable par un grand nombre d’applications qui traitent les données (ex : moteurs de recherche sémantique)
I2 Les données et les métadonnées utilisent des vocabulaires qui respectent les principes FAIR.Le modèle de données SKOS répond lui-même aux critères FAIR : ce modèle, développé par le W3C, est référencé, facilement accessible, documenté, il s’appuie sur le standard RDF, ses éléments sont identifiés de manière unique et pérenne.  
I3 Les données et les métadonnées incluent des liens vers d’autres (méta)données.Le modèle de données SKOS propose des propriétés pour créer des équivalences entre concepts issus de schèmes différents.
R1.3 Les données et les métadonnées correspondent aux standards des communautés indiquées.Des thésaurus (Agrovoc, GEMET…) très partagés sont représentés et accessibles suivant  le modèle de données SKOS. SKOS  est un standard promu et maintenu par le W3C.

Très courte introduction à RDF

RDF est un langage abstrait basé sur les graphes et est l’un des langages de base du Web sémantique. Un document écrit en RDF contient un ensemble de triplets (sujet, prédicat, objet). Cette façon de représenter les données est particulièrement intéressante lorsque les données sont fortement interconnectées. Le langage abstrait RDF est associé à plusieurs formats fondés sur des langages informatiques comme le XML. Nous pouvons citer plusieurs formats associés au RDF: Turtle, XML/RDF, JSON.

Le sujet représente la ressource à décrire, le prédicat représente une propriété applicable à cette ressource et l’objet représente la valeur de la propriété. Lorsque l’objet est un littéral, on parle de data property et quand il est une référence à une autre ressource RDF, on parle d’object property. Dans le monde du Web sémantique, les ressources (sujet ou objet) et les propriétés (prédicat) sont tous identifiés par des identifiants du web appelés Uniform Resource Identifier (URI). Par commodité, ces identifiants sont abrégés à l’aide d’un préfixe. Par exemple, pour http://www.w3.org/2004/02/skos/core#Concept, on indiquera skos:Concept

rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns#
skos = http://www.w3.org/2004/02/skos/core#
skosxl = http://www.w3.org/2008/05/skos-xl#

Exemples de préfixes et noms de domaines

Les éléments de base du modèle SKOS

Les exemples présentés dans cette page sont extraits du Thésaurus INRAE. Les illustrations ont été produite avec VocBench et GraphDB.

Représentation en SKOS des concepts "pois" et "Pisum sativum" dans le Thésaurus INRAE - Vue en graphe dans l'éditeur VocBench

Les concepts

Le modèle de données (ou ontologie) SKOS a pour ressources centrales les concepts définis par la classe skos:Concept. Les concepts peuvent représenter des notions abstraites ou des réalités concrètes. 

Chaque concept est identifiable par un URI, par exemple http://opendata.inrae.fr/thesaurusINRAE/c_25383 (Trifolium). L’URI reste inchangé même si la définition ou les termes représentant le concept sont modifiés. En RDF, on déclare une instance de concept SKOS de la manière suivante :

http://opendata.inrae.fr/thesaurusINRAE/c_25383 rdf:type  skos:Concept

Le modèle de données SKOS propose un ensemble de propriétés que l’on peut utiliser pour décrire les concepts d’un système simple d’organisation des connaissances, typiquement un thésaurus. Pour comprendre la signification d’un concept, il faut lui associer au moins un terme le désignant et idéalement une définition en langue naturelle.

Les termes

Les termes (ou labels) désignent le concept. Ils peuvent être déclinés en plusieurs langues et leur relation avec le concept définit leur statut :
  • la propriété skos:prefLabel associe au concept un terme préférentiel, aussi appelé descripteur, dans une langue donnée (ex: Trifolium). Un concept ne peut avoir qu’un terme préférentiel par langue. 
  • la propriété skos:altLabel associe au concept un terme alternatif, aussi appelé non-descripteur, qui peut être un synonyme du terme préférentiel, son abréviation, etc. (ex: trèfle; trefoil). Cette propriété peut être répétée pour indiquer plusieurs synonymes. Il peut y en avoir plusieurs pour une même langue. 
  • la propriété skos:hiddenLabel associe au concept un terme « caché » par exemple un terme mal orthographié ou désuet.
Les termes d’un concept SKOS seront déclarés de la manière suivante :

http://opendata.inrae.fr/thesaurusINRAE/c_25383
     skos:prefLabel « Trifolium »@fr, « Trifolium »@en ;
     skos:altLabel « trèfle »@fr,  « trefoil »@en, « clover »@en;
     skos:hiddenLabel « trefle »@fr .

Lorsque cela est utile, l’extension SKOS-XL fournit la possibilité d’identifier, décrire et lier les termes de la ressource. Une classe spéciale appelée skosxl:Label, est introduite pour identifier les termes par des URI indépendamment des concepts auxquels ils sont associés.

Les notes

Les notes sont des propriétés SKOS qui servent à documenter le concept. En voici deux particulièrement utiles pour définir le concept et contextualiser son utilisation :

  • la propriété skos:definition associe au concept une définition textuelle pour fixer son interprétation, notamment dans le cadre d’une expression ou d’un terme polysémique. Il est recommandé de toujours définir un concept à l’aide d’une définition car un terme ne suffit pas à définir un concept. La langue de la définition peut être spécifiée. Le nombre de définitions n’est pas limité.
  • la propriété skos:scopeNote associe au concept un texte décrivant des recommandations d’usage. La langue du texte peut être spécifiée.

Les autres notes sont skos:changeNote, skos:editorialNote, skos:example et skos:historyNote

Une définition de concept est déclarée de la manière suivante :

http://opendata.inrae.fr/thesaurusINRAE/c_25383
    skos:definition  « Plante cultivée pour l’alimentation animale et utilisée comme fourrage dans la création de prairie. Le trèfle peut être consommé déshydraté. »@fr.

Organiser un vocabulaire avec SKOS

Le modèle SKOS permet aussi d’organiser les concepts les uns par rapports aux autres par des liens hiérarchiques ou associatifs :

  • la propriété skos:broader associe au concept un concept parent ou générique (lien hiérarchique ascendant)
  • la propriété skos:narrower associe au concept un concept fils ou spécifique (lien hiérarchique descendant)
  • la propriété skos:related associe au concept  un concept voisin (lien d’association)

Les relations d’un concept avec son générique et avec ses spécifiques sont déclarées de la manière suivante :

http://opendata.inrae.fr/thesaurusINRAE/c_25383
    skos:broader http://opendata.inrae.fr/thesaurusINRAE/c_25220;
    skos:narrower http://opendata.inrae.fr/thesaurusINRAE/c_25249, http://opendata.inrae.fr/thesaurusINRAE/c_24908.

SKOS permet également de regrouper les concepts dans des ensembles :

  • la propriété skos:inScheme associe au concept le schème  auquel il appartient. Le schème peut être la ressource dans son ensemble (par exemple le thésaurus)  ou des sous-parties (par exemple, des micro-thésaurus). Des schèmes peuvent donc être imbriqués.
  • la propriété skos:topConceptOf et son inverse skos:hasTopConcept indiquent qu’un concept est placé au premier niveau du schème auquel il est associé.

L’inscription d’un concept au sein d’un schème est déclarée de la manière suivante (Pois appartient au Thésaurus INRAE) :

http://opendata.inrae.fr/thesaurusINRAE/c_25383
   skos:inScheme http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE.

Quand le concept est placé « à la racine », i.e. qu’il n’a pas de concept générique, il faut le déclarer comme « top concept » (ex: Plantae est à la racine du Thésaurus INRAE) :

http://opendata.inrae.fr/thesaurusINRAE/c_23972
     skos:topConceptOf  http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE .
http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE
     skos:hasTopConcept http://opendata.inrae.fr/thesaurusINRAE/c_23972 ;

Un autre type d’ensemble existe, il s’agit de skos:Collection que nous n’abordons pas dans ce tutoriel.

Créer des alignements entre vocabulaires

Les alignements permettent de mettre en correspondance des concepts issus de schèmes différents, ce mécanisme contribuant à l’interopérabilité des systèmes ou données utilisant respectivement ces ressources.

  • la propriété skos:exactmatch associe au concept un concept d’un schème différent en indiquant  que les deux concepts sont équivalents. Ils peuvent être remplacés l’un par l’autre.
  • la propriété skos:closeMatch associe au concept un concept d’un schème différent en précisant que les deux concepts sont proches sémantiquement sans être équivalents.
  • les propriétés skos:narrowMatch et skos:broadMatch associent au concept un concept d’un schème différent en précisant qu’il est plus spécifique (narrow) ou plus générique (broad) 

L’alignement exact d’un concept avec celui d’un autre vocabulaire (ici French Crop Usage et MeSH) est déclaré de la manière suivante :

http://opendata.inrae.fr/thesaurusINRAE/c_25383
    skos:exactMatch http://ontology.inrae.fr/frenchcropusage/Trefles, http://id.nlm.nih.gov/mesh/D029921;

Retour en haut