Graphing IRC channels

In my last blog entry I talked about graphing the informal office social network. Using the social hack I could find out how the news propagated in the grapevine network. We can draw similar kind of graphs using public chat rooms such as IRC channels. We can use this to derive relationships between people. I was looking for doing something similar to my last experiment using IRC channels.

But to graph the relationships between people on IRC channels you need to write a bot which does this. IRC protocol is very simple and easy to implement. There are quite a few opensource bots out there which could be modified to fit. Luckily I found a IRC bot called PieSky which was written in java which does exactly this. It can infer relationships between people using the IRC conversations. Piesky has some nifty features which makes it really good for this purpose such as:

1. It draws an internal graph depending on who is talking to whom on IRC.
2. It has built in visualization tool for graphing these relationships (which is customizable)
3. It has some heuristics for temporal decay.

I registered the nick social-bot using nickserv on irc.freenode.net. After that I choose 3 channels to monitor for this experiment – #gentoo – A linux distribution channel, #python and #perl – both open source programming languages, ##linux-india – an IRC channel where linux enthusiasts hang out. I ran Piesky for about 12 hours on these channels. Piesky generates graphs for every dialogue between participants of an IRC channel. So make sure that you run this on a reasonably powerful machine if you are going to try this on a very active channel. Piesky has built-in temporal decay for relationships, so that relationships fade out when people stop talking – just as in real life. Running piesky on IRC channels threw up some interesting results. Those who have been using IRC for sometime like me will identify with this.

What the graphs represent :
1. The nodes represent the participants of IRC channels and lines represent the relationships between them.
2. The thickness and darker hues of the lines indicates the strength of a relationship.

##linux-india
Lap_64 was yakking away ;) and seemed to talking to everyone and hence he is well connected with everyone. But he seems to be mostly talking a lot to binand. Similar lut4rp has been busy chatting away but he seems to have his own set of friends and though there is some overlap between them. Obviously Lap_64 and lut4rp seem to be hanging around for sometime and know quite a few people on ##linux-india or are particularly chatty during nightime (when this test was run and graph was generated). binand and binand_ indicate that binand had got disconnected but did not bother to ghost his IRC nick. ##linux india has been around for a long time and does not have many people logged onto it. This channel is active during the evening and late at night so the graph indicates that (with two almost disjoint set of nodes). This is typical of country-specific channel where activity rises and diminishes depending on time of day.

linux-india

#perl and #python
Perl and Python are well known open source languages which attaract loyal followers from around the world. Such channels also have a long discussions on code and features of languages. The two social graphs indicate that. If you run piesky you are likely to see well-interconnected graphs such as this which means there is great amount of cross discussions and hence more dense relationships than country-specific or distro-specifc channels.

#perl

#python

#gentoo
Linux distros such as gentoo also attract followers from around the world. But much of the discussion on features and code happens on the developer or maintainers mailing list and not so much on public IRC channels. So many of the participants in the #gentoo or #fedora ask a few questions and then leave. This is reflected in the disconnected graphs which piesky draws for distribution channels.

#gentoo

If you liked this then you may also like to read

Share your opinion! Post your thoughts.