Brad Fitzpatrick recently wrote an elegant and important post about the Social Graph, a term used by Facebook to describe their social network. In his post, Fitzpatrick defines "social graph" as "the global mapping of everybody and how they're related". He went on to outline the problems with it, as well as a broad set of goals going forward.
One problem is that currently you need to have different logins for different social networks. Another issue is portability and ownership of an individual's information, explicitly and implicitly revealed while using social networks. As was recently asserted in the Social Bill Of Rights and as has been advocated for a while by Attention Trust Principles, users want to own their personal information - including their chunk of the Social Graph.
The problems are all interconnected - what makes up a Social Graph, how it is treated by social networks, what the APIs and standards are, as well as who owns the information. In his post Brad discussed a vision of an open, public asset - controlled by the people and used (and complied with) by the social networks. Can this vision be realized? While this is certainly a complex problem, if there is any time when this vision can become reality - the time is now.
In this post we will take a broad look at the definitions and issues with the Social Graph; and explore some ways in which the standards and laws can actualize.
Quick Primer on Graphs And Networks
In Mathematics, a Graph is an abstraction for modeling relationships between things. It is no different from a Network, which is a more common term for describing the same thing. Graphs consists of nodes and edges, or things and the ways that things relate to each other. As it turns out, Graphs are very powerful modeling tools for modeling natural and man-made systems. Diverse things like the Web, power grids, economies and even cells can be represented and analyzed as networks.
Key Elements In Digital Social Graphs
With the recent rise and proliferation of social networks, the social graph comes into the spotlight. Unlike the one that scientists have been studying, this one is digital and defined explicitly by connections in all social networks. Let's revisit the main issues that Brad and others have been talking about:
1. People Identity Each one of us participates in multiple networks, but we want to be identified as the same person in all of them. Brad describes this as a multiple login nightmare. He calls for having a way to map IDs onto each other, via Node Equivalence:
"Given a single node, say "brad on LiveJournal", return all equivalent nodes: "brad" on LiveJournal, "bradfitz" on Vox, and 4caa1d6f6203d21705a00a7aca86203e82a9cf7a (my FOAF mbox_sha1sum)."
2. Type of Relationships The links between people in social networks are of different types. Crudely, different types of relationships are a friend, a co-worker, a family member. There are more fine grained relationships defined in Facebook (see picture above) and Spock, which uses tags to identify how people are related.
3. Relationships Identity Similar to having node equivalence, there is an issue of edge equivalence. Although, this issue is more complicated. If two people are connected in one social network, should they automatically be connected in all of them? Consider an example of a LinkedIn and Shelfari. Just because two people work together does not mean that they share the same book interests. However, the crux of the issue is not that - it is actually discoverability. As Brad pointed out, there needs to be a way for a new user who joins a network to be able to find friends who are already using that network.
The Social Graph API
In his post, Brad explicitly described a need for an API or a service that would broker the information between social networks. He envisions an open source base database which accepts information from multiple social networks, then provides it to end-users via UI or API - as well as allows users to authorize other social networks to find the information.
The first technical challenge with this approach is to build a system that can scale. The second important problem is building a system which is secure. Assuming that both challenges can be met, the next major issue is getting companies to use this API. Why would Facebook export their information into this new database? Clearly, it would not. What Brad suggests is that Facebook and other networks implement an export facility that would allow the users themselves to do it. This is also not optimal, since people would have to export their information manually.
A more automated approach would be to define an API that all social networks must implement, so that other networks can query their subset of the social graph. With this approach, when a user joins a new network, that network can connect to other ones and get the information about its users. It is basically similar to the Import Your Friends From Email feature common to many social networks these days. The challenge, again, is to convince the social networks to support this functionality.
Yet, one can not help but think that a similar challenge was successfully solved by another tech community: Java. The Java Community Process is an industry-wide effort to come to around a table, to define and drive the implementation and adoption of Java APIs. For example, a big success story was J2EE standards, where companies like IBM, BEA and Oracle made their application servers compliant with a common API, making it easier for the applications to be portable. (To be fair, we have to admit that they also stuck proprietary stuff on top of the standards - but the point is that a lot of things were standardized)
Brad has started a fascinating discussion. What is the Social Graph? Who owns it? What is the API? All of these questions are likely to shape the evolution of the next generation of the Social Web.
On the surface the issues are clear and simple, but what is also clear is that it will take a lot of work to get a working solution. The challenges are conceptual, technical, political, business and educational. A lot of minds need to converge for the Social Graph, as described by Brad, to happen. Traditionally the tech industry has been able to come though on critical standards that benefit people. Let's hope that this will be the case here as well.