L19 network graph
- Dusk Eagle
- Gosei
- Posts: 1758
- Joined: Tue Apr 20, 2010 4:02 pm
- Rank: 4d
- GD Posts: 0
- Has thanked: 378 times
- Been thanked: 375 times
L19 network graph
Inspired by the High-dan game network thread, I decided to try to graph the interaction between members of the forum (i.e. how often two members post in the same thread). It seemed like a fun weekend project, and I had just written a simplified html parser in Scheme for school so it was a good chance to put that to further use.
So, after writing some Python scripts to download threads from the forum to my computer and extract the names of the authors of each post, I had to figure out a way to graph it all. This took by far the longest time, as I had never done anything like this before so I had to research my options. After narrowing it down to igraph (which walleye used in the thread above) and Gephi, I decided Gephi would be easier to use. Finally, after figuring out how to format my data so it could be imported into Gephi, I was able to make the graphs below.
(Note: Click on an image to get the full size)
http://upload.wikimedia.org/wikipedia/commons/3/34/L19_January_png.png This is the graph for January. Every member with at least one post is represented, but a line is drawn between two members only if one member has posted in the same thread another member has at least three times. A larger line corresponds with more posts in common threads. The lines are also color-coded: yellow represents only slight interaction between two members, cyan represents moderate interaction, and purple represents a large amount of interaction. Nodes are sized and color-coded similarly. There is one caveat with this data: the information was gathered from only the first 20 posts of each thread.
http://upload.wikimedia.org/wikipedia/commons/c/ca/L19_alltime_png.png This is the graph for all time. Once again, every member with at least one post is represented, but a line is drawn between two members only if they have 30 posts in common threads.
This information may not be too practically useful, but I found it quite interesting to look at.
So, after writing some Python scripts to download threads from the forum to my computer and extract the names of the authors of each post, I had to figure out a way to graph it all. This took by far the longest time, as I had never done anything like this before so I had to research my options. After narrowing it down to igraph (which walleye used in the thread above) and Gephi, I decided Gephi would be easier to use. Finally, after figuring out how to format my data so it could be imported into Gephi, I was able to make the graphs below.
(Note: Click on an image to get the full size)
http://upload.wikimedia.org/wikipedia/commons/3/34/L19_January_png.png This is the graph for January. Every member with at least one post is represented, but a line is drawn between two members only if one member has posted in the same thread another member has at least three times. A larger line corresponds with more posts in common threads. The lines are also color-coded: yellow represents only slight interaction between two members, cyan represents moderate interaction, and purple represents a large amount of interaction. Nodes are sized and color-coded similarly. There is one caveat with this data: the information was gathered from only the first 20 posts of each thread.
http://upload.wikimedia.org/wikipedia/commons/c/ca/L19_alltime_png.png This is the graph for all time. Once again, every member with at least one post is represented, but a line is drawn between two members only if they have 30 posts in common threads.
This information may not be too practically useful, but I found it quite interesting to look at.
We don't know who we are; we don't know where we are.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
- daniel_the_smith
- Gosei
- Posts: 2116
- Joined: Wed Apr 21, 2010 8:51 am
- Rank: 2d AGA
- GD Posts: 1193
- KGS: lavalamp
- Tygem: imapenguin
- IGS: lavalamp
- OGS: daniel_the_smith
- Location: Silicon Valley
- Has thanked: 152 times
- Been thanked: 330 times
- Contact:
Re: L19 network graph
That's pretty cool!
That which can be destroyed by the truth should be.
--
My (sadly neglected, but not forgotten) project: http://dailyjoseki.com
--
My (sadly neglected, but not forgotten) project: http://dailyjoseki.com
- freegame
- Lives in gote
- Posts: 399
- Joined: Tue Apr 20, 2010 8:40 am
- Rank: EGF 2d KGS 3d
- GD Posts: 353
- KGS: freegame
- Location: Shanghai, China
- Has thanked: 5 times
- Been thanked: 35 times
- Contact:
Re: L19 network graph
Stable wrote:It looked to me as if we form basically one population, rather than a split one. That's nice.
yup seems like it.
looking at the all time graph it's also clear a small amount (core) of people is responsible for the vast majority of posts.
Of course I already knew this from looking at the member list, but this make shows it in a nice visual way.
I wanted to create some graphs myself this weekend.
But decided to go to participate in a (real life) Go tournament instead.
I ended in second place so I guess I made a good choice
- topazg
- Tengen
- Posts: 4511
- Joined: Wed Apr 21, 2010 3:08 am
- Rank: Nebulous
- GD Posts: 918
- KGS: topazg
- Location: Chatteris, UK
- Has thanked: 1579 times
- Been thanked: 650 times
- Contact:
- daal
- Oza
- Posts: 2508
- Joined: Wed Apr 21, 2010 1:30 am
- GD Posts: 0
- Has thanked: 1304 times
- Been thanked: 1128 times
- Joaz Banbeck
- Judan
- Posts: 5546
- Joined: Sun Dec 06, 2009 11:30 am
- Rank: 1D AGA
- GD Posts: 1512
- Kaya handle: Test
- Location: Banbeck Vale
- Has thanked: 1080 times
- Been thanked: 1434 times
Re: L19 network graph
@Dusk Eagle: Thanks for doing this. Would it be possible to have a variation with the Malkovich games not counted?
Help make L19 more organized. Make an index: https://lifein19x19.com/viewtopic.php?f=14&t=5207
- CSamurai
- Lives in gote
- Posts: 348
- Joined: Fri May 28, 2010 2:50 am
- Rank: KGS4k
- GD Posts: 0
- KGS: CSamurai
- Has thanked: 16 times
- Been thanked: 31 times
Re: L19 network graph
Joaz Banbeck wrote:@Dusk Eagle: Thanks for doing this. Would it be possible to have a variation with the Malkovich games not counted?
I'm sure it would be, but then I'd have almost no connections at all!
- Dusk Eagle
- Gosei
- Posts: 1758
- Joined: Tue Apr 20, 2010 4:02 pm
- Rank: 4d
- GD Posts: 0
- Has thanked: 378 times
- Been thanked: 375 times
Re: L19 network graph
@Joaz, I should be able to find a bit of time to do that before the end of today.
We don't know who we are; we don't know where we are.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
- Dusk Eagle
- Gosei
- Posts: 1758
- Joined: Tue Apr 20, 2010 4:02 pm
- Rank: 4d
- GD Posts: 0
- Has thanked: 378 times
- Been thanked: 375 times
Re: L19 network graph
January's graph without Malkovich games.
The alltime graph without Malkovich games. I'm going to speculate that the weakening of the relationship (no pun intended) between Kirby and Magicwand (due to removing all the Malkovich games between them) boosted others relationships proportionally from yellow to cyan.
Enjoy!
The alltime graph without Malkovich games. I'm going to speculate that the weakening of the relationship (no pun intended) between Kirby and Magicwand (due to removing all the Malkovich games between them) boosted others relationships proportionally from yellow to cyan.
Enjoy!
We don't know who we are; we don't know where we are.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
-
walleye
- Dies with sente
- Posts: 124
- Joined: Wed Apr 28, 2010 7:56 pm
- Rank: IGS 1k
- GD Posts: 0
- Has thanked: 5 times
- Been thanked: 13 times
Re: L19 network graph
A couple of technical questions.
Do you mean to say you draw a line if they both have one or more posts (in the first 20) in at least three threads? Or, there is at least one thread where they both have three posts (in the first 20)? Or, is it three posts for just one member? In which case, it doesn't matter which one since your graph is undirected, does it?
Fortunately, most non-Malkovich threads have fewer than twenty posts. Still, it's an annoying limitation.
According to what you are doing, a thread is common to two members if they both have one or more posts (in the first 20) in the thread. Right? So what you do is you find all common threads and then count the total number of posts that they have in those threads (only using the first 20 posts in each thread). Then you draw a line if they both have 30 or more total posts thus counted. Is this correct?
Dusk Eagle wrote:http://upload.wikimedia.org/wikipedia/commons/3/34/L19_January_png.png This is the graph for January. Every member with at least one post is represented, but a line is drawn between two members only if one member has posted in the same thread another member has at least three times.
Do you mean to say you draw a line if they both have one or more posts (in the first 20) in at least three threads? Or, there is at least one thread where they both have three posts (in the first 20)? Or, is it three posts for just one member? In which case, it doesn't matter which one since your graph is undirected, does it?
Dusk Eagle wrote:There is one caveat with this data: the information was gathered from only the first 20 posts of each thread.
Fortunately, most non-Malkovich threads have fewer than twenty posts. Still, it's an annoying limitation.
Dusk Eagle wrote:http://upload.wikimedia.org/wikipedia/commons/c/ca/L19_alltime_png.png This is the graph for all time. Once again, every member with at least one post is represented, but a line is drawn between two members only if they have 30 posts in common threads.
According to what you are doing, a thread is common to two members if they both have one or more posts (in the first 20) in the thread. Right? So what you do is you find all common threads and then count the total number of posts that they have in those threads (only using the first 20 posts in each thread). Then you draw a line if they both have 30 or more total posts thus counted. Is this correct?
- Dusk Eagle
- Gosei
- Posts: 1758
- Joined: Tue Apr 20, 2010 4:02 pm
- Rank: 4d
- GD Posts: 0
- Has thanked: 378 times
- Been thanked: 375 times
Re: L19 network graph
Do you mean to say you draw a line if they both have one or more posts (in the first 20) in at least three threads? Or, there is at least one thread where they both have three posts (in the first 20)? Or, is it three posts for just one member? In which case, it doesn't matter which one since your graph is undirected, does it?
For each post in a thread, that author gets one "interaction point" with the author of each subsequent post in that thread. A member can not score interaction points with themself.
So for the January graphs, two members have a line between them if they have at least 3 "interaction points" between them. For the all-time graphs, two members must have at least 30 "interaction points" between them to be have a line displayed.
I gathered the forum data by first observing that all the URLs of threads on this forum are of the form:
Code: Select all
http://lifein19x19.com/forum/viewtopic.php?t=%d%where %d% is an integer. So, I just used a for loop to download each page. But since threads are limited to 20 posts/page for non-logged-in users, and I didn't know how to have the tool I used to download pages use my log-in (where I could change the posts/page preferences), the 20 posts per thread was the best I could do. However, as I write this, I've just thought of a way to do that which I'm almost certain will work, so were I to do this again at some point I should be able to include all posts, not just the first 20.
We don't know who we are; we don't know where we are.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
Each of us woke up one moment and here we were in the darkness.
We're nameless things with no memory; no knowledge of what went before,
No understanding of what is now, no knowledge of what will be.
- schultz
- Lives in gote
- Posts: 505
- Joined: Tue Apr 20, 2010 5:31 pm
- GD Posts: 0
- Location: Montana
- Has thanked: 80 times
- Been thanked: 62 times
Re: L19 network graph
Hey, late to the party, but wanted to say this is really cool.
And glad to see that I actually made an appearance, even if only for the all-time graphs.
And glad to see that I actually made an appearance, even if only for the all-time graphs.
KGS: schultz [?].