Certaines grandes entreprises s’intéressent à la cartographie de concepts… sujet qui commence à être à la mode apparemment mais reste en pratique bien souvent du domaine du gadget avec une tendance à l’évolution vers un outil de travail sophistiqué pour analystes professionnels de l’information (mais l’intérêt pratique et la praticité elle-même restent à démontrer). Toujours est-il que pour en savoir plus, outre les liens que j’avais déjà mentionnés, il peut être bon d’aller faire un tour du côté des outils froids du Web, qui consacre un « billet » récent à ce sujet.
Et puis, tant que j’y suis, je vous mets ci-joint des joujoux personnels. L’image ci-dessous est un exemple de cartographie 2D, sans légende, d’un graphe (de concepts, de carottes, de choux, de triplets, de ce que vous voulez…). Les « montagnes » (zones claires) indiquent des régions du graphe qui sont fortement connectées les unes aux autres. Les « vallées » (zones foncées) indiquent des ensembles de liens qui établissent des ponts entre des paquets de noeuds denses mais distants les uns des autres. Cette image est produite par un logiciel que j’ai développé (il y a longtemps) sous Delphi. Le graphe est spécifié sous la forme d’une base de données Paradox (une table pour décrire les noeuds, une autre pour les liens). Et le fonctionnement du logiciel est le suivant : à partir d’un graphe, il produit une cartographie 2D et permet de localiser chaque noeud du graphe sur cette cartographie par un simple survol de votre souris. En effet, lorsque vous déplacez votre souris sur la carto 2D, dans l’interface du logiciel, celui-ci vous indique quels sont les noeuds présents dans la région que vous survolez.
Seul problème : le logiciel n’est pas packagé ; donc pour le faire fonctionner, il faut installer le Borland Database Engine et configurer un alias de base de données dont je ne me souviens plus ; en pratique cela signifie qu’on ne peut le faire fonctionner que si on a Delphi et qu’on sait regarder le source sous Delphi pour configurer DBE comme il faut. Donc je vous prie de trouver le source de ce logiciel intitulé « visurezo » dans le ZIP ci-joint, le tout distribué sous licence GPL.
L’algorithme que j’avais inventé et implémenté dans ce logiciel est connu ailleurs sous le terme de représentation en « treemap ». Cette idée de treemap a été également inventée par ailleurs par d’autres que moi (implémenté notamment dans le très utile utilitaire Sequoiaview). Il s’appuie également sur une implémentation non orthodoxe d’un algorithme classique de lissage elliptique. Le tout agrémenté d’un calcul de densité de frontières, avec un peu d’astuce, d’espièglerie (c’est la vie de … ?). Je résume l’algorithme général : à partir d’un graphe quelconque, on le cartographie en 2D par une treemap, on représente la densité de frontière entre unités élémentaires de la treemap, on applique un lissage elliptique et hop, le tour est joué on obtient une carte 3D projeté sur 2D et représentant les paquets denses de noeuds du graphe. Vous pigez ? Non, c’est pas grave… Ca m’a fait plaisir d’étaler ma pseudo-science. :)
Donc si cette description et l’image à côté vous intéresse, si vous avez une version de Delphi sous la main et que vous avez envie d’en savoir plus, n’hésitez pas à me contacter pour des informations supplémentaires, si besoin. Et faites-moi savoir si jamais vous arrivez à faire tourner le bidule, ça me fera plaisir !
Ping : AkaSig » Items for a wishlist
Ping : AkaSig » Visualizing social networks
Pour en savoir plus sur les algorithms de lissage, voir ce chapitre de la doc de Mathematica.
Et cette page de référence sur les filtres de Kalman (Kalman filter), qui me donnent l’impression d’être une version beaucoup plus complète et aboutis que les bidouilles que je connaissais sur le lissage elliptique.