I. Introduction▲
SKOS, pour Simple Knowledge Organization System (système d'organisation de connaissances simples), est une norme W3C basée sur d'autres normes du Web sémantique (RDF et OWL), qui fournit une façon de représenter des vocabulaires contrôlés, des taxonomies et des thésaurus. Spécifiquement, SKOS lui-même est une ontologie OWL et peut être écrit dans n'importe quelle syntaxe RDF (Turtle, XML, etc.).
II. Différences entre vocabulaire contrôlé, taxonomie et thésaurus▲
Avant d'aller plus loin dans SKOS, il faut connaître la différence entre un vocabulaire contrôlé, une taxonomie et un thésaurus.
II-A. Vocabulaire contrôlé▲
Un vocabulaire contrôlé est une liste de termes convenus par une communauté ou une organisation. Par exemple, les jours de la semaine ou les mois de l'année sont des termes que tout le monde utilise sans ambiguïté, ils forment donc un vocabulaire contrôlé.
II-B. Taxonomie▲
Une taxonomie est un vocabulaire contrôlé organisé comme une hiérarchie. Par exemple, on peut avoir les termes « véhicule », « voiture » et « moto ». Les concepts moto et voiture sont des sous-classes de véhicule, car une voiture et une moto sont des types de véhicules.
II-C. Thésaurus▲
Un thésaurus est une taxonomie avec plus d'informations à propos de chaque concept incluant les termes alternatifs et préférés (« animals » en anglais ou « animaux » en français). De plus, un thésaurus peut contenir des liens vers des concepts connexes. Par exemple, les concepts « animaux » et « forêt » ont plusieurs types de liens. La plupart des sites de commerce utilisent des taxonomies et des thésaurus pour aider les utilisateurs dans leurs recherches.
III. SKOS et OWL▲
Juste pour clarifier la chose, OWL est un langage pour créer une ontologie, alors que SKOS est lui-même une ontologie générée en OWL afin d'ajouter des vocabulaires contrôlés, des taxonomies et des thésaurus. Néanmoins, un thésaurus SKOS peut parfaitement être couplé avec des ontologies OWL, ou même converti en OWL. Il peut y avoir beaucoup de confusions si les deux sont combinés. Par exemple, « skos:exactMatch » peut être utilisé à la place de « owl:sameAs ».
IV. Un exemple simple▲
Les concepts sont identifiés par des URI. Considérons un exemple simple : créer un système d'organisation de connaissance à propos des animaux. Le concept principal est « Animaux », qui est représenté de la façon suivante :
ex
:
Animaux rdf
:
type skos
:
Concept .
Nous pouvons ajouter des labels à nos concepts. Il y a deux types de labels :
- les « preferred labels » (skos:prefLabel) ;
- les « alternative labels » (skos:altLabel).
Notez qu'un concept peut seulement avoir un « preferred label » par langue, mais il peut avoir plusieurs « alternative labels ». Voyons ça dans un petit exemple :
ex
:
Animaux rdf
:
type skos
:
Concept ;
skos
:
prefLabel "animals"
@en
;
skos
:
altLabel "creatures"
@en
;
skos
:
prefLabel "animaux"
@fr
;
skos
:
altLabel "créatures"
@fr
.
Maintenant nous pouvons ajouter des liens sémantiques. SKOS vous offre : « hierarchical » (hiérarchique), « associative » (associatif) et « mapping relationships » (association de relations). Les relations hiérarchiques sont « skos:broader » et « skos:narrower ». Par exemple, le concept « Animaux » est plus large que le concept « Mammifères » :
ex
:
Mammiferes rdf
:
type skos
:
Concept ;
skos
:
prefLabel "mammifères"
@fr
;
skos
:
prefLabel "mammals"
@en
;
skos
:
broader ex
:
Animaux .
Également, le concept « Mammifères » est plus étroit que le concept « Animaux » :
ex
:
Animaux rdf
:
type skos
:
Concept ;
skos
:
prefLabel "animals"
@en
;
skos
:
altLabel "creatures"
@en
;
skos
:
prefLabel "animaux"
@fr
;
skos
:
altLabel "créatures"
@fr
;
skos
:
narrower ex
:
Mammiferes .
SKOS possède une relation associative, « skos:related », qui est utilisée pour affirmer un lien entre deux concepts. Par exemple, le concept « Animaux » est lié au concept « Oiseaux » :
ex
:
Animaux rdf
:
type skos
:
Concept ;
skos
:
prefLabel "animals"
@en
;
skos
:
altLabel "creatures"
@en
;
skos
:
prefLabel "animaux"
@fr
;
skos
:
altLabel "créatures"
@fr
;
skos
:
broader ex
:
Mammiferes ;
skos
:
related ex
:
Oiseaux .
SKOS possède deux relations d'association, « skos:closeMatch » et « skos:exactMatch », qui vous permettent de représenter une association entre différents concepts. « skos:closeMatch » indique que deux concepts sont suffisamment similaires et que les deux peuvent être utilisés de façon interchangeable, néanmoins, ce n'est pas transitif. Par exemple, nous pouvons dire que les concepts « Volatiles » et « Oiseaux » sont étroitement liés :
ex
:
Oiseaux rdf
:
type skos
:
Concept ;
skos
:
prefLabel "oiseaux"
@fr
;
skos
:
closeMatch ex
:
Volatiles .
Enfin, « skos:exactMatch » représente un niveau de similarité plus élevé puisque les deux concepts reliés ont le même sens. Cette relation, contrairement à la précédente, est transitive. Par exemple, admettons qu'il existe un autre thésaurus SKOS identifié par « ex2 » contenant le concept « Birds », nous pouvons les lier :
ex
:
Oiseaux rdf
:
type skos
:
Concept ;
skos
:
prefLabel "oiseaux"
@fr
;
skos
:
closeMatch ex
:
Volatiles ;
skos
:
exactMatch ex2
:
Birds .
V. Conclusion▲
Nous avons vu une introduction à SKOS afin que vous puissiez voir son intérêt et surtout faire la différence avec OWL. Ainsi maintenant vous ne devriez plus faire de confusions entre les deux. Néanmoins, ce tutoriel n'est pas exhaustif quant aux possibilités offertes par SKOS. Il s'agit d'un minimum et je vous renvoie vers la norme W3C pour en apprendre davantage.
VI. Remerciements▲
Merci à Yoan Chabot pour ses petits conseils de rédaction ainsi qu'à Didier Mouronval et Claude Leloup pour leur relecture orthographique.