Monday 4 February 2008

Portabilty Of The Social Graph: Google's new Social Graph API

One of the trends to look out for this year online is the "portability" of the Social Graph.

The Social Graph is a term used to describe the mapping of relationships between people. Many of us have relationships on well known social networking sites such as Facebook and Linkedin, as well as more obsure forums and specialised communities.

In terms of usefulness, to be able access these relationships is a great starting point for all sorts of website applications.

What's really needed though is a way to be able to get a "meta" view of all of these relationships so that you don't need to declare them all everytime you land on a new site. I don't really want to maintain 20 different "friends" lists when I only really have one set of friends. (OK, some contacts aren't friends, and some friends are not in contact online, but the point is that mapping out these relationships time and time again can be tedious).

Wouldn't it be useful if a website already knew about my contacts and suggested relevant useful topics according to my contacts and interests? What if say, website X knew that I was already "friends" with my friend on website Y and suggested that we connect on website Y as well? I might not know that my friend also uses website Y, and so with a simple prompt we could find each other.

It all sounds a bit big brother right?

Well, our masters of the universe, Google, are having a go at solving this problem in the form of the Google Social Graph API.

How does it work?

Quite simply it gives developers tools that can analyse the links to and from the from any public "profile" page of a website and start to infer from the links who is connected to which networks.

For those of you who know your HTML, there is an anchor tag attribute "rel" which can be used by social sites and blogs to clarify further the type of relationship.

For example if I were to link to this blog from one of my sites I would write [a href="http://www.david.norris.co.uk" rel="me"]. The rel="me" attribute says that the site I'm linking to is one of my sites.

This is just one way that Google can read the link patterns to identify relationships.

Trying it out

Google offer a couple of example applications that show how the API can be used.

One of these is called My Connections. Here I entered 3 of my sites in the input box; this blog, my linkedin profile and my Gooruze profile.

On clicking "My Connnections", the script analysed the links between those sites.

Here's the link: http://socialgraph-resources.googlecode.com/svn/trunk/samples/findyours.html?q=www.david-norris.co.uk%2Bwww.linkedin.com%2Fin%2Fdavidnorris%2Bwww.gooruze.com%2Fmembers%2Fdcnorris.

It can tell which of the my "claimed" sites can be reached from each url.

Interestingly it found out that I had put in livebookings.net as one of "my sites" on Linkedin. This is the website for the company for which I work. It then identified a possible connection of another site that links to one of mine "claiming" to be me. This was www.linkedin.com/in/hultberg, which also links to livebookings.net.

This is because www.linkedin.com/in/hultberg is a linkedin page from a colleague at livebookings who also put livebookings.net as his company site on linkedin.

Will it catch on?

For Google, more accurate mapping of the Social Graph will require that websites enable the code in their links from profile pages to contain the REL attribute or other methods of categorising links out.

If anyone can encourage the uptake of new coding habits, Google can.

The question is
- will we reach critical mass of enough sites using these attributes so that relationships can be correctly inferred from the links?

We'll see. In the meantime, this is clearly a strategic effort by Google to have some control over how the Social Graph is made portable. Whoever cracks this nut is going to have significant advantage in the next phase of the internet's growth.

No comments: