A Concordance for John M. Ford's The Dragon Waiting
How It Happened

On a Monday in September of 2006, I saw (on Making Light) that John M. Ford had died. The comment thread already had a flood of shock, grief, and remembrance, to which I added my droplet.

I wanted to offer more than a droplet. The idea of a concordance to The Dragon Waiting had floated around the Internet for a while. In the months following Ford's death, I began to think seriously about creating one.

(I don't think I could have imagined working on such a thing while he was alive. What if he pointed out mistakes? What if I pointed out his mistakes? What if he found the whole idea embarrassing? None of these ought to have given me the slightest hesitation, but they did, and still do... and so I've built an edifice after the keystone has left the building.)

Around Thanksgiving of 2006, I scribbled some notes about how I wanted to organize the work. Around February of 2007, I began writing the scripts that would handle all the cross-linking. In late February, I began taking notes.

Timeline of Progress

(Chapter 13 was delayed because I took a two-week break to fill in every character's birth date, death date, and historical significance. And the latter half of August was spent polishing, filling holes, and fussing with the CSS.)

Changes after the public release are itemized on the Recent Updates page.

What I Did

I went through The Dragon Waiting page by page, writing down everything that seemed even dimly interesting, confusing, or obscure.

That was the whole of my process. That and Googling. And searching Wikipedia. I haunted Wikipedia like a starving ghost.

(And the bitter condemnations of Wikipedia's policies rolled by, at regular intervals, as I worked. But you'll notice I don't footnote Wikipedia at all. As the front page implies, I tried to check everything against other sources. Not that other sources don't also have agendas... but it's pretty easy to sort the outright vandalism, at least. Dracula's brother was not named Radu the Ugly.)

(By the way, when I say "other sources," I mean history books. I tried to look at several history books, triangulate the common elements, and note the disagreements. But I did not spend much time trawling primary sources.)

I was astonished at how much of TDW I had never gotten. The book is bound together by dozens of threads that run from beginning to end. Or that surface once at the beginning, and once at the end, and woe to you if in 300 pages you forgot the name of the valley that Hywel grew up in. And then there are the historical references, trivia, in-jokes... Time after time I pushed some words into Google and learned something -- something Ford had intended. Given the vagaries of the Net, I must have missed as many references as I found.

(I am therefore depending on the pedantry of strangers. Know something I don't about TDW? Let me know.)

I worked very steadily, a couple of hours per night, most nights of the week. That covered a chapter every two or three weeks. The fastest swing, as you see above, was chapters 9 and 10. Not that they were any easier; I just happened to be working harder in June.

I had imagined that the first chapters would be the hardest, as Ford introduced the protagonists and the world, and that it would lighten up after chapter 3. An absurd hope, it turned out. The density of detail is relentless; Ford simply never lets up on the reader. In chapter 13, I was still figuring out historical details. (Joan of Arc?!)

And the hardest part was not posting to Usenet, Making Light, and everywhere back in March: "Hey everybody! Look what I'm doing!" That never leads to a finished work. I made up for it by bragging constantly to my friends off-Net. (Thanks, folks! For not killing me.)


Years ago I wrote a tiny Python framework for constructing web pages. You could call it a "content management system" if you gave it two byes and a fake mustache. No web-server scripting, just a templating module and some code to generate static HTML in the desired spot.

I've used it for this and that. (My book list; the Left Foot Living Review; my Uru Newcomer's Guide.) Each of these site features works differently. That's because I write a new piece of code for each one. But since I'm a hacker, I don't mind that. And I do reuse some code, like the function that converts plain-text markup to HTML. At this point I have enough pieces to throw together a wiki-like script very quickly.

Draco Concordans is that piece of code, plus a handful of templates. But primarily it's a collection of tiny files -- one per topic, one per page note; over 900 files in total. The site script reads them all in, cogitates, and generates the web site.

For the sake of edification, here's the first page note:

p3.5 {The White Hart}

Roman stones, but no Romans; not for a thousand years.

The Romans left Wales in the fifth century AD.

[...] an inn called The White Hart.

The white hart was the badge of [::richard-2]. This marks the innfolk
as being in sympathy (perhaps deniable sympathy) with the deposed
Plantagenet. Their silent opposition to the current Lancastrian
king, [henry-6], is consistent with this.

/-- fic
*Tales from the White Hart* is a well-known collection of science fiction
stories by Arthur C. Clarke.

The first line gives the page number. (The decimal place is useful for exact sorting.) {The White Hart} is how links to this note will appear. The rest is wiki-style markup -- you can see *emphasis*, which is converted to emphasis.

The note contains three block-quotes. The first two are styled as quotations from the book (the default style for blocks). The third is an "other fiction" sidebar. Square brackets are for wiki links. The :: in [::richard-2] indicates that the link is two-way: the richard-2 page will link back to this one, as a "see also," and will also include "p3" on its page list.

There's more to the system than that. I can tweak links a few other ways (including or excluding page numbers, including one topic in another "category" topic, changing the link text). And the module which manages page-number lists is quite clever. But this gives you the core of it.

The Graph

The presence graph, which looks like the most complicated page of the site, is actually off-the-shelf technology.

While I was pounding my way through The Dragon Waiting, I was working at SIMILE, a research project on collecting and visualizing Web data. This is what's called "The Semantic Web," if you like capital letters and attempts to index entire libraries. But Simile tries to offer practical Web tools of immediate benefit. This one is called Timeplot; it's a piece of Javascript which reads plain-text data files and graphs them.

So I tweaked my site script to produce these data files (hywel.txt, for example; or events.xml for the pop-up annotations). And I dropped in the Timeplot script file, added some configuration, and that was about it. Took two days, mostly configuring the graph's appearance.

(Simile also offers a Timeline tool, which shows events on a scrolling timeline. I was tempted to add one, but it didn't seem quite revelatory enough to be worth the effort. The presence graph actually told me stuff I wanted to know.)

Why Not a Wiki?

I went to all this effort to construct a wiki-like web site. Why didn't I use an actual wiki?

The minor reason: I wanted a very specific structure. I'm certain that MediaWiki can be bashed into supporting that structure, but it wouldn't be any less work than coding it myself from scratch.

The actual reason:

Every wiki I've ever seen is in a perpetual state of Not Done. People start adding stuff, and then they add to-do lists, and then they trail off. I wanted to create a finished work. I also wanted a consistent voice and editorial style. And to ensure that everything was linked everywhere it should be. To guarantee all that in a wiki, I'd have to follow up every edit with my own polishing. If I'm going to do that, I might as well just accept information by email and add it myself. Which is what I am doing.

If you want to read this as "Zarf is a control freak," I won't deny it. Audibly.

Fair Use

You might wonder how much of a book one can quote and still call it scholarship. I wonder that too. (A quick look around gives ten percent as a common rule of thumb, but there's no legal guarantee on that number or any other.)

The Dragon Waiting comprises 125,000 words (my estimate). Draco Concordans quotes roughly 23,000 of those -- a bit under a fifth. I'm sure you can find individual pages that I quoted more than a third of. And about a quarter of Draco Concordans is quoted material.

(All typed by hand and eye, by the way. I don't have OCR capability lying around.)

My intent was referential integrity: when you follow a link in my commentary, the page you land on should quote enough to make the link clear. You shouldn't have to open your copy of TDW to see what I meant.

At the same time, I didn't want Draco Concordans to supersede TDW. You can't read my quotes and understand what happened in the book, or even in a full scene.

Somewhere between those goals is a balance. Maybe I hit it. Either way, I will hide behind the usual Internet excuses: I am making no money from this, I want people to buy TDW and read it; knowledge and understanding are better than a poke in the eye with a lawsuit; I'm not a bad person. I meant every word. You look great in that. 'Tis a far far better thing. Got milk?