You are on page 1of 20

The Open Graph protocol

Understanding the design decisions

WWW Conference 2010


April 29th, 2010
David Recordon
The product experience
Design goals
Useful to others beyond Facebook.
Copy and paste.
Simple markup. Simple schema.
What’s needed?
1 What is the user liking?

2 A clean page title

3 An image

4 A canonical URL
1) What is the user liking
Based off of the most popular categories for Facebook Pages.
▪ Activities
▪ Businesses
▪ Groups
▪ Organizations
▪ People
▪ Places
▪ Products and Entertainment
▪ Websites
2) A clean page title
Search Engine Optimization has caused all sorts of stuff to
be crammed into the <title> tag.
▪ “The Semantic Web & THE POWER OF PULL | Blog Archive | The Facebook
Open Graph, Part I”
▪ “A New Data Model – Facebook Developer Blog”
▪ “W3C Track @ WWW2010, Raleigh, NC, USA ; 29-30 April 2010”
▪ “Open Graph Protocol | Google Groups”
4) A canonical URL
We wanted to use link-rel canonical.
▪ Major publishers were concerned that adding link-rel canonical would
negatively impact their ranking within search engines.
A simple example
What’s desired?
5 A short description

6 A site name (for collections of pages)

7 Location information

8 Contact information
5) A short description
A simple schema.
▪ Not respecting Don’t Repeat Yourself.
▪ Optimized for a consistent schema versus reuse of existing meta tags.
▪ One namespace. One prefix.
▪ One HTML tag attribute (“property”)
What we didn’t want
But tried.

Too complex!
7) Location information
▪ Couldn’t find a – simple – location markup specification.
▪ Reused the property names from the Microformat hCard
▪ Fully expect this information to be expressed within the page body
versus the head.
▪ RDFa gives us a consistent syntax for both cases.
Adoption
Adoption
Seven days later!
▪ Hosted services
▪ og:it - simple metadata extractor to HTML
▪ OpenGraph.in - simple metadata extractor to HTML and JSON
▪ Multiple RDF parsers now understand the Open Graph protocol
▪ Open Graph protocol to JSON convertor for testing
▪ Open Source libraries for Java, Perl, PHP, and Ruby
▪ WordPress plugin for easy publishing

http://opengraphprotocol.org/#implementations
Thanks! Questions?
http://opengraphprotocol.org/
davidrecordon@facebook.com