<span class="padlock_text"></span> v26 #6 Decoder Ring

by | Mar 13, 2015 | 0 comments

Comic Book Markup Language

Column Editor: Jerry Spiller  (Art Institute of Charleston)

If you missed the Charleston Conference this year, then it stands to reason that you also missed my talk on Comic Book Markup Language (CBML).  If you have a collection of comics that you’d like to open up for retrieval and analysis, CBML is a vocabulary for representation of comics documents in XML developed by John Walsh at Indiana.1

CBML is an extension of Text Encoding Initiative (TEI).  As such, it incorporates elements of TEI as well as its own elements focused on comics content and features.  Many TEI elements are available to represent common structures in a variety of text documents, for instance chapters, paragraphs, spoken dialogue, or features as particular as epigraphs.  The full list of TEI elements is available at http://www.tei-c.org/release/doc/tei-p5-doc/en/html/REF-ELEMENTS.html.2

Chapters can be represented with the generic <div> that is familiar to Web designers and developers from the HTML version of the same element.  Attributes are used within tags to provide more specific information.  A type attribute, typically written as @type with the @ denoting that it is an attribute, here qualifies that this div represents a chapter:

<div type=“chapter”>

Our other examples of paragraphs, spoken dialogue, and epigraphs can be represented with <p>, <said>, and <epigraph>.  When Sherlock Holmes awakens Dr. Watson in The Adventure of the Abbey Grange,3 we might encode the interaction something like this:

<p><said who=“#sherlock-holmes”>“Come Watson, come!” </said> he cried. <said who=“#sherlock-holmes”>“The game is afoot!”</said> </p>

Extending from that TEI base, CBML provides elements for representing features unique to comic books, graphic novels, and related media.  The most basic unit of comics is the panel, which can be represented with <cbml:panel>.  Similarly, speech and thought balloons can be encoded with <cbml:balloon>.

Now <cbml:panel> is a good start, but clearly not enough by itself to represent everything that’s going on.  We can choose from a set of useful attributes to note more about a particular panel.  Let’s take a look at a panel from Little Nemo in Slumberland in 1907.


Figure I: Little Nemo in Slumberland, September 9, 19074. Public Domain.


We might want to note that this is the first panel of a page, or whichever panel number a particular panel is within the page.  We can provide that information with @n, for number:

<cbml:panel n=“1”>

Further, we might want to know what characters are depicted in the panel.  Similar to the way we used @who with <said>, we can list characters with @character, prefixing each individual character with #:

<cbml:panel n=”1” characters=”#nemo #little-imp”>

A full list of characters appearing in the document would normally appear in the <teiHeader>, as with other TEI documents.

We can keep going with the balloon.  Nemo says to the Little Imp, “They are looking for us!  We must get down from here!”  Using <cbml:balloon> the useful attributes here will be @type to denote that this is a speech balloon and @who, much as it was used in <said> with the great detective above.

<cbml:balloon type=“speech” who=“#nemo”>They are looking for us!We must get down from here!</cbml:balloon>.

These few elements and attributes barely scratch the surface of what’s available.  There’s also <cbml:caption> for captions from a narrator that are not speech or thought balloons, the <sound> element straight out of TEI for sound effects, and ways of representing features like letters pages or ads for x-ray glasses and ways to bulk up fast and stop that sand-kicking beach bully.

Want to learn more about CBML?  Feel free to check out my slides from the Charleston Conference, “Metadata for Metahumans” at http://jerryspiller.net/pres/CBML.5  Or for much more in-depth look, go back to the source and check out John Walsh’s http://cbml.org6 and his excellent Digital Humanities Quarterly article, “Comic Book Markup Language: An Introduction and Rationale” at http://www.digitalhumanities.org/dhq/vol/6/1/000117/000117.html.7


1. John Walsh, “Comic Book Markup Language,” accessed Oct 26, 2014, http://cbml.org.

2. Text Encoding Initiative, “P5: Guidelines for Electronic Text Encoding and Interchange, Appendix C: Elements”, accessed Oct 26, 2014, http://www.tei-c.org/release/doc/tei-p5-doc/en/html/REF-ELEMENTS.html.

3. Arthur Conan Doyle, “The Adventure of the Abbey Grange,” in The Return of Sherlock Holmes New York: McClure, Philips & Co.,1905.

4. Winsor McCay, Little Nemo in Slumberland, comic for September 9, 1907, accessed Sept 14, 2014, https://en.wikipedia.org/wiki/Little_Nemo#mediaviewer/File:Little_Nemo_1907-09-29.jpg.

5. Jerry Spiller, “Metadata for Metahumans: An Introduction to Comic Book Markup Language,” Nov 7, 2014. http://jerryspiller.net/pres/CBML.

6. John Walsh, “Comic Book Markup Language.”

7. John Walsh, “Comic Book Markup Language: An Introduction and Rationale,” Digital Humanities Quarterly 6, no. 1 (2012), accessed Oct 28, 2014, http://www.digitalhumanities.org/dhq/vol/6/1/000117/000117.html


Sign-up Today!

Join our mailing list to receive free daily updates.

You have Successfully Subscribed!

Pin It on Pinterest