Social Graph: Concepts and Issues
Brad Firzpatrick 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.
Note: Images above are from the Visual Complexity Gallery
What is also remarkable is that a lot can be said about a graph by looking at its structure; and the evolution of the structure. For example, epidemiologists use graph structures to predict the spread of an epidemic. The very same model can be used to understand how wild fire spreads, as well as how to engineer a viral marketing campaign. The better we understand the structure of a system’s graph, the more we can control it, predict it and analyze it. An excellent resource for learning about Networks is the the Research Center at University Of Notre Dame.
Quick Primer on the Sociological Graphs
Our society spawns one gigantic social graph. In this graph, each one of us is a node. There is an explicit connection, if we know each other. For example, two people can be connected because they work together or because they went to school together or because they are married.
Sociologists have been studying these graphs for decades. Famously, the social networks have a so called Small World property – more widely known as the Six Degrees of Separation. This is both an anecdotal and scientific observation that we all are connected to each other – no more than six people away. The secret? It’s because this is how human networks form – dense clusters are inter connected by shortcuts.
A simple way to think about it is this: your friends know each other, and with time, they meet each other. If at least one person in a group meets someone from a remote part of the world, the whole group is now connected to another part of the world. You can learn more about the fascinating science of Smart World Networks from a book by Columbia Professor Duncan Watts – Six Degrees, The Science of Connected Age.
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.
Privacy and Ownership of Information
Privacy and ownership of information are at the core of the social graph issues. Much like there is a conflict of interest around attention information between online retailers and users, there is a mismatch between what individuals and companies want from social networks. When any social network starts, it is hungry to leverage other networks. As it grows, the incentive to share information like social graph and attention with others deminishes (unless it is done via an API that continues to benefit the network). But as individuals, we do not care about either young or old networks. We care about ease of use and privacy.
In the ideal scenario, we would like to spend the least amount of time logging in, configuring, telling the system what we like. We want to use the network to connect and to communicate. More importantly, we want to not just feel that we are in control, we want to be in control of our personal information. Just like we choose who to make friends with, we want to decide how our friendship information is used. We think of a social network as a service that has our eyeballs and can advertise to us, in exchange for connecting us to people we want to connect to. And as with any service, we want to control our information.
Just wanting to own and control information is not enough though. Companies do not really care, as they just do what’s in the best interest of their business. So to make companies cooperate, people need to come together and take a stand. As we have written here many times before, the best way to take a stand is to form an organization. Organizations have a much better track record of dealing with corporations than single individuals. The organization can put forth a set of rules and standards and then work with companies to implement them. This is essentially what Brad is proposing, and this brings us to the technical aspect of social graph – the API.
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. Architecture-wise, this infrastructure is the same as the one we discussed in our Attention Economy and Attention Silos posts; where we described a read/write database for storing people’s attention. Indeed, the problem of attention and the social graph are related, since the social graph can be thought of an aspect of attention.
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.
Note: top image is from StudiAnalyse Project