Where the Chaos Goes


Rachel Shu's Blog

Visual Portfolio

Subscribe to RSS/Atom Feed

4 September 2020

Pale Fire as Roam Database

by Rachel Shu

Status: finished
Meaningfulness: representative of this blog

Pale Fire on Roam (click to access)


Pale Fire has, since its publication, been associated with hypertext. Ted Nelson, who later founded the Xanadu project, encoded (some portion of?) Pale Fire as digital hypertext in 1969 (Wolf, 1995). Roam is a personal knowledge database which has a few key features of Xanadu’s vision which are still not widely implemented. In particular, I chose to create this version of Pale Fire as a demo of Roam’s bidirectional hyperlinking system. This feature makes Pale Fire much more accessible than it would have been otherwise, and to my knowledge it is the first complete implementation of Pale Fire’s graph structure publicly available online.


In researching this project, I only found a few digitizations of Pale Fire, and all of them had disadvantages as compared to an implementation in Roam.

  1. Kindle (and presumably other e-books): Well done, but frustrating.
    • The publishers of this digital edition (quite naturally) chose to conserve the experience of reading the physical book, including pagination and formatting. These are aesthetically beautiful, but impede working with the text to a certain degree.

    • The poem and the commentary do not directly link to one another; links are only to be found within the text of commentary entries, and never to the other commentary entries. Nor does any concept of backlinks exist within the work, making navigation still more difficult. Most of the connections pointed out in Pale Fire as Hypertextual Network (Rowberry, 2011) have no corresponding link in this version.

  2. Genius: Messy and inconsistent, for a few reasons.
    • Pale Fire’s commentary occasionally has separate entries for overlapping verses. Genius expects discrete selections of verses for commentary.

    • The dense hyperlinks would have been tedious to encode on Genius, which does not have a function for searching the text of other comments, and no backlinks which would have been visible to the end user.

    • There is no good separation between Kincade’s fictional commentary and the commentary of other enthusiasts commenting on the work.
    • Probably because of such difficulties and with no financial compensation, the work was left incomplete. While I could have attempted to help improve the Genius version, I suspected Roam’s ease of use meant that I would spend the same amount of time at either task.

Roam also has some disadvantages, such as lack of interoperability with other publication formats, which means that my work probably will not be easily transferable to another host in the future. Hopefully Roam sticks around.


  1. I downloaded a high-quality machine-readable PDF of Pale Fire from Libgen. I first used Adobe Acrobat to export from PDF to HTML, then ran it through an online HTML > Markdown converter to prepare for Roam, which accepts Markdown syntax. This double translation resulted in many errors, which I had to clean it up as I went along by running regex substitutions on the Markdown text.

  2. I copy-pasted text into Roam, and adjusted the formatting. To preserve numbering, I chose to place the entire poem on a single page, with one block per line. Unfortunately this choice means the page loads very slowly. This also meant that I had to kludge the canto headings in as subsections, rather than their own blocks.

  3. As I went along, I discovered some missing lines from the edition I had downloaded. Using Genius, I was able to track down every version.

  4. Each entry in the commentary and index got its own page. Certain other poems or excerpts are quoted in the commentary. Where these are named, I chose to embed the work as a new page.

  5. I added links manually, with Rowberry’s work for rapid visual reference. Every direct mention of a line or note is linked to the appropriate block.

Materials and suggestions

For the sake of textual accuracy I did not add any links which did not represent an explicit reference to a line or note within the text. Thus there are non-explicit structures within the novel which this hypertext version does not fully encode: the calendar dates, the cards which contain John Shade’s rough drafts, the history of Zembla, etc.

This also makes it difficult to use the Index, as Nabokov did not create links from the commentary to the index, only vice-versa. A nice Roam feature would be auto-suggesting page links based on block contents.

Roam lists unlinked references which correspond to a page title. Many unlinked references exist and more (for example, near-spellings) could be unearthed fairly easily.

Connecting those structures would form a good basis for an expanded version of this project, and thanks to Roam’s powerful search and reference collation features it should not be too hard to accomplish. I leave this to other dedicated readers and Roam users.

Additionally, I have published this database and all my working materials, including the cleaned .md file, to GitHub.


Pale Fire on the Internet Archive (perhaps spuriously): https://archive.org/details/in.ernet.dli.2015.458629

Rowberry, Simon. Pale Fire as a Hypertextual Network. The 22nd ACM Hypertext Conference, 2011. http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=BC03C2ED5379CF63D00C36B0F17D60F8?doi=

Wolf, Gary. “The Curse of Xanadu.” Wired, June 1995. www.wired.com, https://www.wired.com/1995/06/xanadu/.

tags: fiction - hypertext

Comments powered by Talkyard.