An Introduction to RDFa and the Semantic Web

At the Drupal 7 Release Party just over a week ago, Mark Birbeck gave a presentation on RDFa and the Semantic Web, as Drupal 7 has just launched with native RDFa support. To be honest, I had little understanding of what RDFa actually was before I saw Mark speak, and after the talk I was nerdishly excited by the prospect of what RDFa can do.

RDFa expands out to mean ‘Resource Description Framework in attributes’. With me so far? No, I got lost about there as well. However, Mark went on to explain RDFa in context (which, funny enough, is what RDFa is about)…

The internet is meant to be consumed by people. That is, for the most part, people can cope with differences in layout, spelling, design and words and still absorb the meaning. However, machines have a harder time extracting meaning. This is where frameworks like RDFa step in to create what is known as the Semantic Web, which is boiled down to information marked up in a way that machines can easily understand it by giving that information context.

The main advantage of the Semantic Web is improved search, which pulls in information from across the internet and surfaces it in a way that is useful to users. Examples of this are already being seen in major search engines like Bing, Google and Yahoo! using RDFa to surface information in searches that provide more information than just a result.

For one such example, we did a search for Empire Records on the three mentioned search engines, with each returning rich results thanks to RDFa tagging…

Bing - Includes rich data about Empire Records

Google - Includes collated ratings from users

Yahoo! - Includes collated user rating and pricing information

However, one of the issues with RDFa is how do you make sure you are using the same attributes as everyone else? This is handled by RDFa vocabularies. Most search engines use a list of well known vocabularies, including Dublin Core (standard and academic), FOAF (people), hReview (reviews) and GoodRelations (products), with Yahoo! providing a decent list of accepted vocabularies and uses on their site (that is relevant to most major search engines). However, Google goes out of their way to use another system, based on their data-vocabulary.org site and is outlined on their support site. (UPDATE: As on November last year, Google have started supporting the GoodRelations vocabulary for products. Thanks Martin!)

Over the next week I’m going to boning up on RDFa tagging and having a play within our favourite CMSs. I’ve already found a list of plugins, extensions and native support (as mentioned with Drupal 7) and am going to report back on how to implement RDFa tagging in your site in the most painless way possible. In the meantime, head over to Mark Birbeck’s rather indepth articles ‘Introduction to RDFa Part I‘ and ‘Introduction to RDFa Part II‘ on A List Apart to read indepth about RDFa.

If you have any tips or hints to help out with RDFa in WordPress, Joomla, Umbraco or Drupal then comment or drop me a tweet at @Ubelly.

Published by Luke

Luke is one of Ubelly’s resident social media guys, occasionally switching hats for a bit of design. He is the in-house meme expert, uses foursquare a little too much and gets hot under the collar when it comes to design, usability and gorgeous code.

5 Comments So Far, what do you think?

  1. Pingback:Tweets that mention Underbelly » An Introduction to RDFa and the Semantic Web -- Topsy.com

  2. Martin Hepp

    Hi,
    an excellent article – minor, yet important update: On Nov 2, 2010, Google replaced its proprietary RDFa vocabulary for products and is now using the GoodRelations standard vocabulary. See here for a how-to:

    http://www.heppresearch.com/gr4google

    Best wishes

    Martin Hepp

  3. Luke

    Thanks for that Martin! Shall update the post. Would be great to see them using the other standards too instead of their own parred down version.

  4. Pingback:Underbelly » RDFa in Practice: Part 1 – Wordpress and Drupal

  5. Pingback:#Twespians bloggers’ seminar (part 1 of 4) — Scott Matthewman

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>