An ontology for programmes

What is an ontology? Well if you Google for it you’ll find lots of references to “an explicit specification of a conceptualization“. More usefully an ontology is a way of formally describing what something is and how it relates to other things.

British Library

Over the last few years their popularity has waxed and wained: Yahoo tried to categorize web sites into predefined hierarchical categories – but as Clay Shirky points out that didn’t work so well because “there is no shelf“:

Yahoo, faced with the possibility that they could organize things with no physical constraints, added the shelf back. They couldn’t imagine organization without the constraints of the shelf, so they added it back. It is perfectly possible for any number of links to be in any number of places in a hierarchy, or in many hierarchies, or in no hierarchy at all. But Yahoo decided to privilege one way of organizing links over all others, because they wanted to make assertions about what is “real.” […]

One reason Google was adopted so quickly when it came along is that Google understood there is no shelf, and that there is no file system. Google can decide what goes with what after hearing from the user, rather than trying to predict in advance what it is you need to know.

In other words rather than having a site located in one predefined location within a classification scheme you have linked resources. Obvious huh? But in that case why does anyone bother with trying to define a classification system? Because there are situations where having a classification scheme does make sense. Clay suggests these situation include the following:

  • Small corpus
  • Formal categories
  • Stable entities
  • Restricted entities
  • Clear edges

The whole of the internet doesn’t fit these criteria, which is why Yahoo had problems – but somethings do – and one that does are TV and radio programmes, not at the subject matter level but at a meta level, at a level of how programmes are structured: episodes, series, broadcasts and the like.

A few years ago the Audio and Music part of the BBC, where I now work, started to look at how to model programmes – Tom Coates post ‘the age of pointing at things‘ describes much of this early work. Since then we’ve significantly re engineered the underlying technology and rolled it out for all BBC programmes.

As I discussed previously the idea behind BBC Programmes is to ensure that every programme brand, series and episode broadcast by the BBC has a permanent, findable web presence. The Programmes Ontology was developed by Yves, Michael, Patrick and Nick to expose this data following the Linked Data approach, enabling the interchange of programme information on the Semantic Web. This then is the current ontology for programmes:

Programme ontology

The ontology provides identifiers for concepts such as brand, series and episode and is divided in two main parts. Firstly, it describes categorical information about programmes, and the relations between those categories. For example, it allows the description of a programme brand, a series constituting it and the episodes in that series. And secondly it describes the services and broadcast events.

Internally we’ve used this ontology and a D2R server to map the underlying relational databases to RDF through SPARQL which resulted in over 5 million RDF triples accessible via multiple views (brand, series or episode) in addition to direct queries via the SPARQL interface.

SPARQL is a bit like SQL for RDF and the so provides an interface that allows access to the data in ways that would be difficult to achieve via the Programmes web interface. In addition SPARQL can be used to connect and combine data sources external to the BBC, such as DBpedia, which can be used to contextualise the programmes data with information not held within our dataset e.g. the date and place of birth of cast members.

Finally to facilitate its uptake we have released the ontology under a Creative Commons license. So if you need to model TV or Radio programmes please feel free to use it.

Photo: The British Library, by Steve Cadman. Used under licence.

5 responses to “An ontology for programmes”

  1. I find your specification quite hard to read. The diagram at the top is good, but listing the classes and properties in alphabetical order makes it quite hard to follow.

    There’s also no explanation as to what “testing” and “unstable” mean.

    I wonder if the Brand > Series > Episode is enough to cover the full spread of programmes. What about brands that have sub-brands, or spin-off brands? The relationship between “episode” and “programme” is also confusing.

    In short, unless everyone else understands RDF and ontologies much better than me, we could do with more in the way of explanation and examples!

  2. Thanks for the feedback.

    The stages: “unstable”, “testing”, “stable” are roughly analogous to “alpha”, “beta” and “gold standard” in software development. But I grant you it’s not that clear – unfortunately there isn’t an agreed way to document changes in ontologies – I guess the SKOS stuff is close.

    It doesn’t model spin off programmes and other relationships between programme brands. But other relationships are modeled OK, I think. BTW Brands are things like Waking the Dead or Heroes (what would be a ‘sub-brand’ in your mind?)

    Why is the relationship between episode and programme confusing?

    But you’re right may be it’s a bit confusing without examples – I’ll right another post to expand on this when I get a moment.

  3. […] stuff with it. If you would like to find out a bit more you can read my previous post about the ontology, the abstract for XTech or better still come and listen to Nick and myself in Dublin on the 8th […]

  4. […] Tagged json, linked data, ontology, rdf, xml, yaml Here are the slides from my recent presentation at XTech on our work on the BBC Programmes Ontology. […]

  5. […] cataloguing the BBC’s efforts at openness—using something like the ‘programmes ontology‘ developed by Tom Scott? I want to leave behind something that might have some formal value: […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: