Few days back I talked about the OpenSocial initiative and how I believe that it can help making the online Social experience much better by enabling interoperability. Before that I have also talked about consolidation of online social experience. My theme continues to remain the same. How do we fix “Social Network Overload”? So in this post I am going deeper to the basics of the problem.
What is a Social Graph?
The term popularized by Mr. Zuckerberg (CEO Facebook) is a better name for your Social Network. Social Graph represents your network of acquaintances. It is a graph of your contacts (friends, family, coworkers etc). Services build upon the social graph and offer applications, which let you interact with your friends and acquaintances. Check out the Wikipedia page for in-depth details.
Where does it exist?
For a typical user, the social graph is broken and distributed among various services and applications. For example my graph exists across:
- Social networks I belong to, such as Facebook, Orkut, MySpace etc
- Business networks I belong to, such as LinkedIn, Plaxo etc
- My Email contacts, which exist on GMail, Outlook etc
- My IM buddy list
- My phonebook on my mobile handset
- Finally my blog visitors and Twitter followers
For some of you this list will probably be longer. Now these services and people I interact with represent my social realm of influence. So as you can see my overall graph is spread all over the place, over various services. I am sure most users are this way.
So what is the problem?
The very fact that my graph lies all over the place is the core problem. Over time I have signed up on these services for one of the following:
- Offers unique new feature or
- My friends were using the service and I got invited frequently
When I sign into one of these services, I have to go through the rigamarole of setting up a user name and password, which by the way is yet another username/password combo to remember. Secondly, each time I sign up I am creating a new graph, which is clearly not associated to graphs existing elsewhere. Over time, being part of so many services and interacting with people through these becomes a serious headache. Thus leading to what is known as the “Social Network Overload”.
Hence the core of the problem being that the social graph is not singular and not shared.
What is needed?
Starting from the ground up, I believe there is a need for consolidation. We need a service ( a Social Graph Database), which can host the aggregated social graph for a user. This isn’t a service like Facebook or LinkedIn. Instead it will simply host user’s graph, which could be as simple as a CSV file.
This service would then offer secure APIs to access user’s graph. This should preferably be tied to an OpenID type of consolidated authentication system. The APIs can be utilized by services mentioned above to access user’s graph and offer their value adds. Now there would be few simple rules to this system:
- Services can access the graph only when the user allows them by authenticating using his/her OpenID
- The data would be read only and should be considered transient. Services should check this graph database periodically (preferably once a day) for updates.
- Any updates made to the graph via a service must be added back to the consolidated graph.
- For example new friends or new relationship stats
- This will ensure that the graph doesn’t get broken and all other services are updated
I am sure all of us agree on the fact that the social graph data belongs to the user. Services and applications have “no right” over this data. So such a scheme only sounds fair to the user and participating services. Here is a graphic illustrating the thought at a high level.
In this model no single social network becomes host to the graph. They all become interfaces into the graphs. They provide applications, which allow you to act on the graph. Such an approach levels the playing field for everyone.
No one highlighted in the above graphic can host the graph. That results into trust issues and such. This database service will have to be offered by a non-profit organization. This service can also be offered by an affiliation of these entities. Yes, I do realize that is next to impossible.
The other impossible aspect is to create this graph from scratch. Users aren’t going to log into a database service and create a graph. Probably a geek like me would :-). So this service must adapt create a graph from user’s existing accounts on various services. The affiliation which may run the service can also mandate this so all the participants feed in the graph data.
So in conclusion, I must say that these are simply thoughts from top of my head. These are just ideas to solve the problem, which users like me face on a daily basis. I know that such solutions are too hard to implement and have way too many barriers. I am hoping to start a discussion with this post. Do comment with your feedback.
Next time I will post about Evolution of the Social Graph. That post shall take the conversation to the next level and delve into maturing the social thought process and making services around us smarter.