David Recordon of Facebook has an interesting post titled Why f8 was good for the open web where he talks about how some of Facebook’s announcements at their recent F8 conference increase the openness of the Web. He calls out the following four items as the key benefits to the web as a whole from the F8 announcements

  1. No 24-hour caching limit
  2. An API that is realtime and isn’t just about content
  3. The Open Graph protocol
  4. OAuth 2.0

Of these, the third seems to me to be the most beneficial to the Web as a whole. The first, second and fourth items are really about benefits to Facebook developers. Although I guess you could argue that such a significant service adopting OAuth 2.0 is great for increasing adoption across the Web. However this pales in comparison to the fundamental shifts in thinking introduced by the Open Graph Protocol.

Evolving the Social Graph

The first question is what problem does the Open Graph Protocol solve for Facebook and why are they releasing it?

Figure 1: The Facebook Social Graph in 2006

The original Facebook social graph had a one type of node and edge. The nodes were users and the edges were friend relationships. The operations you could perform on the nodes are also straightforward. How many friends does Jane have? Is Kim a friend of Mary? And so on. As more features were added to the site, new nodes and edges were added to the social graph

Figure 2: The Facebook Social Graph in 2009

Each of these nodes supports similar operations. By counting the number of incoming connections you can tell how many fan's Justin Bieber has, how many people want to show the world their love for the Ramblin’ Wreck or how many people have added Mary as a friend. However as Facebook tries to model more of our offline world, it is clear that these aren’t the only types of relationships that users can have nor are these nodes the only entities users can have a relationship with. Which brings us to…

Figure 3: The Facebook Social Graph in 2011

The Open Graph Protocol is the first step in allowing Facebook users express relationships with arbitrary social objects. If you aren’t familiar with the concept of social objects, Hugh McLeod wrote a great introductory post on this concept entitled social objects for beginners which is excerpted below

The Social Object, in a nutshell, is the reason two people are talking to each other, as opposed to talking to somebody else. Human beings are social animals. We like to socialize. But if think about it, there needs to be a reason for it to happen in the first place. That reason, that “node” in the social network, is what we call the Social Object.

Example A. You and your friend, Joe like to go bowling every Tuesday. The bowling is the Social Object.

Example B. You and your friend, Lee are huge Star Wars fans. Even though you never plan to do so, you two tend to geek out about Darth Vader and X-Wing fighters every time you meet. Star Wars is the Social Object.

Example C. You’ve popped into your local bar for a drink after work. At the bar there’s some random dude, sending a text on this neat-looking cellphone you’ve never seen before. So you go up to him and ask him about the phone. The random dude just LOVES his new phone, so has no trouble with telling a stranger about his new phone for hours on end. Next thing you know, you two are hitting it off and you offer to buy him a beer. You spend the rest of the next hour geeking out about the new phone, till it’s time for you to leave and go dine with your wife. The cellphone was the social object.

Example D. You’re a horny young guy at a party, in search of a mate. You see a hot young woman across the room. You go up and introduce yourself. You do not start the conversation by saying, “Here’s a list of all the girls I’ve gone to bed with, and some recent bank statements showing you how much money I make. Would you like to go to bed with me?” No, something more subtle happens. Basically, like all single men with an agenda, you ramble on like a yutz for ten minutes, making small talk. Until she mentions the name of her favorite author, Saul Bellow. Halleluiah! As it turns out, Saul Bellow happens to be YOUR FAVORITE AUTHOR as well [No, seriously. He really is. You’re not making it up just to look good.]. Next thing you know, you two are totally enveloped in this deep and meaningful conversation about Saul Bellow. “Seize The Day”, “Herzog”, “Him With His Foot In His Mouth” and “Humbolt’s Gift”, eat your heart out. And as you two share a late-night cab back to her place, you’re thinking about how Saul Bellow is the Social Object here.

There are more examples in Hugh’s post but you get the idea. Social objects had been represented by “fan pages” in the Facebook world but with the Open Graph Protocol, it is now possible for any random website to become a part of Facebook’s social graph. This is a very powerful and liberating concept both from the perspective of what it enables Facebook’s platform to do but also because it gets rid of some ugly forms of lock-in. For example, Robert Scoble would no longer need to maintain a brand presence on Facebook at http://www.facebook.com/scobleizer that is different from his website at http://www.scobleizer.com to stay connected with fans of his blog who are Facebook users. 

Turning Web Pages into Social Objects

The process of turning a web page into a social object that Facebook can add to their social graph is very straightforward. From the Open Graph Protocol documentation we learn

To turn your web pages into graph objects, you need to add basic metadata to your page. We've based the initial version of the protocol on RDFa which means that you'll place additional <meta> tags in the <head> of your web page. The four required properties for every page are:

  • og:title - The title of your object as it should appear within the graph, e.g., "The Rock".
  • og:type - The type of your object, e.g., "movie". Depending on the type you specify, other properties may also be required.
  • og:image - An image URL which should represent your object within the graph.
  • og:url - The canonical URL of your object that will be used as its permanent ID in the graph, e.g., "http://www.imdb.com/title/tt0117500/".

As an example, the following is the Open Graph protocol markup for The Rock on IMDB:

<html xmlns:og="http://opengraphprotocol.org/schema/">
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />

The following properties are optional for any object and are generally recommended:

  • og:description - A one to two sentence description of your object.
  • og:site_name - If your object is part of a larger web site, the name which should be displayed for the overall site. e.g., "IMDb".

For now Facebook supports a limited set of object types from the following categories; activities, businesses, groups, organizations, people, places, products & entertainment & websites. Once your page is marked up and categorized, the next step is to provide a way for users to add it to their social graph on Facebook. This is done by using adding the Facebook Like button to the page. From then onward, when a user clicks the Like button they become a fan of that page.

Not only is your page added to their profile but you can also send news feed updates to all the people who have liked your page (just like “Fan Pages” can) if you associate the Like button with your Facebook ID. Doing that provides you with an admin page where you can post news feed entries from.

The Return of the Semantic Web

One of the things I find most exciting about this development is that sites now have significant motivation to be marked up with extremely structured data which can then be consumed by other applications. Having such rich descriptive metadata will be a boon to search engines especially those from startups since some of the big guys consider their ability to extract semantics out of HTML tag soup a competitive advantage and have thus fought the semantic web for years.

In the social media space, a few people have focused on the fact that this data is put in place to enable sites to be added to Facebook’s social graph. However there is little reason why other social networking services couldn’t also read the same markup as a way to add those web sites to their social graph. For example, Yelp is one of the sites that now supports the Open Graph Protocol so when I click like the Pro Sports Club it is added to the list of “pages” I’m a fan of on Facebook. However I could just as easily see that being a [Twitter – Like] button which would add the Twitter account for the gym to my following list along with tweeting to my followers that I liked the gym. It would only take adding a markup element to what Yelp is outputting to indicate the Twitter account of the page being liked. With my Windows Live hat on, I can imagine going to Amazon or IMDB and clicking a [Windows Live – Like] button which would add the movie to my list of favorite things. There are a ton of possibilities this opens up in a totally decentralized way without forcing services or users to be locked into a particular social network.

This has been the dream Tim Berners-Lee has been pushing for years and I’m quite surprised to see Facebook being the service to take RDFa mainstream. One of the things I’m happiest about is that Facebook chose RDFa for their implementation instead of the much hyped yet weaker solution, microformats. As Evan Prodromou wrote a few years ago in his post RDFa vs. Microformats, RDFa encourages interoperable implementations between organizations and avoids naming collisions via namespacing as opposed to the microformats approach which requires a centralized committee process to add/remove elements from data formats. From my example above, adding support for indicating the Twitter account of a page that implemented the Open Graph Protocol would be as simple as adding an element namespaced to some Twitter URI. That is distributed extensibility in action.

Final Thoughts

This is a very exciting time for the Web. I suspect that this will be another Facebook platform hit that exceeds expectations. The same way no one could have predicted Zynga and Farmville when the Facebook platform first launched is the way I feel we’ll all be surprised at the sorts of things that will be powered by the Open Graph Protocol in the next year or two.

Note Now Playing: Timbaland - Say Something (featuring Drake) Note


Saturday, April 24, 2010 5:30:44 PM (GMT Daylight Time, UTC+01:00)
So you've liked and now it's in a graph. What can you do with it?
Saturday, April 24, 2010 7:03:46 PM (GMT Daylight Time, UTC+01:00)
The service can power all new features that work based on graph operations with that data. For example, the same infrastructure that powers Friend Suggestions based on mutual friends can now power Movie/Book/Music/etc suggestions since these are now just nodes in the graph.
Saturday, April 24, 2010 9:10:52 PM (GMT Daylight Time, UTC+01:00)
Hey Dare,

It's awesome to see you, at the very least, warming up to the Semantic Web & RDF :) I think RDF is a great way to represent data. While I'm not a huge fan of Facebook's public-by-default "privacy" settings, I really think their recent "Open" Graph protocol is a step in the right direction and will have a positive ripple effect for RDF "in the wild". Now, we just have to get Big Co. (Msft, Goog, Amzn) to start seeing value in it. I heard Microsoft cut RDF support from Astoria (SQL Azure) which pained me at the announcement of.

I would love to see a Facebook SPARQL endpoint.
Sunday, April 25, 2010 6:42:46 AM (GMT Daylight Time, UTC+01:00)
Well said. This is exactly my take on the new API. I echo your excitement about the semantic web, hopefully this is only the beginning of a deeply connected, marked up semantic web. BTW, did you sued to work in redwest? I think I remember seeing you there (I'm in AdCenter).
Sunday, April 25, 2010 10:27:13 AM (GMT Daylight Time, UTC+01:00)
Dare, completely agree with you that this is an exciting time for the Semantic Web. I am looking forward to seeing the various 'Like' buttons appearing on all web pages as with the current crop of 'Share' buttons. Now just waiting for your pages to be updated in the same fashion ;). Also glad that it took the startup Internet White Pages/Telephone book (Facebook) to get this out there, it couldn't have hoped for a better startup partner. I only hope that others will make use of the Graph API and expand its reach. Assume that with Microsoft's close ties with Facebook that they too will quickly grab on to this opportunity?

Good read as per usual. Bring on the Semantic Web!
Sunday, April 25, 2010 4:31:51 PM (GMT Daylight Time, UTC+01:00)
The best explanation of the Open Graph I have seen to date. Great work.

I think this is a bigger deal than most people realize. Maybe due to it being the early stages but it opens the door for so many new areas online. Imagine the possibilities when Facebook moves heavily into search technology beyond their own site. Personalized search beyond anything Google, Bing or Yahoo could dream of offering because Facebook has your online thumbprint at their disposal.

Combine that with the relationship building of semantic web and suddenly Facebook can match you with areas on the net using suitability algorithms. I am presuming they will announce their work with geo locations and soon you could find people in your area that like the same things you do and it's possible to socially interact with them online and build friendships further.

I am excited to see where this takes us for the future, even if the privacy concerns are there.
Sunday, April 25, 2010 7:15:50 PM (GMT Daylight Time, UTC+01:00)
...The issue for me is that FB is a closed silo and will continue to be closed....the "open" graph is not open....you have to be a member of FB to use it....so its not "open"......I come from a time where "Open" had a meaning that was not bent and shaped by companies....For me "Open" means that no company "Owns" either end the process....In the case the the FB Graph.....(Note I m calling it the FB graph as this is what it is.....) FB owns the entier process....Its interesting to note how times have changed in my opinion for the worse....At one time Microsoft attempted to do the same thing that FB is attempting to do....and then developers and the tech "community" were up in arms....Why would we allow a company like MS take control of our identities and the internet ? Well then we said that we would not allow this and it did not happen.....I think that some the reason that FB has been able to continue to push their attempt to close off the internet is that when journalist write about or repeat the FB pr line, their is not context given....If the current coverage of the FB Closed Graph included the "Facts" concerning FB's total lack of respect for member privacy as well as for third party developers, I think that the outcome and perspectives would be very different......As for the developers inside and outside of FB that are building and extending FB's attempt to close off the internet....you are all complicit, and as a developer myself....I know that all of you know the implications of what you are doing....Mark Zuckerberg cannot close off and pollute the internet without the participation of developers......You can pretend you set silently at your computers writing code without understanding the very real implications of what you are doing....but we all know that this is not true...Developers have always been the vanguard of an open internet and we need to continue with this fight..........As developers we have allowed a company with the track record of zealous tyrannical dictator to steal a "standard" that should be owned by the internet community at large...There is no magic in what the litter dictator is proposing.....A group of developers could and should create a truly open graph so that any one can create and consume the data....The sad and horrible fact is that instead of doing this the very developers that have been entrusted to keep the internet open have created the tools that will be used to close it off....

Sunday, April 25, 2010 10:50:55 PM (GMT Daylight Time, UTC+01:00)
Great summary of the social aspects Dare. I agree with JayTurn that from an industry point of view this is the beginning of the new decade in internet development - post-Google.


Monday, April 26, 2010 12:48:20 AM (GMT Daylight Time, UTC+01:00)
As a fellow web developer, I have to disagree that this is good for the web. At all.

Yes, Facebook's new toy, er... protocol is kind of semantic. Yes, part of the graph is embedded using standard HTML metadata markup. But all of the data it gathers and analyzes become <em>centralized</em>. Stored in its own databases! How can that be good for the web?

The point of the semantic web is to be connected, yes. But to be connected in a certain way: namely, in an open and decentralized way (like RDFa supports). <em>Not</em> closed and centralized and irrecoverable.

Since Facebook only got one of three things right, and that thing (connection) is the only thing that matters to the masses, there will be little incentive for everyone to move to another service later that is connected, open <em>and</em> decentralized.

So while one third of the "open" graph is useful, the other two aren't. And I think that if Facebook's graph becomes the "standard", apathy will prevent the web from evolving further.

That can't be a good thing, can it?
Monday, April 26, 2010 7:03:41 PM (GMT Daylight Time, UTC+01:00)
Good article and nice move from Face book which makes a big thread to Google. I'd rather be happy to see that the data are stored in my own data locker and with my permission Face book uses them (obviously for data mining)...from Face book, I must be dreaming!
I also agree that the Open Graph protocol is open (partially) as other (like Google, Twitter and others) can also perform their own search based on "og" RDFA.
My other concern is that in the face book "og" RDFA there are only very limited types of social objects those can be used. I think we need more complete scalable schema, and instead of RDFA we make want to use OWL for different domains, otherwise by the end of this year we'd see other protocol coming up to connect every social objects within the social graph. But we make this process too complex then we may loose the interest from the publishers, and the revive semantic web movement will die prematurely!
Tuesday, April 27, 2010 2:08:37 PM (GMT Daylight Time, UTC+01:00)
Happy to say so, this is the future of the web. I think Facebook is hitting this a bit prematurely, HTML5 will be able to provide this type of tracking. What this points out is the need for a standard in terms of managing microdata. Having individual organizations specify the tags used to define microdata segments the web -- into those that think Facebook is the future, and those that think it will die, so why listen (remember MySpace?).

I just wrote up an article on Rich Snippets and microdata/microformats/RDFa the other day having seen an announcement on the Google Webmaster Blog, I think this is what the future of the web is. It's not bad, it's just not time yet. It would be nice for services to be able to accurately categorize events, people, books, etc -- in a globally accessible format. Just remember though, META keywords / description used to do this in a way, and are currently considered obsolete due to abuse.
Wednesday, April 28, 2010 7:38:02 AM (GMT Daylight Time, UTC+01:00)
Nice idea
Comments are closed.