Following on its OpenSocial APIs for building cross-social network applications, Google has created a Social Graph API that searches the Web for explicit public statements of connections between people. The Web crawler looks for XFN (XHTML Friends Network) and FOAF (Friend of a Friend), which are standard formats used to indicate people connections.
The Web of people connections (social graph) has been kind of nascent, lightly linked and underutilized, according to David Glazer, director of engineering at Google. "We want to provide tools to make it easier to find, use, manage and create more semantically rich information about people on the Web," Glazer said.
The social graph has been bottled up in the big islands, but some companies have been trying to unlock it, such as Delver, a startup that is attempting to improve the relevancy of Web searches by prioritizing results based upon the searcher’s social network.
The Social Graph API provides developers with a fast and comprehensive Google people connection search index to build applications, tapping into the social Web in a different way than the OpenSocial APIs. Others could use the API to create their own indexes of people connections.
Google created an application that lets users see how their sites are connected (see below) based on the index living on its servers. It's also easy for users to claim pages, such as indicating that a Twitter or Flickr page is yours. If users find links that they don't want to be connected to, they can remove the XFN or FOAF links.
The API is based on a concept expressed by Kevin Marks, developer advocate at Google, that "URLs are people too."
"For people URLs on the Web we are giving developers a search API to build apps--looking at what other pages represent people that are public and linked to other people pages," Glazer said.
For example, the Social Graph API will allow users to go to a site and check to see if a friends are there. The more sites that take advantage of the API, the easier it will be to discover friends on different services. "We think the existence of the API will lead toward standardization of a more semantic social graph," Glazer said.
Glazer envisions three types of applications build around the Social Graph API. First, social graph explorers, like a credit report, that surfaces an individual's connections. Users can claim their connections and add or delete them. Secondly, tools to make it easy for users to advertise their presence (such as profile pages, blogs, about pages), packaging them up in a nice interface.
A third category has the broadest appeal, discovering friends on socially aware sites. If people go to a site, they could find out what friends that they are connected to on other sites are also part of the current site they are visiting.
- Site Connectivity: see how your URLs are connected to each other with me links.
- My Connections: see how you're connected to people on the public web.
- Parameter Playground: twiddle all the parameters and see what happens.
I could also imagine a kind of Google Trends for social connection data, keeping track of all your social networks, including the overlaps on services, and your friend feeds.
The API has been live and running inside Google for about a month, Glazer said. Plaxo has also been working with the Social Graph API and is launching Public Profiles, an opt-in feature that uses the API to create a unified public identity and aggregate the stream of the content users create across the Web.
Plaxo uses the Social Graph API to make it easy for users to include “me links” to the sites they use and include an aggregated stream of their content on the Web. Pages are tagged with the appropriate microformats, so that users can assert their public identity in a way that’s readable by Google and other sites. Joseph Smarr, chief platform architect at Plaxo, believes the Social Graph API will be a great boon to data portability and deal effectively with privacy concerns.
"It starts with the publicly available info, of which there is already a great deal, and which is free of any privacy concerns. It will need to be augmented with private data portability between trusted sites for non-public data, but now users can choose how much of their digital identity to make public and sites will be able to easily take advantage of it."
"The main benefit to users will be that once you decide to make parts of your digital identity public, you'll no longer have to keep entering the same info everywhere you go--the sites will start out knowing something about you, and that something is firmly under user control," Smarr said.
He also thinks its a win for Google. "Others are free to duplicate the effort Google has undertaken here, but my guess is most people will be happy to defer to Google for the data on the public Web, since Google is already heavily invested in crawling the Web regularly and serving it up quickly."
Following is the text of a blog post from Google software engineer and one of the leaders in the open social movement, Brad Fitzpatrick:
URLs are People, Too
So you've just built a totally sweet new social app and you can't wait for people to start using it, but there's a problem: when people join they don't have any friends on your site. They're lonely, and the experience isn't good because they can't use the app with people they know. You could ask them to search for and add all their friends, but you know that every other app is asking them to do the same thing and they're getting sick of it. Or they tried address book import, but that didn't totally work, because they don't even have all their friends' email addresses (especially if they only know them from another social networking site!). What's a developer to do?
One option is the new Social Graph API, which makes information about the public connections between people on the Web easily available and useful. You can make it easy for users to bring their existing social connections into a new website and as a result, users will spend less time rebuilding their social networks and more time giving your app the love it deserves.
Here's how it works: we crawl the Web to find publicly declared relationships between people's accounts, just like Google crawls the Web for links between pages. But instead of returning links to HTML documents, the API returns JSON data structures representing the social relationships we discovered from all the XFN and FOAF. When a user signs up for your app, you can use the API to remind them who they've said they're friends with on other sites and ask them if they want to be friends on your new site.
See also the Google video on how the Social Graph API works: