[Bookreader] Annotations, revisited

Sayamindu Dasgupta sayamindu at gmail.com
Tue Jan 26 16:32:09 EST 2010

On Fri, Jan 22, 2010 at 2:38 AM, Andreas Gros <info at andreasgros.net> wrote:
> On 20.01.2010 23:24, Sayamindu Dasgupta wrote:
>> On Thu, Jan 14, 2010 at 11:04 AM, Samuel Klein<meta.sj at gmail.com>  wrote:
>>> I just chatted this afternoon with Andi Gros, who is quite interested
>>> in seeing annotations added to our bookreader's repertoire.  I hope we
>>> can make some progress there, now that we have a growing active
>>> audience of users, who will want more than author and title to figure
>>> out what texts to use for what purposes!
>>> Starting with something simple like "a global/local-network list of
>>> reviews/notes/comments organized by title" without worrying about
>>> different versions of works or annotations of specific words or
>>> sentences, could be very usable.
>>> Is anyone actively working on something like this atm?  I also chatted
>>> briefly with the founder of RatePoint, who have been following OLPC
>>> for some time and interested in making global reviews by 'product' or
>>> 'entity' happen with a simple web interface.
>> A major pain point is supporting annotations in a file-format
>> independent way. For example, currently, the PDF standard has pretty
>> extensive support for annotations, but that is of very little value in
>> Read as we try to deal with other formats as well. With EPUB, I can
>> have really flexible annotations, or even editable books (the
>> underlining support as shown in
>> http://sayamindu.randomink.org/images/read_highlight.gif actually
>> makes the EPUB editable for a while), but all of this does not make
>> any sense in a PDF context.
> I agree, IMO it is important to -- at least initially -- treat
> annotations in a way that is as much as possible independent from the
> actual underlying format which is to be annotated. As PDF and EPUB, and
> possibly any other format, offer different editing possibilities, to me
> the easiest way would be to not use either, but to come up with
> something independent. Sounds mad? Probably, but lets assume that even
> if a PDF does not contain text but images, it displays the content in
> single pages -- no matter how large these actually are -- and tells the
> viewer (e-reader, ....) how big (width X and height Y) the page is. And
> lets assume that text-highlighting (to me these are not really
> annotations and depend too strongly on the actual display of text on a
> page/in an image) is to be treated differently from textual annotations.
> I am referring to the latter ones below.
> For texts/textual works, annotations can be made to
>     (a) a text/work
>     (b) a page
>     (c) a coordinate on a page / a rectangular area on a page (two
> coordinates: upper left corner + lower right corner)
> Options (a) and (b) don't depend in any way on the display of the single
> page, but could be treated independently and could/should be solved as a
> first step.
> Option (c) is more tricky. If we store the x/y coordinates of the
> annotation relative to the page width X and height Y, it is up to the
> viewer/e-reader to interpret that and assuming that the reader knows
> what X and Y are, this should be possible.
> Please correct me if I'm wrong :-)
> My approach would be to start with solving options (a) and (b) and once
> we get into the flow, consider solving (c).
> What do you think?

A potential problem here is that with new reflowable ebooks, adjusting
coordinates will become quite tricky. For fixed dimension stuff such
as PDF, etc it is possibly the best solution.

>> As for indexing/storage of annotations, I have tried to keep the
>> options open by storing the notes and bookmarks in a single, global
>> sqlite database, but it can become complicated as things like editable
>> books are enabled.
> Could you please point me to where you implemented the "note taking"? I
> haven't found that in the code of the read activity that I checked out
> with git (my bad). That sounds as if we could use that as a first entry
> point to solving (a) and (b). :-)

The GUI part is in
The DB part is in

Feel free to ask questions if you need more info - I would be more
than glad to help :-)


Sayamindu Dasgupta

More information about the Bookreader mailing list