This week we've been exploring the emergence of the Semantic Web among companies like Best Buy and Google. It's all thanks to RDFa, code that is inserted into the HTML of web pages to add extra meaning. The increasing usage of RDFa was one of the main themes at the recent Semantic Technology conference in San Francisco.

There is perhaps no better example than Facebook's use of RDFa. We chatted to Facebook open standards evangelist David Recordon to find out more.

In April this year, Facebook announced a large-scale new platform called the Open Graph. The stated goal of the Open Graph protocol was to enable publishers to "integrate [their] Web pages into the social graph." Essentially, each web page can now become an 'object' in Facebook's social graph (which is Facebook's term for how people connect to each other in its network). This means that pages can be referenced and connected across social network user profiles, blog posts, search results, Facebook's News Feed, and more.

The Open Graph in a Nutshell

The Open Graph is a wide-ranging platform which includes features such as 'Like' buttons and publisher plug-ins. It also includes a simple, RDF-based markup. This requires publishers to include at least 4 metadata properties in each object: title, type, image, URL. There are a few additional properties which may be optionally added, such as site_name and description.

When the Open Graph was announced, ReadWriteWeb feature writer Alex Iskold wrote a comprehensive guide to the Open Graph for publishers, users and competitors. Here's how he described the markup:

"...the markup enables publishers to say what object is on the page - a movie, a book, a recording artist, an event, a sports team, etc. This automatically enables semantics, that is, an understanding that the user is not just interacting with a web page, but that he or she is liking a specific kind of thing. Semantics then leads to bucketing of the objects into categories like books, movies, music, etc., and gives rise to all sort of applications, including personalized recommendations. Perhaps even more importantly, the markup helps Facebook connect the users across common interests across different web sites."

The syntax that Facebook uses is fairly similar to RDFa, without being an exact match. Sandro Hawke from the W3C (the Web's official standards body), told ReadWriteWeb last week that Facebook is using RDFa "in an abbreviated, not really good modeling way."

Facebook's KISS (Keep it Simple Semantics)

The reason that Facebook is using an abbreviated version of RDFa is that they want to make it as simple as possible for publishers to deploy it. And the W3C is fine with this, because it has a rules standard called RIF that can convert Open Graph code into proper RDFa if needed. Also the W3C and Semantic Web community seem to be having fruitful discussions with Facebook.

We asked Facebook open standards evangelist David Recordon why the company chose not to use exact RDFa syntax. He replied that simplicity was paramount, so they wanted to use as few properties as possible.

However, Recordon said that Facebook's code will actually help the adoption of RDFa. He thinks that RDFa will become a more interesting technology when more people are consuming it (via Facebook's variation of RDFa).

Facebook did not set out to support the Semantic Web, added Recordon, it just wanted simple code that was as close as possible to open standards. He told us that Facebook found the "sweet spot" between the complexity of existing Semantic Web standards and the simplicity required for tens of thousands of developers to place 'objects' inside their web pages.

Open Graph Issues

Facebook's Open Graph protocol has its issues, which Alex Iskold outlined in a follow-up analysis in May (it should be noted that Iskold's startup, GetGlue, has been mining web page metadata for a while now - so it's partly competitive with Facebook, although it also provides support for the Open Graph). Some of Facebook's issues were due to poor implementation of the markup by Facebook partners, but Recordon told us that much of this has been fixed now.

Perhaps a bigger problem is that currently only one object can be specified per web page, which prevents multiple topics or people on a single web page from being semantically marked up. Also, Iskold pointed out that there is no way to disambiguate objects - so if two objects have the same name, they are considered the same thing by Facebook. For example, 'Paris' could refer to the city in France or the city in the USA (also it could be the name of an infamous socialite).

Kick Starting the Semantic Web

These issues ideally should be ironed out, but for now it's clear that Facebook wants Open Graph to be very simple so that as many publishers as possible implement it. That's a sensible business decision, although it means that we're only getting a limited version of the Semantic Web for now. However, the support of Semantic technologies by big companies like Facebook, Google and Best Buy will be enough to kick start this new era of a smarter and more structured Web of data.

What do you think, is Facebook doing enough to support Semantic Web standards? Let us know your thoughts in the comments.