Epub.js: Bringing Open Annotation to Books

By jakehartnell | 30 May, 2013

Why should we annotate books?

Here’s a short story to illustrate:

Once upon a time, there were two notable ink-makers, Amaz and Applet (there were others of course, but those two were the most important ink makers of the day). Both made special inks whose writing could only be read by people who subscribed to either Amaz or Applet ink. Publishers and writers of the day had to produce both Amaz and Applet versions of books so that others could read them because usually people bought one type of ink and therefore could only read one type of ink. Furthermore, anyone who tried to make a means of transforming Amaz Ink into Applet Ink, would be sued and thrown in jail by the high court.

A silly story yes, but based on a sad truth: the state of ebook publishing is like writers using proprietary ink. This has profound implications for human knowledge! As a consequence, annotations made in many proprietary systems are lost to other systems, publishers and writers of books have a nightmare creating books for all the different platforms, and readers are left with the threat of lock-in and subpar user experience.

There is a difference between the walled garden annotation of the Amazons and Apples of the world, and what Hypothes.is and others are trying to do. No one should own annotation or books, just as no one owns the standards that make up the web.

The chemistry of the ink is not something to be owned. It should be a public good.

My summer will be dedicated to tackling some of the key challenges keeping people from annotating books right now. Technically, the barriers to annotating books are minimal. Trying to convince publishers and companies like Apple and Amazon to publish web accessible versions of books or sign onto open annotation with their respective applications is much more difficult.

Epub.js: putting books in the browser

A friend of mine once said, “Books are the bastard child of digital media.” She was expressing frustration at the fact that unlike websites, ebooks couldn’t be easily shared on Facebook, that an ebook file couldn’t be simply opened by the browser (which easily streams music, video, and HTML5 video games!), and that she couldn’t open an iBook on her expensive new MacBook Pro—getting this dismal popup instead:

Her response: “I don’t have to plug in my iPod just to listen to music!”[1]

She was echoing Lawrence Lessig when he wrote in his book Remix: Making Art and Commerce Thrive in the Hybrid Economy, “Access is the mantra of the YouTube generation. Not necessarily free access. Access.”

We need access if we are going to annotate books.

To stress the point: Not necessarily free access. Access.

I’m devoting a significant amount of time this summer working on launching a open source Javascript Library called epub.js. With others at the UC Berkeley School of Information (Fred Chasen, Luis Aguilar, AJ Renold, and our advisor Bob Glushko), we have started an open source project called FuturePress. It’s a JavaScript library that is both a lightweight reader and a way to serve up an ebook as a web resource. FuturePress effectively turns an epub into a website, which makes it easy to implement annotation. By using our browser based web reader, epub3 files, and h, we can easily annotate books the way we annotate websites. Furthermore, these books can be read on any device with a modern browser.

What does that mean?

Books can be shared on Facebook:

They can be read by just clicking on a link:[2]

Finally, they can be openly annotated:[3]

None of this requires a special application other than the browser. People can choose the device or application that suits their needs best.

The goal of epub.js is to open up the world of books to developers, groups like Hypothes.is that want to work with books.[4]

Luckily, coming into the project, I also have access to a couple of books. They are my experiments for the summer:

One is a brand new textbook being used in over 10 schools this coming fall. With it we hope to explore how annotation can be used to aid classroom learning, crowdsource copy-editing (having students annotate errors), getting direct feedback from students on the effectiveness of sections and media, and of course, promote discussion and critical thought around the ideas presented in the book.

The other is my own work of fiction, 23rd Century Romance: a sci-fi romantic comedy about the future of sex and relationships. With it I hope to explore how annotation can give authors insight into how readers interact with their work as well as how it can be a means of me interacting with them.[5] I also hope to get famous people to read it and annotate it.

Both of these will hopefully provide an interesting chance to think about user-interfaces for annotation in books, as well as how annotation can be used to provide a more valuable experience for both content creators and readers.

All in all, I’m excited for the summer.


  1. Implement h in open source browser-based ereaders (Readium and epub.js).
  2. Experiment with ways to use annotation in books.

  3. Show how useful annotation is for readers and especially content makers.

  4. Do tons of user testing!

  5. Evangelize the gospel of open annotation.

[1] Indeed, this is a little ridiculous. Someone should tell Apple that a lot of us read on our desktops. For example, when I’m writing a paper and I want to cite something I read in a book. Currently, I have to open iBooks, select the passage I want to copy, select share, select email, email the passage to myself, open up the email on my MacBook, and copy the text from the email into the document I’m working on. Then, repeat for the next quote.

[3] There needs to be a verb for this. What should we call the act of annotating publically? Please (open) annotate suggestions to this page.

[4] We are are far from the only project working on this. Readium.js is another great project from http://www.readium.org.

[5] My thinking on this is evolving, but I want to a curated sort of fan fiction: using annotation as a way to get and focus contributions of readers. We shall see how this actually pans out…

Share this article