Why I’m excited about the Google Social Graph API

The Google Social Graph API is a new programming API that allows developers to expose social relationships embedded in web sites. What does this mean for regular folks like you and me? Read on. Do you ever feel like your personal information is spread across the web in a whole bunch of separate places? An account here, a profile there? A friends list here and a friends list there? All your information, but in all different places all incomplete at the same time? The Social Graph API helps solve this “silos of information” problem by allowing people to write software that understands who your friends are. It does this by reading your web site or blog and making connections between the social profiles you have across the web. For example, imagine you have a blog, which is your home on the web. You also have an Amazon profile, a Twitter profile, and a Facebook profile. So you have four profiles spread across the web, seemingly unconnected. Amazon has no idea who your friends on Facebook or Twitter are, and vice-versa, and this is a good thing from a privacy standpoint. These sites shouldn’t be able to find out everything about you with you giving them permission. But what if you wanted these sites to know a bit about each other? What if you want to combine your Amazon book history with your friends lists at Facebook so that you can see what your friends are reading and let Amazon give you recommendations based on your similarity with them? Or, perhaps you just joined Twitter and want to know which of your Facebook friends are already there so you don’t have to go hunting for them? (see video) Here we see real-world examples of how cross-pollinating your personal information between these sites can not only be efficient, but desirable…

The Google Social Graph API is a new programming API that allows developers to expose social relationships embedded in web sites. What does this mean for regular folks like you and me? Read on.

Do you ever feel like your personal information is spread across the web in a whole bunch of separate places? An account here, a profile there? A friends list here and a friends list there? All your information, but in all different places all incomplete at the same time?

The Social Graph API helps solve this “silos of information” problem by allowing people to write software that understands who your friends are. It does this by reading your web site or blog and making connections between the social profiles you have across the web.

For example, imagine you have a blog, which is your home on the web. You also have an Amazon profile, a Twitter profile, and a Facebook profile. So you have four profiles spread across the web, seemingly unconnected. Amazon has no idea who your friends on Facebook or Twitter are, and vice-versa, and this is a good thing from a privacy standpoint. These sites shouldn’t be able to find out everything about you with you giving them permission.

But what if you wanted these sites to know a bit about each other? What if you want to combine your Amazon book history with your friends lists at Facebook so that you can see what your friends are reading and let Amazon give you recommendations based on your similarity with them? Or, perhaps you just joined Twitter and want to know which of your Facebook friends are already there so you don’t have to go hunting for them? (see video) Here we see real-world examples of how cross-pollinating your personal information between these sites can not only be efficient, but desirable. (Not everyone will want to do this, however)

This type of scenario is what the Google Social Graph API is going to help solve. It does this by reading information on your blog that describes your other online profiles. So you might declare that you have a Twitter profile at http://twitter.com/bokardo or you have a Facebook profile at http://www.facebook.com/profile.php?id=500576058. Now, given your permission, Amazon can go out and find your Twitter friends and perhaps make book recommendations to you. Or, when you join a new social network, you can simply add your friends from existing networks with the click of a button.

So that’s the big reason why I’m excited by the Social Graph API: it helps to solve a real tough problem brought on by the proliferation of social networks. But there are several more reasons, too:

No Dependence on Google (or anyone else)

While Google is providing the API, nobody is dependent on them for creating or storing our relationships. This is done by the individual (as well as the services we sign up for). This means that Google isn’t in control of our relationship content. This is very much like how Search works. We own the content that we write on our web site. Google simply indexes it and provides tools to find, filter, and sort it. Google is an aggregator, not a creator. Google will be in competition to have the best aggregator of the graph.

The best way to explain this might be to point out that others can do exactly what Google is doing here. Since the relationship information is embedded within web sites anybody can index this information. So competitors can come along and try to provide a better API or better tools than Google.

Not a Walled Garden like Facebook

As Jeff Jarvis says: “The internet is the social network“. Walled gardens are not. Facebook is a great place to socialize. But they don’t own the relationships that happen there. Unlike Facebook, Google isn’t trying to own our social graph. This is incredibly important for the openness of the web. (btw: Jeff doesn’t think XFN and FOAF will gain traction…but I think they will because they are easy to implement and because solving this problem is too important. RSS and trackbacks are two technologies that succeeded in the same way)

This is in contrast to how Facebook runs things, which is by their permission. They want to own the relationship data. That’s why this API by Google is, to me, still a far better alternative. They are simply providing the best tool and keeping competition open.

A good indicator of this is to take a look at the first words on the Social Graph API: “Build critical mass on your website”. Would these words ever show up on anything by FB? NO. Their words would be “Build critical mass on our website”.

Based on Open Standards

The social relationships that the API exposes are encoded in regular old HTML using the XFN and FOAF formats. These are open standards that anybody can use. These are very easy to write and understand. Web developers will be able to learn what they need to in about 5 minutes in order to write these formats. Go HTML!

It will take a bit longer for blog publishers to write plugins that publish these formats for us, so that non-developers can publish their relationships as well. But with the amazing number of developers already creating plugins and other extensions, this won’t be a problem.

An Ecosystem

The Social Graph API is an ecosystem that anybody can play in. Since the relationship data is available to anybody, the spoils will go to the best tools that take advantage of them. Thus we have an ecosystem of open competition that allows anybody to play. Anybody with some spare time on their hands can jump in and create some cool program that helps people stay in better touch with their friends or somehow leverages those relationships. This move by Google cements their belief in the web as platform and reinforces their corporate mission to “help organize the world’s information”.

APIs are Great

This move by Google underscores the importance of APIs. The best thing about APIs is that we simply don’t know (and can’t imagine) how useful they can be. Developers will undoubtedly dream up a myriad of ways to use the API, some of which will become killer applications. The power of APIs is not what we can see plainly, but what we can’t see quite yet.

The User is in Charge

This is the biggest part of why I’m excited. My personal relationship information isn’t behind some walled garden. I’m in control of my own social graph! If I want people to know I have a Twitter account, then I can. If I don’t want them to be sure then I won’t make that relationship explicit on my blog.

The Domain as Identity is Realized

I don’t write about it often, but you may remember some posts about domain as identity I’ve written in the past. The Google Social Graph API is now getting us there by recognizing when we define our own relationships in our own domain. As more and more services look to our domain for verification, that only puts us more in charge of our online identity. Combine this with OpenID, and the idea of domain as identity really takes shape.

In the same way that we are in control of our own bodies, we need to be in control of our own domains. This is how we’re going to get privacy, if we want it. If you feel that you’re not in control of your domain, then you need to take your business elsewhere. This is why I dislike services that require you to have a subdomain within some other domain…those services that let you use your own domain are far preferable because you can at any point move your domain elsewhere. Just like you move your residence IRL.

What do I need to do?

So where does this leave us? Well, it leaves us with two very obvious next steps.

Get your own domain! – if you don’t have your own domain…go get one! (and not a subdomain) Mark up your code – use the XFN and FOAF formats to markup your site, or use a service that does this for you. I seriously need to do this myself. (I have a FOAF file, that’s about it)

It won’t be long before developers take advantage of the Social Graph API to really leverage these relationships. There is already software taking advantage of the API. Google has provided some tools that allow you to discover your contacts. Play around with this and you can see the power of this API. We might actually have some coherence to personal information on the web after all.

Going forward

The truth is that Facebook, Amazon, or even Twitter never had a good glimpse of my true social network anyway. Therefore, they had an incomplete social graph. I never gave Facebook my email list, they don’t know anything about my blog, and I’m going to keep it that way. While Facebook and others can create a fun place to hang out, they don’t own the relationships I create there. I do.

Also, it should be pointed out that Google released the Social Graph API on the same day that Microsoft announced their intention to take over Yahoo. The irony of this can’t be more complete.

One is a sign of the past. One is a sign of the future.

Update: Discussion on privacy implications of the Social Graph API