URL: https://linuxfr.org/news/sortie-de-graphstream-10 Title: Sortie de GraphStream 1.0 Authors: Guilhelm Savin Date: 2011年05月25日T12:23:47+02:00 License: CC By-SA Tags: sciences, graphes, sig, modèle, réseau et visualisation Score: 30 GraphStream, la bibliothèque logicielle en Java de manipulation de graphes dynamiques, est disponible en version 1.0, après plusieurs années de développement. GraphStream est née de la fusion de diverses parties logicielles développées au fil des ans par les membres de l’équipe [RI2C](http://litis.univ-lehavre.fr/ri2c/) (Réseaux d’Interactions et Intelligence Collective) du [[LITIS]], le _Laboratoire d’Informatique du Traitement de l’Information et des Systèmes_. Ce projet est né du besoin de manipuler, analyser et visualiser la dynamique des réseaux d’interactions. Le but du projet est de fournir une bibliothèque logicielle répondant à ces besoins, sans fournir le logiciel final. ---- [Site de GraphStream](http://graphstream-project.org) [Vidéo de présentation de GraphStream 1.0](http://www.youtube.com/watch?v=XX5rRF6uxow) [GraphStream sur GitHub](https://github.com/graphstream) [Équipe RI2C du LITIS](http://litis.univ-lehavre.fr/ri2c/) [Théorie des graphe sur Wikipédia](http://fr.wikipedia.org/wiki/Th%C3%A9orie_des_graphes) ---- Nouvelle architecture =============== Quelques versions mineures de GraphStream ont permis de mieux évaluer les besoins liés à la dynamique, et d’aboutir à une nouvelle architecture, avec la version 1.0, basée sur des *sources* et des *puits*. Les sources sont des objets émetteurs d’événements liés à des modifications dans la structure d’un graphe ou dans l’évolution des attributs du graphes, ainsi que des éléments qui le composent (nœuds ou arcs). Les puits, quant à eux, sont des objets capables de manipuler les événements produits par une source. On trouvera aussi des *tunnels*, qui sont des objets étant à la fois une source et un puits, comme par exemple un serveur mandataire (_proxy_) entre deux _« threads »_, ou encore un serveur mandataire `RMI` permettant de diffuser des événements entre plusieurs machines. Le projet est divisé en plusieurs modules dont les principaux sont : * **`gs-core`**, contenant la base de GraphStream et permettant de modéliser, lire, écrire et afficher un graphe ; * **`gs-algo`**, composé de différents algorithmes, ainsi que des générateurs de graphes ; * **`gs-ui`**, qui permet un affichage avancé de graphes, en offrant un nouvel afficheur écrit en Scala ; * **`gs-tool`**, un ensemble d’outils. Lecture / écriture dans des fichiers ==================================== Les lecteurs de fichiers sont considérés comme des sources d’événements. Les principaux formats supportés sont : - **`DGS`**, _Dynamic Graph Stream_, le format de GraphStream ; - **`DOT`**, le format de [[GraphViz]] ; - **`GML`**, _[[Graph Modelling Language]]_. Les objets permettant l’écriture dans des fichiers sont des puits. Les principaux formats supportés sont : * **`DGS`** ; * **`DOT`** ; * **`GML`** ; * **`PGF/TikZ`**, un format intégrable dans des documents [[LaTeX]] ; * **`SVG`**, [[_Scalable Vector Graphics_]], format XML bien connu ; * **`Images`**, qui permet de produire une séquence d’images du graphe, afin de créer une vidéo. ![Un rendu de graphe avec couleurs et tailles aléatoires](http://graphstream-project.org/media/data/rendu-graphstream-color_and_size.png) Générateurs et algorithmes ==================== Le module `« gs-algo »` propose un certain nombre de générateurs et d’algorithmes. Les générateurs permettent de produire un graphe de manière algorithmique. On trouvera par exemple le générateur par attachement préférentiel de Barabasi-Albert, les graphes à distribution de degrés en loi de puissance de Dorogovtsev-Mendès, ou encore des grilles... GraphStream propose un nombre grandissant d’algorithmes classiques ou plus récents sur les graphes, dont certains sont adaptés à la dynamique. On trouve en particulier des algorithmes de plus court chemin, tels que A*, Dijkstra ou APSP, des algorithmes d’arbre couvrant (Kruskal, Prim), des mesures (centroïde, excentricité, centralité d’intermédiarité), etc.. Affichage des graphes ================ Le cœur de GraphStream permet un affichage simple d’un graphe, la zone de rendu pouvant être utilisée dans une interface de plus haut niveau par la suite. Le module **`gs-ui`** fournit un rendu plus performant, avec une interface écrite en Scala. La personnalisation de l’affichage du graphe est réalisée au travers d’une feuille de style respectant la syntaxe [[CSS]], qui permet de définir le style des éléments `graph`, `node`, `edge` et `sprite`, ainsi que la couleur, la forme, la taille, etc.. Un module expérimental, **`gs-geography`**, permet de produire un graphe à partir d’un fichier de formes ([[_shapefile_]]) utilisé dans les [[SIG]] (Systèmes d’Information Géographique). ![Exemple de graphe produit à partir du shapefile de la ville du Havre](http://graphstream-project.org/media/data/leHavreStep6__.png) Le code du projet GraphStream est distribué sous une double licence [[LGPLv3]] / [CeCILL-C](http://www.cecill.info/licences.fr.html) et est hébergé sur GitHub.

AltStyle によって変換されたページ (->オリジナル) /