The Open Graph protocol

The Open Graph protocol enables any web page to become a
rich object in a social graph. For instance, this is used on Facebook to allow
any web page to have the same functionality as any other object on Facebook.

While many different technologies and schemas exist and could be combined
together, there isn't a single technology which provides enough information to
richly represent any web page within the social graph. The Open Graph protocol
builds on these existing technologies and gives developers one thing to
implement. Developer simplicity is a key goal of the Open Graph protocol which
has informed many of
the technical design decisions.

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., "video.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:

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

og:audio - A URL to an audio file to accompany this object.

og:description - A one to two sentence description of your object.

og:determiner - The word that appears before this object's title
in a sentence. An enum of (a, an, the, "", auto). If auto is
chosen, the consumer of your data should chose between "a" or "an".
Default is "" (blank).

og:locale - The locale these tags are marked up in.
Of the format language_TERRITORY. Default is en_US.

og:locale:alternate - An array of other locales this page is
available in.

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".

The global types are grouped into verticals. Each vertical has its
own namespace. The og:type values for a namespace are always prefixed with
the namespace and then a period.
This is to reduce confusion with user-defined namespaced types which always
have colons in them.