Dessiner des ontologies, visualiser des graphes : quels outils ?

Dessiner des ontologies, visualiser des graphes : quels outils ?

Un récent fil de discussion sur la mailing-list public-lod demandait quels étaient les bons « Graphic softwares for creating drawings and diagrams in cross-sectoral scientific papers » (sic), ce qui m’a donné envie de compiler les différents outils cités en réponse, mais aussi d’autres qui n’ont pas été cités et que j’utilise ponctuellement. Dans le métier d’ingénieur de la connaissance et du travail sur la data, il est indispensable de savoir non seulement concevoir mais aussi expliquer et transmettre la structure d’un modèle de données ou d’un graphe, et rien de mieux qu’une représentation visuelle pour cela.

Il y a deux grandes catégories d’outils : les outils d’authoring, en phase de conception d’ontologie et pour pouvoir communiquer sur un modèle de données, et des outils de visualisation qui permettent de voir des graphes RDF ou des modèles déjà constitués.

Dessiner/concevoir des ontologies

Powerpoint / Google slides

Je suis un utilisateur de Linux et Ubuntu est mon environnement de travail quotidien. Et pourtant… j’ai quand même une machine virtuelle Windows juste pour utiliser la suite Office et en particulier Powerpoint; je n’ai jamais réussi à être efficace et à créer des diagrammes jolis avec LibreOffice, et il faut dire que le côté quasi universel des documents Office permet de les échanger facilement avec les clients, de les montrer en présentation, et de les intégrer rapidement dans d’autres documents (Word). C’est avec Powerpoint que j’ai par exemple dessiné les diagrammes du profil d’application de l’ISSN, de l’ontologie ELI-DL (ELI for Draft Legislation), ou de l’ontologie ScolomFR. J’aime bien en particulier le formalisme de présentation de ELI-DL : 1 planche d’explication, 1 diagramme, 1 planche d’explication, 1 diagramme, etc. cela permet de « scenariser » la présentation du modèle de façon pédagogique. Le gros défaut en terme de saisie, et c’est tout bête, c’est qu’on ne peut pas associer un libellé à un connecteur… on bouge le connecteur, il faut bouger le libellé avec…

Dans la même veine, Google Slides ajoute la dimension collaborative en temps réel.

Bien sûr, les diagrammes produits ne sont que des images, et n’ont pas de vrais structures de graphe, avec possibilité de faire une mise en page automatique ou un export en SVG par exemple.

Yed et Yed-live

Bernard Chabot, grand Ontologiste et Architecte de la Connaissance (on se croirait dans une loge maçonnique), m’avait plusieurs fois fait la promotion de Yed, un outil de dessin de graphe. C’est un open-source, java, qui existe depuis looooongtemps dans le paysage. Yed qui est une application de bureau a son pendant en ligne, yed-live. C’est avec ces outils que Bernard dessine par exemple les diagrammes de son article »dicho-scope » sur les grands axes de construction d’un modèle sémantique (auquel on ajouterait peut-être la distinction intention vs. extension, mais c’est un autre sujet), ou encore les diagrammes du modèle E2M pour la modélisation de réseaux d’acteurs (oui, un FOAF béton avec une approche ingéniérie de la connaissance).

J’avais utilisé Yed-live et ce que j’avais trouvé vraiment bien ce sont les fonctions de regroupement des noeuds, de layout automatique (et temps réel !), et (mais je n’était pas allé jusque là), la possibilité d’avoir sa propre palette d’objets. Après, attention, l’éditeur est en ligne mais ce n’est pas collaboratif. Ca permet toutefois d’enregistrer son graphe dans un cloud ou par exemple dans un Gist github, et de pouvoir ensuite l’échanger via un partage d’URL.

YeD-E2M_Chabot

Extrait d’une plache du modèle E2M par Bernard Chabot, modélisée avec YeD

diagrams.net

Le fil de discussion mentionne diagrams.net, qui a l’air d’être une solution d’édition de graphes online et open-source. Comme Yed-live, s’intègre avec Google Drive ou Github ou Dropbox pour le stockage. Pas besoin de login, et on est dans un look and feel très proche des applications Google. Ca a l’air très sympa et puissant !

Omnigraffle ou LucidCharts (solutions payantes)

On mentionne également Omnigraffle (pour Mac seulement), qui n’a pas l’air tout jeune, et LucidCharts, 2 solutions de dessins de diagrammes et de graphes, mais cette fois-ci commerciales. La présentation corporate de LucidCharts nous apprend qu’on peut (si je comprends bien) venir injecter des données de sources externes (tableur, etc.) dans un modèle de diagramme; intéressant.

Visualiser des ontologies ou des graphes

Plantuml

C’est sur le fil de discussion mentionné plus haut que je découvre PlantUML, un outil qui dessine tout plein de diagrammes UML (mais pas que, aussi des Mind Map ou des Wireframes), à partir d’un bout de texte ! Par exemple, si on écrit

Object <|-- ArrayList

Object : equals()
ArrayList : Object[] elementData
ArrayList : size()

On obtient

Du coup, vous voyez le truc : ce bout de texte, on peut imaginer de le générer… à partir de RDF pour une visualisation de graphe, ou à partir de SHACL pour générer diagramme de classes UML. Et c’est Vladimir Alexiev d’Ontotext qui a cette idée dans son projet « rdfpuml » qui génère des graphes PlantUML à partir de fichiers Turtle (voir ces tweets). Effectivement, si on dessine des graphes à partir de RDF, on doit pouvoir dessiner des diagrammes de classes UML à partir de Shapes… (ce qu’on ne peut pas bien faire à partir d’ontologies OWL, qui, je le rappelle, ne définissent pas des modèles de données fermés mais des domaines de connaissances ouverts). Une idée de fonctionnalité pour SHACL Play !

PlantUML me parait très prometteur pour automatiser cette génération de diagrammes (mais moins pour les éditer à la main).

D3

On ne présente plus D3js, bibliothèque Javascript de dataviz au sens large. Elle est intégrée dans les visualisations de SKOS Play pour visualiser des hiérarchies de thesaurus en SKOS. On est donc là-aussi sur un outil de rendu de graphe ou de données.

Gephi + sigmajs

J’avais présenté la solution Gephi et son export en sigmajs dans un autre billet. Là aussi, on est sur un outil de rendering de graphe, avec la possibilité de manipuler de gros graphes de données et d’éditer le rendu avec des algorithmes très puissant. Mais ce n’est pas un outil d’authoring des données. A l’époque (2015) le plugin d’import RDF me semblait légèrement instable et pas trop mis à jour. Continue-t-il à être maintenu et Gephi est-il toujours une solution viable pour générer des vues de graphes RDF ?

WebVOWL

Dans le registre des solutions de visualisations automatiques, Il ne faut pas oublier WebVOWL qui propose une visualisations de tous les axiomes OWL. Le résultat n’est franchement pas simple à lire, mais a l’avantage d’être quelque chose de très différent des diagrammes de classes UML, et vraiment fait pour la représentation graphique d’ontologies. WebVOLW est intégré à Widoco, un utilitaire de génération de documentation automatiques d’ontologies OWL, que je vous recommende (le successeur de LODE, qui l’intégre d’ailleurs).

Plugins Protégé

Pour être tout à fait complet sur la partie visualisation d’ontologies on ne peut pas passer sous silence les plugins de visualisation intégrés dans Protégé.

 

Bel été, et n’hésitez pas à poster vos plus beaux diagrammes d’ontologies :-) !

 

Illustration de l’article : https://www.slideshare.net/Jean_Rohmer/de-lia-au-calcul-littraire-pourquoi-jai-zapp-le-web-smantique/17 « Réseau Sémantique et Logique du XVIeme siècle dans la cathédrale de Grenade modélisant la Sainte Trinité », Jean Rohmer, dans la présentation « De l’IA au Calcul Littéraire: Pourquoi j’ai zappé le Web Sémantique« avec l’aimable autorisation de Jean Rohmer. « Pater non est Filius », « Pater non est Spiritus Sanctus », « Filius non est Spiritus Sanctus », « Deus est Pater », « Deus est Filius », « Deus est Spiritus Sanctus »

 

Next Post:
Previous Post:
There are 14 comments for this article
  1. Gabriel Kepeklian at 16 h 19 min

    Bonjour Thomas, le sujet est important et intéressant. J’ajoute deux liens vers d’autres outils que j’aime bien. Une ontologie étant un graphe, et les outils de visu de graphe sont bons à utiliser :)
    http://fr.lodlive.it/
    https://log.disit.org/service/
    J’aime bien webVOWL. Je regrette juste qu’il faille le relancer quand on change d’ontologie pour être sûr qu’il la lit bien. Surtout quand il est utilisé depuis Protégé.

  2. Florence Amardeilh at 17 h 16 min

    Hello la communauté ! Merci Thomas pour ce beau recap des outils d’édition et de visualisation de graphes :) Pour m’a part j’ai toujours été une grande fan de Yed pour sa facilité d’utilisation et sa souplesse. Comme il génère des données en XML, je me suis toujours demandée si on ne pouvait pas générer un petit script à partir de ce format pour générer automatiquement le RDF du graphe ainsi dessiné…
    Mais depuis qq mois j’ai testé Diagrams.net et j’avoue que le mode collaboratif est top pour dessiner les modèles à plusieurs et s’intègre parfaitement en tant que fichier dans GDrive ce qui n’est pas négligeable pour ne pas s’éparpiller.
    My 2 cents 😉 A +

    • Thomas Francart Author at 11 h 17 min

      Merci Christophe, j’ai ajouté quelques entrées à votre « Codex » (SKOS Play, Vocbench), c’est cool, mais impossible d’ajouter à la volée une nouvelle entrée dans le champ « Company ». A+

    • Thomas Francart Author at 11 h 47 min

      Certainly, this is not off-topic, thank you Armando ! Which technology / library do you integrate in VocBench to draw the class diagram ?
      Thanks

  3. Armando Stellato at 12 h 47 min

    Hi Thomas!

    Glad I was not :)

    It was D3.js. It takes time but once mastered it offers a big range of possibilities… at least my UI guys say so, but it’s also what I concluded when I performed the initial investigation for deciding ehich technology to use. Another challenge was integrating it with Angular, but we were obviously not the first ones to do it so.. a few more reading and it went smooth :)

Répondre à Florence Amardeilh Cancel comment reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>