Some assignments for Social Graph Foo Camp

Free thinking and free code have two things in common: a lot of the best work has already been done, and we can re-use it.

That's my second challenge to ers. The first is getting some clarity about what the "social graph" means in the first place.

In Brad's Thoughts on the Social Graph, Brad Fitzpatrick, describes it as "the global mapping of everybody and how they're related". To unpack that, he points to the Wikipedia definitions', which currently reads this way:

A social graph consists of who an individual is connected to based on the type of connections, such as work, friendship, interests, and location. It differs from a social network, which consists of who an individual is connected to based on the existence/strength of (one type of) connection, such as work. A social graph therefore conceives of connections in a typological way, whereas a social network does so in a binary/spectral way. I.e. a social graph asks what type of connection exists between individuals, whereas a social network simply asks whether the connection exists or how strong it is. Accordingly, a social graph is a more complex/higher-level model of a social system than a social network.

There is controversy[1] over the term social graph, and whether it should be collapsed into the term social network. Given the practical difference between a network with a binary/spectra conception of connections (e.g. LinkedIn, which is based on the yes/no existence of work connections) and a graph based with a typological conception of connections (e.g. Facebook, which attempts to articulate connection type with its “How do you know {insert name}?” feature), it is useful to differentiate between these two terms. Movement towards a social graph approach in social networking tools is a manifestation of the trajectory of categorization[2], in this case, of relationships between people. Furthermore, the term social graph is increasingly pervading common parlance in social media due to its use by popular figures such as Facebook CEO Mark Zuckerberg[3] and creator of LiveJournal Brad Fitzpatrick[4]

The copy editor in me desperately wants to debug this. But even if we reduce "who an individual is connected to" to "one's connections", it's still not clear to me what that means, especially when it's further qualified by "based on the type of connections".

It doesn't help that "social graph" doesn't come with an obvious meaning. "Social" we get. But "graph" already comes with at least five dictionary definitions, none of which resembles the nineteen-word noun phrase we read in Wikipedia, or anything Brad wrote in his original piece. (Which comes up first in Google searches for the term.)

starts today, and my first assignment for its attendees is to clarify the meaning of "social graph" or replace it with something better before it's too late.

My second assignment is to look into leveraging some of the thinking that's already been done on the problems of social relations. For example, the social contract. Here's what Wikipedia says about it at that last link:

The term social contract describes a broad class of philosophical theories whose subjects are the implied agreements by which people form nations and maintain a social order. In laymen's terms, this means that the people give up some rights to a government in order to receive social order. Social contract theory provides the rationale behind the historically important notion that legitimate state authority must be derived from the consent of the governed. The starting point for most of these theories is a heuristic examination of the human condition absent from any social order, termed the “state of nature” or “natural state”. In this state of being, an individual’s action is bound only by his or her conscience. From this common starting point, the various proponents of social contract theory attempt to explain, in different ways, why it is in an individual’s rational self-interest to voluntarily subjugate the freedom of action one has under the natural state (their so called “natural rights”) in order to obtain the benefits provided by the formation of social structures.

Common to all of these theories is the notion of a sovereign will, to which all members of a society are bound by the social contract to respect. The various theories of social contract that have developed are largely differentiated by their definition of the sovereign will, be it a King (monarchy), a Council (oligarchy) or The Majority (republic or democracy). Under a theory first articulated by Plato in his Socratic dialog Crito, members within a society implicitly agree to the terms of the social contract by their choice to stay within the society. Thus implicit in most forms of social contract is that freedom of movement is a fundamental or natural right which society may not legitimately require an individual to subrogate to the sovereign will.

Thomas Hobbes (1651), John Locke (1689), and Jean-Jacques Rousseau (1762) are the most famous philosophers of contractarianism, which formed the theoretical groundwork of democracy. Although the theory of natural rights influenced the development of classical liberalism, its emphasis on individualism and its rejection of the necessity to subordinate individual liberty to the sovereign will stands in opposition to the general tenets of social contract theory.[1]

That stuff about deals with governance and the king may seem irrelevant, but it's not. At issue is governance of our relationships. The deals we make may not be with the feds or the king, but they are still deals.

The lists of contacts (whether or not we call them "friends") we list on Facebook, LinkedIn, Orkut and Plaxo consists in each case of a deal that's different than the one we make with ourselves by listing the same in our email or cell phone address books. In most cases those deals are with those companies, and on their terms, which may or may not be clear, or even desirable. Walled gardens are like that. And so are governments. The social contracts involved may be explicit or implied, but they still embody a contractual nature — one that the likes of Locke and Rousseau have already devoted some worthwhile thinking.

Independence and consent are two rather large concerns that were no less present in the challenges to democracy in the 1700s than they are in what Brad wrote in 2007:

Unfortunately, there doesn't exist a single social graph (or even multiple which interoperate) that's comprehensive and decentralized. Rather, there exists hundreds of disperse social graphs, most of dubious quality and many of them walled gardens.

Currently if you're a new site that needs the social graph (e.g. dopplr.com) to provide one fun & useful feature (e.g. where are your friends traveling and when?), then you face a much bigger problem then just implementing your main feature. You also have to have usernames, passwords (or hopefully you use OpenID instead), a way to invite friends, add/remove friends, and the list goes on. So generally you have to ask for email addresses too, requiring you to send out address verification emails, etc. Then lost username/password emails. etc, etc. If I had to declare the problem statement succinctly, it'd be: People are getting sick of registering and re-declaring their friends on every site., but also: Developing "Social Applications" is too much work.

Facebook's answer seems to be that the world should just all be Facebook apps. While Facebook is an amazing platform and has some amazing technology, there's a lot of hesitation in the developer / "Web 2.0" community about being slaves to Facebook, dependent on their continued goodwill, availability, future owners, not changing the rules, etc.

There are many approaches possible, of course. Brad's recommendation is to "make the social graph a community asset", and to start by (among other things) focusing "only on public data for now". Well, that seems fine. But that's not the hard part. Nor is it what's making the social graph topic controversial right now.

The hard part is personal. It's around privacy, and disclosure. What's revealed and what's not. Can we approach that both socially and contractually? And, independently?

Toward the virtue of independence Google has addressed OpenSocial, described as "a common set of APIs for social applications across multiple websites".

And toward the virtue of openness SixApart (where Brad worked after he sold Live Joural to the company, and before he moved on to Google) announced in September that We Are Opening The Social Graph. Then this past week Dave Recordon (who is now at Six Apart) posted Time for Action: What We Are Opening Next.

Of course, cautions have been issued. In Antisocial Networking, Bob Blakely writes,

Opening the social graph will destroy social networks, and turn them into sterile public spaces in which formation of meaningful and intimate relationships is not possible. Opening the social graph is a bad idea. Relationship information is not the property of individuals - it held in joint custody among all parties in a relationship, and it cannot be used or disclosed in violation of the rules under which it was brought into the relationship - or else the relationship will die and the individuals in it will be harmed.

In Be Careful With the Social Graph, Ben Laurie points to Bob's post, then adds,

... when I share social data, I do so under certain conditions, both explicit and implicit. What I care about, really, is that those conditions continue to be met. I don't really mind who does the enforcing, so long as it is enforced. So, it seems to me that its OK to create the social graph, you just have to be exceedingly careful what you do with it.

This presents two, in my view, enormous technical challenges. The first is dealing with a variety of different conditions applying to different parts of the graph. Even representing what those conditions are in any usable way is a huge task but then you also need to figure out how to combine them, both when multiple conditions apply to the same piece of data (for example, because you figured it out twice in different ways) or when the combination of various pieces of data, each with its own conditions, yield something new.

Once you've done that you are faced with a much larger problem: working out what the implicit conditions were and enforcing those, too. The huge adverse reaction we saw to Facebook’s Beacon feature shows that such implicit conditions can be unobvious.

Anyway, the bottom line is that those in favour of the social graph tend to see it as some nodes, representing people, and edges, representing relationships. What they ignore is the vast cloud of intertwined agreements and understandings woven around all those edges and nodes. But those are absolutely vital to the social graph.

One of the prime tenets of free and open source code development is re-use. In our communities there persists a constructive reluctance to re-invent perfectly good wheels. Better to improve the ones we've got.

In addition to those of Founding Thinkers listed in Wikipedia, I suggest we go back to Private Life in Cyberspace, written by John Perry Barlow in 1991. In it JPB yearns for the kind of public privacy he enjoyed as a member of a real community in Wyoming:

I returned to Wyoming in a funk. My ghostly electronic selves increased their number on my way home as I bought airline tickets, charged to my credit cards, make long distance phone calls, and earned another speeding ticket. The more I thought about it, the more I became convinced that nothing short of a fugitive cash-based existence would prevent their continued duplication. And even that would never exorcise them all. I was permanently on record.

Back in Pinedale, where I am also on record, my head started to clear. Barring government regulation of information, for which I have no enthusiasm, it seemed inevitable that the Global Village would resemble a real village at least in the sense of eliminating the hermetic sealing of one's suburban privacy. Everyone would start to lead as public a life as I do at home.

And in that lies at least a philosophical vector towards long-term social solution. As I say, I am protected in Pinedale not by the restriction of information but by a tolerant social contract which prohibits its use against me.

Social systems are as old as humanity, and among the most complex and subtle topics of human existence. To call a Twitter following or a Friend list on Facebook a "social network" is a simplification and a distortion. Same goes for the social graph, so far.

It's early in the path of progress here. We have much to learn as well as much to do.

Wish I could be at sgfoo2008. Instead I'll be working and skiing — at a place far from a network connection, unfortunately (or perhaps not). Still, I'll follow it as best I can.

And by Monday I hope to see a new Social Graph entry on Wikipedia: one that any civilian, and not just geeks, will understand.

[Later...] Dan Farber: Google unleashes Social Graph API–indexes people connections. Tim O'Reilly: Google Social Graph API, Brad Fitzpatrick at the Google Code Blog: URL are people, too, TechCrunch: Google Gathers Social Graph Information From The Web, Launches API.

______________________

Doc Searls is Senior Editor of Linux Journal

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix