Fork me on GitHub
SKOS Play : présentation

Qu'est-ce que "SKOS Play" ?

SKOS Play est un service de visualisation de thesaurus, taxonomies ou vocabulaires au format SKOS.

Plus généralement il permet de visualiser ou imprimer un système d'organisation de connaissances exprimé en SKOS, et de démontrer certains principes du web de données

SKOS Play permet également de générer des fichiers SKOS à partir de tableaux Excel.

A quoi ça sert ?

L'utilisation est gratuite ?

Oui.

C'est open-source ?

Oui, le code est récupérable ici. SKOS-Play a pour le moment une licence CC-BY-SA, en d'autres termes :

Enfin, contactez-moi si tout ça n'est pas clair.
Cette licence pourra évoluer à l'avenir.

SKOS Play garde-t-il une copie des données soumises ?

Non.

Qui a développé SKOS Play ?

Thomas Francart pour Sparna.

Quelles sont les licences des données d'exemple incluses ?

Suggérez d'autres données.

J'ai une question, j'aimerais avoir la fonctionalité XYZ, ou j'aimerais contribuer.

Chouette !



SKOS

Qu'est-ce que SKOS ?

SKOS est un modèle de données partagé pour échanger et relier des systèmes d'organisation de connaissances sur le Web. Ce modèle est défini par le W3C ici.

Où trouver des données SKOS ?

Ici

Comment écrire un fichier SKOS ?

Le plus direct est d'utiliser le générateur de fichiers SKOS à partir de Excel fourni par SKOS Play.

Essayez Tematres (open-source), Ginco (open-source). Il existe également des outils commerciaux (mais c'est plus char !).
Sinon vous pouvez simplement écrire à la main ou générer un fichier de cette forme, l'enregistrer avec l'extension *.ttl, en faisant attention que l'encodage du fichier soit UTF-8, et voilà :

# declarer cette entete en haut du fichier
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
# modifier ce prefixe avec votre espace de nom
@prefix chezmoi: <http://www.exemple.fr/> .

# declarer un concept scheme qui represente votre thesaurus, une seule fois en haut du fichier
chezmoi:MonThesaurus a skos:ConceptScheme .
chezmoi:MonThesaurus skos:prefLabel "Le nom de mon thesaurus"@fr .

# ensuite declarer des concepts. En voila un
chezmoi:Vehicule a skos:Concept .
# pour chaque concept il faut dire qu'il fait partie du thesaurus
chezmoi:Vehicule skos:inScheme chezmoi:MonThesaurus .
# et il faut declarer son libellés préférentiel (celui qui sera affiché)
chezmoi:Vehicule skos:prefLabel "Vehicules"@fr .

# voila un deuxieme concept
chezmoi:Voiture a skos:Concept .
chezmoi:Voiture skos:inScheme chezmoi:MonThesaurus .
chezmoi:Voiture skos:prefLabel "Voiture"@fr .
# ca c'est un libellé alternatif, on peut en mettre plusieurs en repetant cette ligne
chezmoi:Voiture skos:altLabel "Bagnole"@fr .
# et la on declare que "Voiture" est un concept plus specifique que chezmoi:Vehicule
chezmoi:Voiture skos:broader chezmoi:Vehicule .

# voila un troisieme concept
chezmoi:123456 a skos:Concept .
chezmoi:123456 skos:inScheme chezmoi:MonThesaurus .
chezmoi:123456 skos:prefLabel "Vélo"@fr .
chezmoi:123456 skos:altLabel "Bicyclette"@fr .
chezmoi:123456 skos:altLabel "Biclou"@fr .
chezmoi:123456 skos:broader chezmoi:Vehicule .
					



SKOS Play : fonctionnement

Comment fonctionne SKOS Play ?

SKOS Play est basé sur Eclipse RDF4J. Les visualisations de données sont faites avec d3js, les PDF avec Apache FOP. La génération des rendus est faite avec des requêtes SPARQL.
Schématiquement, il y a 4 niveaux logiques dans l'application :

  1. Le chargement/traitement du RDF avec RDF4J;
  2. Les requêtes spécifiques au modèle de données SKOS (voir l'algo de parcours d'arbre plus bas);
  3. La transformation des données SKOS en structure "imprimable" en utilisant JAXB, puis de cette structure en HTML ou PDF avec des XSLT;
  4. Le code des écrans de l'application, servlets, JSP & JSPL, Jquery, Bootstrap.

Comment est générée la structure d'arbre à partir du SKOS ?

Bonne question. Le modèle SKOS est lâche et des données SKOS peuvent se structurer de plusieurs façons, il faut donc faire des choix.

Une partie de l'algorithme suivi par SKOS Play repose sur l'interprétation de Collections comme des ThesaurusArray. Un ThesaurusArray est une Collection qui a explicitement ce type, ou dont on trouve qu'elle ne contient que des Concepts qui ont le même parent, ou que des Concepts qui n'ont pas de parent.

Voici l'algorithme qui est suivi par SKOS Play :

Quelles sont les langues supportées ?

Cela dépend des données : la liste des langues possibles est récupérée dans les données.

Quels sont les syntaxes RDF supportées ?

Toutes celles supportées par RDF4J, donc RDF/XML, Turtle, N3, N-triples, TriG, TriX...

Combien de concepts SKOS Play peut-il traiter ?

Pour le moment, SKOS Play accepte un maximum de 5000 concepts.
En théorie, il n'y a pas de limite, mais de façon pratique, pour les rendus liste de concepts, alphabétique et hiérarchique, j'éviterais d'envoyer plus de 5000 concepts pour ne pas avoir des fichiers de sortie énormes. Pour les visualisations, je dirais pas plus de 2000 concepts, sinon on ne voit plus rien.

Est-ce que SKOS-XL est supporté ?

Oui ! il y a une option lors de la génération pour lire les libellés en SKOS-XL. Décochez l'option si vous voulez gagner un peu de temps.

Est-ce qu'il y a un service web, une API ? est-ce ça fait le café ?

Non. Non. Mais parlez-en sur le forum pour exprimer votre intérêt et cela existera peut-être un jour.