An idea
ok, so yeah I have this idea. And I don't mind telling people about it. If you want to do it, go ahead, but first let me know what you think.
I'm sure everyone has heard of this, and I'm pretty sure this has already been thought of (what hasn't, right?) but I haven't seen it in my feed pop up in the myriad facebook apps my friends have added. The pitch: facebook app/six degrees of separation game (find out how many steps to a random person (if possible)). Just had this idea like two minutes ago. Any thoughts??
17 comments
[ 4.1 ms ] story [ 53.0 ms ] threadThe developer TOS don't, as far as I can tell, provide exceptions to this. In fact, the following seems to quash the whole idea of crawling:
"4) You may not store any Facebook Properties in any Data Repository which enables any third party (other than the Applicable Facebook User for such Facebook Properties) to access or share the Facebook Properties without our prior written consent."
But perhaps they would be willing to consent if you asked?
I think it's a good idea.
It is an example of the traveling salesman problem but there are ways of optimizing that... think about chess, or how google maps and the other map programs give you a route to a destination. If they had to check every single intersection it would be NP-complete. Instead they use the distance between two points as a weighting factor and try to find major arteries near both points.
I think you could do the same thing with Facebook et al - first look for common groups between people and then look for people who have pairs of common groups which would help to connect the people.
But you would have to have a reasonably complete set of Facebook data to work on. I wonder if they'd mind if you crawled their entire network and then did it again every few days, just to keep things current?
In any case, the thesis of my post was that it's a totally solvable problem and that you could use other factors to reduce the number of nodes - like looking for shared group or network memberships.
I think this is the relavant bit? http://en.wikipedia.org/wiki/Dijkstra's_algorithm Except that the Facebook thing wouldn't be a weighted graph - unless you wanted to consider length of time people have been marked as friends, or count "worked together" more or less than some other form of association.