A l'occasion du dossier "Web de données et création de…
SKOS Play! générer des HTML, des PDF et des dataviz à partir d’un thesaurus SKOS
C’est avec plaisir que je présente une nouvelle application dans les Sparna-labs ! après les démos d’enrichissement de contenu, il s’agit cette fois-ci d’une véritable application : SKOS Play !
SKOS Play est un service gratuit de visualisation de thesaurus, taxonomies ou vocabulaires contrôlés au format SKOS. Il permet d’imprimer des systèmes d’organisation de connaissances dans des pages HTML ou des PDF, et de les visualiser dans des représentations graphiques grâce à d3js. SKOS Play a également une valeur pédagogique et illustrative en ce qui concerne les technologies du web de données.
SKOS Play s’inspire du SKOS Reader de Mondeca (big up, Gilles) qui avait cependant le désavantage de travailler au niveau du XML, étant de ce fait assez sensible aux variations de syntaxe du fichier.
Présentation de thesaurus
La présentation et la navigation efficace dans un thesaurus est un enjeu de maintenance de celui-ci et de communication. La récente norme ISO-25964 sur la représentation des thesaurus propose quelques façons de les représenter :
- par fiche de concept (la fiche entière du concept) (« single record display ») ;
- par index alphabétique (« Alphabetical display »);
- par hiérarchie (« Hiérarchical display »);
- par collectionset par facettes (« Classified display »), éventuellement en « vue étendue » (« Expanded classified display »);
- par tables de correspondance multilingues(« Correspondence tables for multilingual thesauri »);
SKOS Play utilise des requêtes SPARQL sur les données SKOS pour implémenter les vues hiérarchique, alphabétique, alphabétique étendue et hiérarchique étendue, ainsi que 2 visualisations tirées de d3js : le partition layout et le tree layout. SKOS Play s’inspire de ce que propose l’ISO 25964 mais son objectif n’est pas d’implémenter l’ensemble des préconisations de cette norme.
Thesaurus vs. ontologies formelles
SKOS (« Simple Knowledge Organization System ») est un modèle de données pour décrire des thesaurus, taxonomies, plans de classements, bref des systèmes d’organisation de connaissances au sens large. Ce modèle a l’avantage d’être simple et de représenter l’essentiel de la structure de ces système : une hiérarchie de « concepts », des liens de renvois transversaux, des libellés multilingues préférés et non-préférés, des définitions, etc.
Ces systèmes d’organisation de connaissances sont utiles pour la constitution de référentiels de vocabulaires dans les organisations. L’identification univoque de concepts, leur organisation hiérarchique, et leur nommage dans différentes langues, suffisent la plupart du temps constituer un référentiel utilisable pour des applications d’annotation (semi-)automatique de contenu, ou de recherches à facettes. L’utilisation des ontologies (OWL) ne se justifie que bien rarement, lorsque ce référentiel atteint une certaine taille et une certaine complexité, et lorsque certaines inférences sont nécessaires dans le systèmes.
Sous le capot
Comment fonctionne SKOS Play ?
- SKOS Play s’appuie sur OpenRDF Sesame pour parser et charger les données RDF; celles-ci peuvent venir soit d’un fichier qu’on uploade, soit d’un fichier sur le web, soit d’un des exemples préchargé dans l’application; à l’avenir il sera possible de « pointer » l’application vers un endpoint SPARQL public contenant les données à afficher;
- Les données sont exploitées par des requêtes SPARQL (SPARQL 1.1 plus exactement) pour constituer la structure de données à afficher, et deux cas se présentent :
- Pour les affichages alphabétiques ou hiérarchiques, la structure de données est sérialisée en XML, puis convertie en HTML ou en PDF en fonction du format choisi (la conversion en PDF utilise Apache FOP);
- Pour les dataviz avec d3js, la structure de données est sérialisée en JSON pour être affichée;
Intéressés ?
SKOS Play est gratuit, mais limité pour l’instant à 5000 concepts (ce qui fait déjà pas mal). Le code est open-source. La licence n’est pas restrictive et autorise les utilisations commerciales. C’est un pari d’ouverture et de coopération qui ne pourra se pérenniser que si vous en êtes un peu acteurs :
- en donnant vos retours et vos idées sur la page du Google Moderator; par exemple :
- en suggérant de bons jeux de données d’exemple;
- en suggérant des évolutions, des corrections de bugs;
- en suggérant de nouvelles visualisations de données;
- en me demandant de clarifier ce qui ne l’est pas;
- en faisant connaître le projet autour de vous, n’hésitez pas à en parler à des anglophones, l’application est bilingue français-anglais (en fonction de la langue du navigateur), en vous en servant dans des formations sur SKOS;
- en l’utilisant et en le réutilisant;
- en vous proposant pour héberger l’application si vous voulez être associés au projet (pour l’instant, elle tourne sur un mini-serveur fanless connecté à la freebox dans mon salon…);
Dans le futur ?
Sans doute des présentations de tableaux d’alignements de thesaurus, la génération de listes permutées, la récupération de données liées en suivant les URIs, d’autres visualisations, ou encore la connexion à des endpoints SPARQL. J’espère aussi, à partir de ce rendu « en bout de chaine », ajouter des composants en amont, comme la génération de SKOS à partir de templates excel, l’application de règles, ou le crawling de données liées pour constituer un thesaurus complet.
Next Post: Données Ouvertes et Entreprises Privées
Previous Post: Exemples de requêtes SPARQL sur le modèle SKOS