A Comics Ontology – Explained
As I explained yesterday, I developed an ontology to describe the content and form of comics at a Comics Hack Day in 2011 – and yet hadn’t blogged about it, until now. This was prompted by Dan Brickley’s call for contributions to this W3C proposal. I’m not massively in to comics, but I’m always willing to play around with developing ontologies and linked data, so thought I’d give it a go. In the course of the Hack Day research, I did come across the Comic Book Markup Language, which seemed pretty comprehensive, and after having posted last night, I was sent a link to ComicsML. Although I was aware of the former, I thought it would be a good challenge to try and create and ontology myself, and it’s also worth noting that both previous models were in the form of pure XML and DTD schemas – close to, but not completely the same as, RDF and the world of Linked Data. I would, however, say that ComicsML in particular, seems to share some of the same ethos behind my effort – if you read this essay, I’d wholeheartedly agree with a lot of the same sentiment.
Anyway, onwards to the ontology itself. It’s fairly simple, once you ignore the markup. We start off by defining a number of classes, or ‘things’, that can be represented by a URI, and themselves represent an element of a comic. They are as follows:
Card - A Card is the equivalent of a Page in a paper-based comic. It can contain one or more Panels. (Note: I’m happy to change the language here, it was just the term that came to mind at the time)
Panel - A Panel is a framing device which captures some form of action or narrative within the ‘story’ of the comic.
Caption - A Caption describes the action or adds extra information to the story.
These are then broken down into sub-types:
Narrative Caption - A Narrative Caption is a Caption that contains narrative information, rather than ‘in story’ information.
Effect Caption - An Effect Caption is a Caption that contains ‘in-story’, atmospheric information, for instance sound or visual effects.
Back we go to the other elements that make up a comic:
Note - A Note is a comment or set of comments which provide extra information about the contents of a panel or balloon. (This was written mainly with the Lovelace & Babbage cartoons in mind, which make extensive use of footnotes. Other comics do likewise, from time to time, so it may well be a useful element to have in the ontology)
Link - A Link is a URL which can be attached to a Note to send the reader to a primary source. (Again, added with the Lovelace & Babbage app in mind – ideally I might not have something as generic as a ‘link’, but it is a simple construct that can easily be used)
Balloon - A Balloon is a container for dialogue within the story, be it spoken, whispered, thought or broadcast.
And now, into sub-types of Balloon:
Thought Balloon - A Thought Balloon is a container for dialogue or thoughts that are not spoken aloud by characters.
Speech Balloon - A Speech Balloon is a container for dialogue which is spoken aloud by characters.
Whisper Balloon - A Whisper Balloon is a container for dialogue which is spoken aloud, but at a reduced volume, by characters.
Exclamation Balloon - A Exclamation Balloon is a container for dialogue which is spoken aloud, but with an emphasis, for instance surprise, by characters.
Broadcast Balloon - A Broadcast Balloon is a container for dialogue which is heard by characters but delivered indirectly, for instance via radio, television etc.
So, those are all of the ‘things’ that an author has at their disposal to play with. Now come the ‘properties’ that can be used to link these things together. (I’ll ignore the domains/ranges for now)
hasPanel - A Card can have one or many Panels inside it.
onPanel - A Caption can be placed upon one more more Panels.
location - This property gives the events portrayed in a Card or Panel a location in the ‘story world’.
caption - This property allows a Card or Panel to have a Caption attached.
panelOrder - This property assigns an order to a Panel on a Card.
character - A panel can feature one or more characters.
balloon - A panel can have one or many balloons inside it.
balloonOrder - This property assigns an order to a Balloon within a Panel.
linkedBalloon - This property links one Balloon to another, e.g. to suggest they are part of the same speech.
narrative-content - This property links a narrative caption to its content.
effect-content - This property links an effect caption to its content.
speech-content - This property links a speech balloon to its content.
whisper-content - This property links a whisper balloon to its content.
thought-content - This property links a thought balloon to its content.
exclamation-content - This property links a exclamation balloon to its content.
broadcast-content - This property links a broadcast balloon to its content.
source - This property links a balloon or a caption to the character or object from which it emerges.
directed-at - This property links a balloon to a character or object being addressed in the content.
in-reply-to - This property links a balloon to another balloon which has content being referred to in the content.
has-note - This property links a balloon or panel to a explanatory or side note.
has-link - This property links a note to a URL of a primary or secondary source which provides background evidence.
note-content - This property links a note container to the contents of the note.
So, you can see, a bit of a mish-mash of classes and properties that describe the form of a comic, and some that describe the narrative within it. The hope is that at first, authors can mark-up existing comics with these elements, so that they become more findable in search engines like Google, more linkable for people blogging and tweeting (generally, more ‘point-at-able‘), and then secondly we are able to develop tools that allow authors to create comics that are truly of the Web – they may retain the same visual appearance, but their insides are made of the life-blood of the Web – URIs and hyperlinks. (Doing some mapping to the existing models I mentioned would also be helpful!)
I hope people find this ontology useful – please get in touch via Twitter if you’re interested in finding out more, want to enhance it etc. You don’t need my express permission to go ahead and use it, but it would be nice if you could a) let me know if you are, and b) give credit where due for its development.