Idea: Add books to an SRS without splitting them into facts

by D_Malik 2 min read15th Jan 20128 comments


Spaced repetition systems use math to determine the optimal way to study things. This post is about an idea I've been trying for a few months for improving SRS for some subjects.


SRSs usually use a pretty rigid system of asking questions and demanding answers. I think that for many subjects it's not very important to know specific answers, either because such answers can be looked up easily or because the gist of a subject is more important. So here's an idea: add an ebook to a spaced repetition system and read/skim each chapter or page when it's due for review. This can be used for ebooks, physical books, or articles from the internet or elsewhere.


For books or ebooks, there are two ways to do this: either add each page as an individual card (with an image of the page right on the card) or create a card for each section or chapter. The latter technique can be used for non-electronic books. If each page is its own card, you can review things more quickly because you don't have to open an ebook or book each time you review, but you'll need to convert the ebook to images first. You can also add annotations, either by editing page images, typing notes onto pages' cards, or adding annotations with your ebook-reading software.


One way to convert ebooks to images is to use imagemagick. On Linux,

convert -density 180x180 BOOK.pdf folder/imgname.png

Change the density if images are too small or too large. You'll have to convert ebooks to pdf format first. This command creates all the pages as imgname-1.png, imgname-2.png, etc. Move the images into a .media folder where your other anki decks are. Use a script to make a card for each page. For example, using python:

f = open("bookcards", "w")

for i in range(0,NUMPAGES): f.write(str(i+1) + ";<img src=\"imgname-" + str(i) + ".png\" />\n")


You probably want to review cards in the order they were created (so that you'll review due cards by page number). This option doesn't exist in anki, so you'll need to make each book a separate deck and use the patch command to apply this diff to /usr/share/anki/anki/, or wherever that file is on your computer:

<                 "priority desc, factId, ordinal")[self.revCardOrder]
>                 "priority desc, factId, ordinal",
>               "created asc")[self.revCardOrder]
>           'createdDesc':
>           '(created desc)',
>       if self.revCardOrder == REV_CARDS_CREATED_FIRST:
>           required.append("createdDesc")
>       4: _("Review in ORDER CREATED"),

Also, for each deck, go Settings->Advanced->Initial button intervals and set them so there's no randomness.


Pros of this technique:

  • You can add lots of content quickly.
  • You can use an SRS to learn things that you wouldn't be able to otherwise. How would you add Godel, Escher, Bach to an SRS in question-answer format?
  • Reading books without memorizing them is silly unless your aims in reading do not require long-term retention of the books' contents.
  • You can keep the context of facts, and you automatically preserve the original phrasing.


Cons of this technique

  • The spacing is probably not optimal.
  • Review is passive, not active. Active recall has been shown to improve memory. This technique trades away memory-detail for time (and other things).
  • You may make irrelevant associations between things just because they're next to each other in the book.
  • Reading through things takes long. If you skim through your due cards, then you might miss things. You'll also have to skim elementary explanations again (perhaps that's a good thing) or suspend them.
  • It takes time to convert books to images, or to open a book or ebook each time you need to review it.