The R&D Prototyping team has recently built an internal prototype for BBC Vision called the Mythology Engine. It's a proof-of-concept for a website that represents BBC drama on the web letting you explore our dramas, catch up on story-lines, discover new characters and share what you find.

Most TV drama on the web is either deep and detailed fan-produced sites or visually rich but shallow sites from the broadcasters. We believe there is a middle way and it seems like there's a space for something here. Something that expresses the richness and depth of the stories that the BBC creates. Somewhere that will be the default place to find out about our stories and somewhere that people will link to and share with their friends. So we built a prototype based around the stories of Doctor Who. Theo Jones, Creative Director for Prototyping talks us through the prototype in this video:

In order to see this content you need to have both Javascript enabled and Flash installed. Visit BBC Webwise for full instructions. If you're reading via RSS, you'll need to visit the blog to access this content.

That's a taste of what this prototype can do. Like I said, it's a proof-of-concept that we're using within the BBC and we're not planning on launching it. That said, do tell us in the comments if you like the idea. We are using Doctor Who as an example because it is a high-profile brand with a large archive and is particularly narratively complex in places - time travel is hard! The rest of this post will look a bit deeper into the project and talk about some of the thinking behind the prototype and the process used to build it.

What should it do?

Our objectives for this project were to build something that would demonstrate how you could express stories in a form tailored for the web, to show how this would allow people to explore BBC dramas and unlock the archive, and to create a reusable framework that could apply to all dramas and stories. The prototype should let you:

Catch up on stories you've missed

Explore stories and characters and help you understand plots and relationships

Find the stories you are looking for and share your favourite moments or characters

Luckily there is some previous work to look to in this area. Several years ago the BBC looked at representing Eastenders in RDF, my Radio Labs team built a prototype for a similar concept around the Archers a couple of years ago and Paul Rissen, one of our information architects has done a lot of thinking about narrative on the web as have various academic projects like Ontomedia.

Because there are always issues around the rights of distribution of programmes we designed it to work with and without short video clips, as these seemed relatively realistic to have. There is no long form video in the prototype for this reason, and also because it's not designed as a replacement for iPlayer. It should be complimentary to existing BBC sites.

One way of thinking about this that I've found helpful is to imagine the story existing in the writer's head before the scriptwriting and production creates the broadcast programme. The viewer then watches this, understands it and reconstructs the story. The Mythology Engine is designed to assist in this process; to let the audience explore complex plots or catch up on episodes they missed or stories they remember.

Modelling stories

By designing the Mythology Engine to take advantage of architecture of the web with unique pages per concept and interconnecting links everywhere, we increase the findability and sharability of our content. To do this we used a domain-driven modelling approach and this is a simplified version of our data model.

A story can actually be several things; a single episode (like most current Doctor Who) or a multi-episode story (like classic Doctor Who) or a long-term, ongoing story arc (like Bad Wolf arc). Stories are then collections of events, where an event is a specifically chosen, significant thing that happens in a story. This could be anything, but the important thing is that it is editorially chosen to tell the story. And then, pretty obviously, events occur in places and feature characters, who have relationships between each other and can belong to groups. And there are things, a catch-all term for everything else that might affect the plot - the murder weapon, a sonic screwdriver, things like that.

This picture shows how the story concept in our model maps back onto a programme as it appears on TV or radio. The story, consisting of events, is represented as scenes in the programme. Often an event will correspond exactly with a single scene in a programme, or maybe a scene will portray more than one event. And sometimes an event can be portrayed in several scenes, maybe to build tension or to show it from different characters' perspectives. And events might not even occur in the "correct" chronological order within the programme, it's all about telling the story and building suspense and that's what the prototype needs to support.

Building it

The site was built in Rails, principally by Duncan Robertson, assisted by Chris Bowley for the Flash visualisations. It uses a simple Rails-based Content Management System called Typus with some small customisations to the interface to enter data. Our approach to building prototypes is agile and iterative so we modelled the data, got running code as soon as possible and then did some ad-hoc user testing with some colleagues. The main feedback from this was that we should make stories and time more obvious, have more clarity around your current context in the page and the site, try to increase the interlinking and to focus on the quality of content.

Craft your data

We think this last one is particularly important. Having the model is not enough, you also need to bring to life the things and the connections between the things in a compelling way. So for this project we hired a freelance Doctor Who writer and he created all the data and relationships and wrote all the descriptions that are in the prototype; five whole stories (some classic and some contemporary), a couple of story arcs and about forty characters and thirty places.

Representing time

In the story "Blink" there is lots of time-travel. Whenever a character is touched by one of the statues they are thrown back in time. We model all of this as ordered events with timestamps so you can imagine there are various timelines that we could present - how things happened in linear time (i.e. earliest first), how things happened from a character's perspective or how the story was presented on screen. In the end we decided to show the timeline as it was presented on screen, which makes it relatively straightforward and is what the storytellers intended.

You can see how it jumps between the present day, 1920 and 1967.

It's not just Doctor Who

Having completed the Who prototype we wanted to show that the framework was re-usable for another drama. So we re-deployed the code to a new server, wiped the database and set up an Eastenders Mythology Engine in a couple of days, reskinning it and creating a small number of stories and characters. There are some things we would have done differently if we'd started with Eastenders. We would have concentrated less on timelines and more on relationships and characters, but ultimately we think it works across the brands.

What next?

We think this is a really exciting concept, the prototype is done, and hopefully we've contributed some original thinking along the way. Having built the Mythology Engine there are several interesting research projects that we've been thinking about: