Facebook’s Open Graph and the Semantic Web – from Facebook F8
A bit late to finally getting around to watching this Facebook Developer Conference keynote presentation by Facebook’s CEO Mark Zuckerburg and CTO Bret Taylor, but wanted to post as a reminder-to-self to understand more deeply Facebook’s Open Graph and associated Social Plugins.Vodpod videos no longer available.
There’s a whack of very interesting stuff in this presentation. I’m going to focus on the Open Graph Protocol and the Graph API, as this is really the foundation of the whole thing.
The Open Graph Protocol
So what is the Open Graph Protocol? Here’s how Facebook’s CEO Bret Taylor sums it up:
At it’s core, the Open Graph Protocol is a specification for a set of meta tags you can use to markup your pages to tell us what type of real-world objects your page represents.
Taylor provides an example using Pandora, and how they would markup up a web page on Pandora.com using the Open Graph Protocol to specify the Title (Green Day), Type (Band), Genre (Punk), and City (Berkeley) of a band.
So now this web page which was previously just a bunch of text has this semantic markup, so we know what it represents. And because of that, when a user clicks a Like button on one of these Open Graph pages, we’ll use that semantic knowledge to represent it in really deep ways on Facebook.com.
The easiest way to understand this is just to walk through an example. … If I visit the Godfather page [on movie site IMDb] and I click “Like”, it’s going to go to my Facebook stream just like Shares do today. But IMDb is using the Open Graph Protocol, so they’ve marked up their pages. We know this isn’t just any old web page. This represents a “Movie” with the name “The Godfather” made in “1972”. And because of that, this page is also going to go in the Movies section in my Profile.
And it’s a first-order object in the Facebook Graph. So if my friend visits my profile and hovers over that link, they’re going to see not only that it came from IMDb, but they’re going to be able to connect to that IMDb page with a Like button directly from Facebook.com.
And this object is represented in Facebook everywhere objects in Facebook are represented today – from the News Feed to the Profile Page, and even in Search Results.
That’s pretty cool. Of course the Open Graph Protocol is not restricted to just movies, but is designed to represent any real-world object represented on the Internet. Taylor describes an example from ESPN.com:
So just as easily as I can connect to a movie on IMDb, I can connect to an athlete on ESPN.com. And those connections have all the same features as connections on Facebook do today. …
I’m going to go to ESPN.com and click that Like button on Toby Gerhart. And because this connection has all the same features as connections on Facebook.com, ESPN can publish updates to all the Facebook users that have connected to this page. So tomorrow, when Toby Gerhart’s a surprise first-round draft pick for the Browns, ESPN can send that update to me and everyone else who’s connected with Toby Brown on ESPN.
So it’s not just that this object is represented on Facebook.com, but the Open Graph Protocol represents a long-term relationship with . This is a really significant step for Facebook. For years we’ve been saying Facebook is an Open Platform. But for the first time, the Likes and Interests on my Profile link to pages off Facebook.com.
And I’m not just updating my profile when I join Facebook. I’m updating it with Like buttons all around the Internet. My Identity isn’t just defined by things on Facebook, it’s defined by things all around the Web.
The punchline – moving from a web of pages to a web of entities. Quoting Taylor:
To date, the Web has really been defined by hyperlinks connecting static pieces of content. We think over the next few years that the connections between people and the things they care about will play as big a part as hyperlinks do today in defining people’s internet experiences.
And our goal with the Open Graph protocol is to really accelerate building out that map of connections in a really significant way.
The Graph API
The Graph API, of course, is the developer interface into the Open Graph. Back to Taylor:
The Graph API is our attempt to re-imagine our core server-side API within the context of this new Graph structure we’re all building out together. We’ve essentially re-architected the Facebook Platform from the ground up with simplicity, stability, and this new graph structure in mind.
… In the Graph API, every object in Facebook has a unique ID – whether that object is a user profile, a group, an event, or a fan page. And to download the JSON representation of any object in Facebook, you just need to download graph.facebook.com/id. You can download the JSON representation of my user profile by downloading graph.facebook.com/btaylor.
And the connections between objects in the graph are represented equally elegantly. I’m connected to things all over Facebook. I’m attending this event. I’m friends with Zuck. I’m a member of many groups. To download the connections for an object, you just need to download graph.facebook.com/id/connection name.
So to download my Friends, you just download /btaylor/friends. To get the Groups I’m a member of, /btaylor/groups. To get all the Pages I’m connected with in the Open Graph, you download /btaylor/likes. And this applies to every single object in Facebook.
And More …
Taylor continues to talk about additional capabilities being introduced into the Facebook Platform, including a new Search capability over the Graph API. Says Taylor:
For the first time, via the Search capability of the Graph API, we’re giving developers the capability to search over all the public updates on Facebook.
This is a really significant thing. For the first time, if you’re making a web page for a brand, you can build a module that says what are people saying about this brand.
Taylor briefly discusses a new real-time eventing model for the platform:
We’re also baking in real-time directly into the API. Using a technology called Web Hooks, you can register a call back with Facebook, and we’ll ping you every time a user of your application updates their profile, adds a new connection, or posts a new wall post.
Now, you register a callback URL, and we’ll tell you when your users update their profiles. This is a huge win not just for developers, but for users. So now when I update my Profile, every application that I use that’s integrated with Facebook will be updated instantaneously.
And finally, the adoption of OAuth 2.0.
The Big Picture – Facebook begins to embrace the Semantic Web
The really exciting thing for me, is that with the Open Graph, Facebook begins its embrace of the Semantic Web. The best post I’ve seen on this topic is from Alex Iskold: Facebook Open Graph: A new take on semantic web – from May 2010.
Facebook developer David Recordon also delivered an interesting presentation at Semtech 2010 on Facebook’s Open Graph, which can be viewed below:
All in all, pretty exciting stuff.