In April 2010, both Facebook and Twitter announced separate efforts towards integrating semantic metadata into their core services. Facebook have launched their Open Graph protocol, which allows external site owners to markup their content using Facebook-defined schemas, such that these enriched content items can then be used for metadata import into news feeds, profiles, etc. Twitter have described their forthcoming Twitter Annotations extension, whereby users of their API will be able to attach arbitrary metadata to any microblog post, subject to an overall size limit for the metadata payload. (I’ve already mentioned Twitter Annotations in a previous post.)
Through Facebook’s Open Graph protocol, metadata about objects described in external sites can be embedded within Facebook, and this content can be linked to the Facebook user IDs responsible for it (via the fb:admins property). The developers state that it is intended for real-world things (e.g. movies, politicians, restaurants), and they provide certain metadata properties for describing common aspects of these things, such as og:title, og:locality, og:email, etc. While specific properties of different types of things have not been finalised yet (e.g. cuisine types or price ranges for restaurants), this will be a natural evolution. An example set of metadata for a movie is shown below.
Open Graph has been seen as an endorsement of the Semantic Web effort by many, or as an attempt by Facebook to bring more logins/external content into their platform by others. However, the Open Graph effort is also an opportunity for third-party services outside of Facebook to leverage the metadata that many people will undoubtedly add to their content to make it Facebook compatible/importable.
Open Graph could also be a much-needed adrenalin shot for the now-defunct Structured Blogging effort. Structured Blogging (via the Wayback Machine) was an open-source community effort that created tools for popular blogging platforms such as WordPress and Movable Type, so that users could provide more structured content about the item being blogged about. For example, structured blog posts could be made about things like videos, people, restaurants, etc., and this fits nicely with the types of things that Open Graph aims to annotate.
As mentioned previously on my personal blog, in structured blogging, packages of structured data become post components. Instead of one big text box filled with content, the user is presented with extra boxes for filling in additional metadata fields about the thing being described. For example, someone may be writing a review of a book that they read, or reporting on a sports game they attended, or creating a list of tourist attractions they saw on their travels, and they would also fill in the appropriate boxes for those item types (e.g., author name, final score, or attraction type, respectively).
Sometimes (not all of the time), a person will have a need for more structure in their posts – if they know a subject deeply, or if their observations or analyses recur in a similar manner throughout their blog – then they may best be served by filling in a form during the post creation process which has its own metadata and model. Structured Blogging tools provided a fixed set of forms that bloggers could fill in for things like reviews, events, lists, audio, videos, people, and groups/organisations (see this screenshot). Not only do people get to express themselves more clearly, but blogs can start to interoperate with other applications through the machine-readable microcontent that is being created in the background.
The term microcontent indicates a unit of data and associated metadata communicating one main idea. Microcontent can be represented using RDFa or microformats, both of which enable semantic markup to be embedded directly within HTML. These provide a simple method for expressing content in a machine-readable way, facilitating reuse and aggregation. For example, information about a person, their interests and their social network can be described in RDFa using the FOAF (Friend Of A Friend) vocabulary. An example of a microformat is hCard, which allows for the structured description of business card-type information within web pages. These could be used in conjunction with other properties described using the Open Graph protocol.
Take the scenario where someone (or a group of people) is reviewing some soccer games that they watched, e.g. in the forthcoming World Cup in South Africa. Their after-game soccer reports will typically include information on which teams played, where the game was held and when, who were the officials, what were the significant game events (who scored, when and how, or who received penalties and why, etc.). It would be easier for these blog posters if they could use a tool that would understand this structure, presenting an editing form with the relevant fields, and create microcontent-enhanced HTML with this structure embedded in it for reuse elsewhere.
Structured information about a sports event expressed using the Open Graph protocol could be imported into Facebook, or the metadata could be gathered by a search engine for enhancing search results. Alternatively, others reading an enhanced post could choose to reuse this structure in their own posts, and their blog reading/writing application could make this structure available when the blogger is ready to write. Through an aggregation of data from multiple blogs, and if all the content was marked up using properties like dc:date, fb:admins, og:type and og:country-name, applications could then begin to answer questions based on the available fields such as “show me posts about recent sports events in South Africa created by my friends”.
It would be great to resurrect Structured Blogging with Open Graph in mind. Some related works are already emerging – the Open Graph protocol plugin for WordPress, the forthcoming RDFa support in Drupal 7, and the Drupal content type to RDF(a) export module – all of which could act as starting points. Extending the example shown earlier, a blog post (in yellow) would simply be “about” some other real-world thing (the movie, shown in blue), and a review (in green) could be attached. With some imagination, the applications that could be built on top of this huge distributed set of user-generated blog posts about real-world things becomes quite intriguing.