April 18, 2014

Facebook Talks Semantics with Open Graph


5_26_10 web.jpg
The recent announcement of Facebook’s Open Graph Protocol has made it clear that the “Semantic Web” (in which meaning is defined for content) is closer to becoming a reality than ever before.

Intelligent Agents

For the uninitiated, here is the original vision for the Semantic Web as expressed by Tim Berners-Lee:

“I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web – the content, links, and transactions between people and computers. A ‘Semantic Web’, which should make this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The ‘intelligent agents’ people have touted for ages will finally materialize.”

What this amounts to are web pages that (in addition to content) contain meta-data which are used to define the information within.

Let’s take a look at a few different ways this can be applied in the real world.

Meaningful Content

Here is an example of how we would describe “The Rock” IMDB page using the Facebook Open Graph protocol:

<meta property=”og:title” content=”The Rock” />
<meta property=”og:type” content=”movie” />
<meta property=”og:site_name” content=”IMDb” />
<meta property=”og:image” content=”http://ia.media-imdb.com/rock.jpg”/>
<meta property=”og:url” content=”http://www.imdb.com/title/tt0117500/”/>

This information, while hidden from the user, is easily readable by other machines, making it very simple to connect web content with objects from the Social Graph.

Now, when you click “Like” using Facebook social plug-ins, it knows exactly what information you are linking to, and how to properly store and display the connections.

Developer Simplicity

Before the release of the Graph API, it was a hassle to get data out of Facebook. Their solution consisted of a custom authentication protocol, Facebook specific markup language, and several other convoluted ways to access simple information about a user.

With the Graph API, Facebook turned it around considerably.

For authentication, they have switch to oAuth, an open protocol used by sites like Twitter, Flickr, and Google to authenticate users.

As for accessing the data, they have created a simple, clean API that returns the data in the JavaScript friendly JSON format. (Example: http://bit.ly/dirXn4).

OpenGraph versus “Open”

For those of use who have been watching the evolution of Semantic tools (SPARQL) over the years, it is both disappointing and exciting to see Facebook venturing into this territory.

The excitement comes because we know Facebook has lots of users, which means their user graph is already extremely robust, and is only going to get bigger. This has been the biggest challenge in Semantic: without users, you don’t have a graph. Without a graph, there isn’t anything to find.

The disappointment comes because Facebook has ditched the traditional set of Semantic technologies for yet another custom protocol. This means tools already written to build and query Semantic graphs must now be abandoned (or rewritten) to utilize the less-robust Facebook graph information. Technology aside, the bigger issue here is that the graph is owned by Facebook. This is pretty ironic, considering it is a proprietary technology with “open” in the name.

In my opinion, for anything to truly revolutionize the web, it has to be based on open standards.
What do you think?

Photo Credit: Marc_Smith