En cette fin de semestre et dans le cadre de l'UV IC05 (à UTC), je vous présente la première version publique du projet sur lequel j'ai travaillé : IRCParser (actuellement beta1).
Il s'agit d'un logiciel visant à convertir des logs IRC (sous différents formats), en données graphiques, exploitables en EDA.
Grâce à ce logiciel, il est par exemple facile de retrouver les liens entre les différents channels d'un même serveur, mais aussi d'obtenir des graphiques sur les activités (horaires et journalières) des utilisateurs, des channels, et du serveur. Les exports se font pour le moment au format GDF pour les graphes, au format PNG pour les graphiques. Le module de log en entrée est pour l'instant compatible avec le format de log d'#instantbird (module Perl pour mozbot pas encore publié car pas prêt) et du client IRC irssi (avec options par défaut).
Chaque noeud représente une personne, et on colore les personnes selon le channel dans lequel elle est le plus active. Un arc entre deux personne signifie que ces personnes ont parlé ensemble (déterminé par heuristique), ainsi on peut observer les "liaisons" entre différents channels.
Tout comme il existe NaviCrawler pour cartographier le web, il semblait intéressant d'avoir le même genre d'outils pour cartographier les relations entre les utilisateurs d'IRC, c'est de là qu'est venue l'idée.
Le format GDF a le mérite d'être simple à comprendre, bien que vite limité, il est lisible grâce au logiciel Gephi. Il est prévu d'améliorer le module de génération de graphes afin de pouvoir exporter dans les formats GraphML (Standard, lisible par la plupart des logiciels de graphe), ainsi que format Gephi qui offre des possibilités intéressantes.
Le programme a été écrit en Perl, qui offre de nombreuses facilités pour le traitement de données textuelles, il est donc compatible avec Windows, GNU/Linux et Mac, sous réserve d'avoir installé les bonnes bibliothèques (un article détaillant la procédure sur windows viendra). IRCParser est actuellement toujours instable, en version beta, je vous incite fortement à lire le fichier README pour découvrir des fonctionnalités (telles que la fusion de pseudos), qui ne sont pas décrites dans cet article.
L'architecture modulaire rend très simple l'ajout de modules (support de nouveaux formats de logs, ajout de traitements donnant des fichiers en sortie, ...).
Vous pouvez télécharger les dernières sources sur le dépôt Mercurial : https://hg.bezut.info/IRCParser/, ou bien sur mon site de projets : http://dev.bezut.info/p8/IRCParser.
De nombreuses améliorations sont envisagées, il manque juste le temps pour les réaliser, mais ça viendra. Vous pouvez également télécharger un exemple de log (tirés d'#instantbird), ainsi que les slides de la présentation.
End of the semester, and here is a project done in the UV IC05. I present the first public version of the project I worked on: IRCParser (beta1 now). It is a simple software which aim is to convert IRC logs (in various formats) into graphical data, usable in EDA.
Thanks to this software, it is for example easy to draw links between several channels in a common IRC Network, but also easy to get charts on user, channel and server activity. Exports are for now in GDF for graphs and PNG for charts. The Input modules can handle Irssi log format, and an other format (the one used on #instantbird), which is part of a mozbot Module (and not ready yet for release).
Each node represents a people, and we add color to people depending on in which channel the people is the most active. An edge between two people means that these people have already talked together, thus we can see "links" between the different channels.
There is already NaviCrawler to map the web, and it seemed interesting to have the same kind of tool to map relationship between people on IRC, that is where is idea come from.
The GDF Format is very simple to understand - even if limited -, it is readable with Gephi. It is planned to enhance the Graph generation module to handle GraphML (Standard) and Gephi format as well, which has many interesting features.
This program was written in Perl, which is very convenient for text parsing. As a result it is compatible with Windows, GNU/Linux and Mac (if you have installed the correct libraries). IRCParser is still instable, in beta right now, I advise you to read the README file if you want more information on some features (as for nick merging).
This program is also very Modular, so that it is very easy to add Modules (handle new log format, adding some filters to draw new charts, ...).
You can download the last sources on the Mercurial repository: https://hg.bezut.info/IRCParser/, or the current version on my projects website: http://dev.bezut.info/p8/IRCParser.
Several enhancements are planed, but I just have not enough time to do them all in the near future, but it surely will come later. You can download a log example (from #instantbird), and the slides of my presentation.
Posté par Romain le 8 Janvier 2010 à 14h44
Aucun commentaire n'a encore été déposé.
Les commentaires ne fonctionneront pas pour des raisons d'anti-spam sur les navigateurs non graphiques (sauf si vous avez du bol).
Twitter...
