Blue Box – by Brainless Angel, Creative Commons, via Flickr
Well, that’s been an interesting couple of weeks. I’ve made progress on both the RDF/Ontology and the Ruby/Rails front – although one much more significantly than the other. We’ll deal with both in a moment, but first a few encouraging signs.
Thanks, as ever, to those who have commented on my posts so far – some interesting questions have been posed, of which I’ll get onto later, and ideas have been discussed. One thing that has encouraged me a great deal has been this article by Tom Scott and Michael Smethurst on coherence at bbc.co.uk – most of which I’m familiar with from work, but the references to non-linear narratives, the BBC as a story-telling organisation, and how to adapt that for the web, are of particular interest and encouragement, because narrative and story-telling is at the heart of what I’m trying to achieve. Michael also wrote this article over at the Radio Labs blog, which is gathering plenty of praise (not least from Tim Berners-Lee himself!) – from my perspective, it’s given me a useful focus on the steps I’d need to take to move these ideas from blog posts to a working prototype, and hopefully beyond.
So, how have I been getting on with a) developing a front-end website for exploration and administration of a fictional universe (by administration, I mean the creation of new elements in the ‘toy-box’ and the links between them), and b) an ontology (and accompanying RDF examples) to describe the narrative content of episodes?
Ruby/Rails – A Web Front End
One half of this project has always been focused on providing a front end application/web site. One in which users (I won’t limit or define *who* they might be at the moment) could navigate and explore a fictional universe, in a wider, more open format than the current focus strictly on the episodes. A suggested approach to the project as a whole has been to create the web app first, use that to produce and store the data in a MySQL (or similar) database, and then expose the data as RDF etc. Unfortunately, my lack of technical expertise has severely hindered my progress on this front. Over a week and a half has been spent on just getting Ruby/Rails up and running properly, and learning the basics (for which, thanks must go to Anthony Green and Craig Webster in particular for being patient and offering help whenever possible). Although it’s still a strand which I think is important, and would like to develop, I’ve been worried that concentrating solely on the Ruby/Rails side is taking me away from the semantic web/linked data roots of the idea, which I’d prefer to get sorted out first. I’ve also realised that before I can really begin to develop the front end properly, I need to know the scope and domain model inside out. Both of these I had a fair idea of, but the domain model in particular was very much a work in progress – and so I felt there was less value in developing the application until I had it sorted out. Note my use of the past tense to describe the domain model – which leads us nicely on to…
OntoMedia – An Ontology for Describing the Narrative Content of Media
This is a story of serendipity (which reminds me, of course, of the Jon Pertwee story ‘The Green Death‘, aka ‘The One with the Giant Maggots’, in which the concept of serendipity plays an important role – anyway, where was I?). I’ve already described in detail my frustrations previously with the tantalising prospect of the SUDS ontology – something which several people have helpfully mentioned as a good starting place, but for which an actual ontology specification has been lacking. I’m still pursuing the SUDS material, thanks to Kim in the comments, but I’ve managed to get my hands on an ontology which might just be what I need – OntoMedia. A chance meeting with Mike Jewell at the last OpenSoho (see, networking can be useful) led to a discussion of this project – and it turns out that whilst at the University of Southampton, Mike and Faith Lawrence (amongst others) developed an ontology called OntoMedia for doing just as described in the heading. It has its’ roots in an exploration of online fan fiction, and is extremely detailed and flexible. The fan fiction roots also mean that it has been designed with geeky subjects like Doctor Who in mind, which is a bonus. However, being so detailed and tailored to the fan fiction roots means that, speaking personally, it sometimes focuses a little too much on fantasy genre elements (detailed descriptions of clans, bonds, blood oaths, woods and coppices etc), whilst seemly lacking a couple of minor basics (although I’m still getting to grips with it, so it’s possible that I’m just missing the obvious bits…!). But that’s not to knock it at all – it’s a highly accomplished piece of work, and allows all kinds of narratives to be described. Since our initial meeting, I’ve been discussing the possibility of developing and improving the onotology – I truly believe that with a little more work, it brings me a huge step closer to my goal, and could end up being widely used throughout the BBC. To be honest, I’m just surprised that no one else had picked up on its’ potential yet.
I think I’ll leave a detailed description of how to go about implementing stuff in OntoMedia for another blog post, but what I can do is give you a flavour of the basic principles. Essentially you establish the existence of (at least) two universes – reality, and the fictional universe. Within the fictional universe you establish a timeline, your characters, locations etc, and link your characters to defined actors in the ‘real world’. Here, we can deal with characters and elements which are of dubious or multiple origins – we can deine essentially concepts that are shared between media, and their provenance as part of a universe (or context). I’ve also then defined episodes as being things existing in the real world, with their own timelines – the episodes are then linked into the bbc.co.uk/programme equivalents. Finally, you establish events which can occur in multiple timelines (and in different orders within those timelines). That’s the principle, at least. For me, it all harks back quite nicely to that ‘toy-box’ analogy. You set the scene, choose your characters, then tell the story. It’s also important to bear in mind that we’re not trying to restrict creativity and lay down the law for what happened and when – to use the analogy from within Doctor Who, some things are fixed points in time (i.e. the stuff shown on screen), others are in flux.
As for my progress so far, I’ve been helped by Yves Raimond in particular for reminding me of the benefits of writing n3 triples, Patrick Sinclair and Nicholas Humphrey for other guidance. I’ve been working to two case studies. The first is to eventually show the benefits of linking characters and events across several episodes – for this, I’ve defined the scope as the 2005 series of Doctor Who (including The Christmas Invasion), with the intention to show the Bad Wolf arc (I can then extend this to cover the second, third and fourth series). The results of which can be seen here and here. (You’ll need an RDF extension like Tabulator for Firefox to navigate the links properly).
The second case study is designed to highlight the benefits of exploring events in the fictional universe and comparing them with the order in which they occur within a given episode – so that the skill with which the writer has constructed the story can be fully appreciated, and the enjoyment of the story can be increased. For this case study, I’ve chosen to concentrate on the award winning story from the 2007 series, ‘Blink‘ – famous for its use of multiple, interconnected timelines – very ‘timey-wimey’, as they say. Results so far, which just set up the timeline, the episode, the characters, actors and locations, can be found here.
Events and occurrences are, by their nature, a little more complex, and I’m currently trying to get my head around how best to represent them – the OntoMedia ontology allows extremely detailed representations of the data, but I’m trying to stick to simple representations for the moment – the achievement of which is my current challenge.
The ontology allows, essentially, the description of any narrative. Which leads me to a potential further case study. Obviously for the moment I’ve been concentrating on fictional universes – but this could easily apply to the real world. Could this be a way to describe events and blend the semantic web into other areas of the BBC’s output in an easier and more subtle way? For instance, coverage of a football match – again, define the teams, the players, the timeline of the match and the various events. Then, again, we would have permanent, stable URIs for each team, player, event – I think the possibilities and potential are huge.
Finally, in terms of my overall approach – my current thinking is to continue with writing the RDF, then load it into a triple store. An application would then be written to allow the querying of data in the triple store, and its representation in a well designed, user facing front end. If there are standard patterns in the RDF for creating characters, events etc using Ontomedia, then ideally the application would take these recipies and allow the user to input the data without having to interact directly with writing RDF.
So there we are – a great deal of progress – not all the way there, but a huge step forward – although the phrase ‘Standing on the Shoulders of Giants’ does come to mind… Once I’ve worked ou how to represent events and occurrences, the triple store will be next, then the Ruby/Rails application, and then some design magic. Wish me luck!