Sunday, February 22, 2009

Anki vs. Mnemosyne

When I did my 30-day French Learning Challenge, I specifically switched up which spaced repetition system I was using, so that in addition to learning some French (mainly just that French is a lot harder than I thought), I also gained breadth of knowledge in spaced repetition in general. The first SRS I used, and which I still use regularly for my Japanese card deck (now two or three years old), was Mnemosyne. The one I used for French was Anki.

If you don't know what spaced repetition software is, you should click that link above, but in a sentence: spaced repetition software is a digital flashcard system where you create and review flashcards and the software optimizes the bejeezus out of the review process, showing you cards in the optimal possible order so you can memorize the most data with the least effort.

Which is better, Anki or Mnemosyne? Let's compare a few aspects of these two memory programs.


COSMETICS

Anki wins hands down for aesthetic appeal. It has the look and feel of a professionally built commercial application (even though, like Mnemosyne, it's free). Mnemosyne has the bare bones look and feel of something a grad student whipped up for an obscure research project. (Grad students, please don't feel offended, I'm one myself!)


EASE OF ADDING CARDS

For pure text cards, Mnemosyne is easier: you can "tab" your way through the whole process. Unfortunately, in Anki if you start "tabbing", you'll go through "tags", "model", "add a new model", "edit the current model", and "forward" before finally getting to "add". That makes tabbing impractical; I don't even know why it's done in this order, since a person would almost never touch the model-related buttons. You can do a mouseless-card-add in Anki using shift-ENTER, but that's not very intuitive.

However, if you're adding multimedia flash cards, Anki has a brilliant feature where you can just paste the URL of the file on the internet. Anki will automatically download it and store it in a data directory, all quite seamlessly. When I was adding picture flashcards to Mnemosyne, it was a horribly convoluted process of manually downloading the pictures and then manually writing the html code for them in the card. Anki's method is almost instantaneous, and it saved me a lot of time on, say, Day 21 of the "French Revolution".


FLASH CARD PORTABILITY

Mnemosyne flashcards can be imported directly into Anki, but Anki flashcards cannot be imported directly into Mnemosyne. However, if you did want to import an Anki deck to Mnemosyne, you could first "export" the Anki deck into a tab-delimited file. An extra step, and any info about your card ratings would be forfeit.


FREQUENCY OF SOFTWARE UPDATES

Anki seems to be updating constantly. When I was doing my French Revolution Challenge, a bunch of people from the Anki "community" were following along, and some updates were released based on the feedback I was reporting, within days of my reporting it. Makes me feel pretty good :) Mnemosyne, on the other hand, hardly ever updates.

On the flipside, though, I've gotten emails from people complaining that the Anki updates sometimes change the controls, so if they keep up to date, they're having to constantly relearn how to use their own SRS. In that sense, Mnemosyne is more "stable". Of course, it should be emphasized that, officially, Anki is still pre-version-1.0 (as of the time of my writing this). Usually software stabilizes a lot after it reaches version 1.0.


EASE OF REVIEW

The two systems are pretty similar as far as ease of review goes. Anki does have some extra data displayed, however. Anki splits up "remaining cards" into "failed cards", "cards awaiting review", and "new cards added today". Mnemosyne clumps these same cards into just two categories, "scheduled cards" and "not memorized cards". Anki also has some "power bars" which attempt to measure "how good you're doing", although they're not too reliable.

One feature Anki has, which really blew me away, is the "ETA" display. Somehow the program looks at how fast you're answering cards, and makes an intelligent guess how long it'll take for the "scheduled cards" to hit zero. In my experience, ignoring cases where you get up in the middle of a review, the ETA seems to be pretty accurate.


SPACING ALGORITHM

The heart and soul of the SRS, what sets it apart from paper flashcards, is the algorithm it uses to transform your own ratings into an optimized card ordering. If you rate a card easier, it should show up less often, and so on.

It's not easy to get a perfect sense of an SRS's algorithm, since it all takes place behind the curtains. Anki's algorithm seems to be marginally better: if nothing else, it's a lot more customizable. You can adjust all sorts of numbers to get Anki's algorithm working the way you want it to work.

On the other hand, Anki has a "feature" where cards come due in realtime, rather than day-by-day. This sounds like a cool concept, and maybe it could be if it were somehow implemented differently, but to me it ended up being a nuisance. The main problem is, when I sat down to do my daily reviews on Anki, I had no idea how many cards I'd actually have to do, because new ones kept coming due in the middle of the review.

The day-by-day scheduling of Mnemosyne is not just an arbitrary constraint. Fact is, the process which transforms raw, rote-memorized data into structured, meaningful data, this process takes place while we're asleep. You can force yourself to memorize something today, and it seems like just raw gibberish, but somehow after you sleep on it, it makes a little more sense, in a way you can't quite explain. (I wrote more about this in my article, The Irregular Verb.) The point is, there's a very real reason to make cards come due day-by-day rather than minute-by-minute.


STATISTICS

For statistics, Anki wins hands down. It even makes fancy graphs and pie-charts, if you want. If you're using it to study Japanese, you can even get some very advanced kanji statistics (to enable kanji statistics in Anki you need to make sure your Japanese cards actually use the "Japanese" model).

On the other hand, if you only want the statistics infrequently, and don't mind a little hassle to get them, you can get Anki statistics for a Mnemosyne deck. That article explains how.


WHICH SPACED REPETITION PROGRAM DOES GLOWING FACE MAN USE?

I use Mnemosyne for my flagship deck, which is my Japanese language card deck. I would've loved to switch it to Anki, but Anki just does not give you the ability to add invisible text. See, my Japanese deck makes very very heavy use of Mnemosyne's "accidental" invisible text feature, which I explain in the article, Invisible Text in Mnemosyne Flashcards.

I tried to get some workaround to get invisible text from the Anki forums, but none of the solutions worked very well. (You can turn the text white, but it still counts as taking up space for the purposes of "centering" text, so the "visible" text ends up badly lobsided.) Even if some convoluted solution were found (like a solution involving adding a new field to the model), it would be very difficult to convert over 9000 Japanese flash cards which use the Mnemosyne invisible text method. I looked into the possibility of writing a small C file to manually operate on Anki's save files, but the things are formatted in a way that is not conducive to doing this at all.

For reasons described in the invisible text article, the invisible text feature by itself is reason enough to prefer Mnemosyne over Anki for advanced language learning. It's kind of sad, but I'm sure someday Anki will change how it handles html so that the Mnemosyne invisibility trick works.


FURTHER READING

The main article on SRS technology is Spaced Repetition Systems. For years, science fiction has told us of a future where computers mix with the human mind to create cyborg memory of unimaginable power. We've come to the beginning of that technology, and it's Spaced Repetition; and you don't even have to get any chips inserted in your brain!

To read about the most cutting edge method of language learning, which makes heavy use of Spaced Repetition, check out the article Sentence Mining.

When you get into SRSing, sooner or later you're bound to go on vacation, stop doing daily reviews, and come home to a massive pile of scheduled cards. When that happened to me after my Japan trip, I got through it in an intelligent way. Read more at: Dealing With A Neglected SRS Deck.

9 comments:

Emilio Wuerges said...

To get invisible test in anki, I just added a new field. That field is not shown with the card, I need to edit the card to check it. As I almost never need it, it's ok.
Btw, great review. I'ts Probably the fairest comparative of both softwares on the web.

Anonymous said...

For the most part you remained neutral, but drawing this conclusion?

"For reasons described in the invisible text article, the invisible text feature by itself is reason enough to prefer Mnemosyne over Anki for advanced language learning. It's kind of sad, but I'm sure someday Anki will change how it handles html so that the Mnemosyne invisibility trick works."

Come on, saying Anki is not suitable for "advanced language learning" because of a bug in Mnemosyne is pretty silly. It's quite likely you'll find that all your hidden text cards break when Mnemosyne moves to 2.0 and a proper HTML rendering widget.

Furthermore, if you'd pursued this a little bit longer on the forums, you would have found out that Anki databases can be dumped to a text file for arbitrary find and replace operations. If having invisible text in the same field is important to you (and really, I don't think you've provided an adequate reason why putting it in another field is not an option), you could use a visible markup character and write a 3 line plugin to hide the text on review.

Anonymous said...

Rich: I have used Supermemo for quite some time and the biggest obstacle has always been maintaining the motivation to review my daily repetitions of flascards. I would come home from work, switch on the computer and spend 15 minutes running through my cards. This began to become a real pain as I have limited free time and wanted to spend it in more exciting ways. Thankfully I've now found Anki which allows me to access my collection via my blackberry by its syncing facility. Coverting my existing collection was relatively simple: Exported from Supermemo as a Q&A text; import into Mnemosyne; and finally exporting it as a tab delimited set and then into Anki. A bit of work but I only had to do it once. I've lost the information on how well I knew each card so will to start again in this respect but I feel this is worth it: I now go through my collection on the train in the morning on my Blackberry and my evenings are free to do as I please - the best of both worlds!

Anonymous said...

Rich: I was saddened to learn that Anki will soon start charging for decks over a certain size to pay for the server space needed. The author has said that quite a few decks remain unused. I would have thought it made more sense to delete unused decks (after warning the authors by e-mail several times before)rather than charging dedicated users. The value of Anki is that it's free allowing thousands of individuals to better themselves and consequently making the World a better place.

Anonymous said...

The desktop client is free, and will always be free. It costs me little to redistribute it, so I am effectively just giving away the years I spent working on it.

However, hosting the AnkiOnline service costs me money for bandwidth, cpu cycles and disk space. I do not make a lot of money in my day job and I simply can't afford to not only give away Anki, but also pay for you to use it. If you feel so strongly that Anki should be "making the world a better place" and that end users shouldn't have to pay, how about YOU pay the hosting bills? You're making the world a better place, after all.

Glowing Face Man said...

Hey Damien, just popping in to say thanks for all the work you've done. It's extremely appreciated

Anonymous said...

Thanks for the thanks :-)

Anonymous said...

Rich: There is no doubt Anki is an amazing product and thanks for your response and effort to date in distributing it. All I'm saying is that there are probably hundreds of redundant users: those new to Anki who set up an online sync account, make a couple of decks and for whatever reason stop using Anki. There must be lots of these redundant decks cluttering up the disc space. My answer would be to send them a couple of warning e-mails after say 1 year's non use of account and then delete their account if they continue not to use their account. I see myself at some point having a large deck and having to pay for it when deleting these redundant users could save the problem and reduce the costs. Any thoughts? Again thanks for all your efforts - I just want as many people as possible to benefit from it as possible and the way to do this is to keep it free.

Anonymous said...

I already prune decks that haven't been touched in 6 months.

 
Privacy Policy