Anki is an open source flashcard application with full support for interval study that is available for Mac OS X, Linux, and Windows. Anki ain’t pretty but it has a lot going for it under the lid, offering language learners a powerful environment for reviewing large bodies of vocabulary over the long-term. Other flashcard application developers ought to have a good look at the many features this application has to offer, some of which can be found in more professional Windows flashcard applications but which in many cases have not made their way into OS X flashcard applications.
UPDATE: Anki has gone through many updates since I composed this review in mid 2008. In early 2009 I adopted Anki as my personal flashcard application of choice and later wrote a posting on why I believe it is currently far ahead of its competitors and the Fool’s official favorite. Read more at: Anki All the Way
Anki’s strongest areas are in the many statistics it provides, its tagging features, its strong interval study centered approach, and its “card model” approach. Anki’s biggest weaknesses are to be found in the overall program design, its complete absence of set management features (in favor of a tags-only approach), relatively poor list overview and editing features, and the fact that it does not allow the review of vocabulary on demand. If your goal is long-term mastery of vocabulary and you are willing to get past some of its quirky behavior, this program can serve you very well. If you want a familiar Mac OS X design with a simple “enter and review” interface, then this may not be the best program for you. I would keep an eye on the further development of Anki, which is available under the GPL license, since future versions may resolve many of the issues discussed in this review (bolded text highlights problems). Read on for more details.
Application Name: Anki
Version Reviewed: 0.9.5.7
Software License: Free, open source (GPL)
Review Date: 2008.04.28
OS Tested: Mac OS X
Structure: Deck-Model-Card Model-Card-Fact
Anki takes an interesting and overall effective approach to organizing information for students to study. It uses the word “deck” to refer to a set You can only have one deck open at a time and the last open deck is automatically opened upon launching the application. What I call a card Anki calls a “fact” while what Anki calls a “card” is a particular way of reviewing a “fact” such that the same “fact” can have multiple “cards” depending on its direction of study and the fields displayed on each side.
Each deck contains one or more “models” which corresponds to a field template. It supports more than two fields and has full support for non-Roman script languages. The deck models, in turn, each have one or more “card models” which determines the various directions of study and fields which are displayed when any individual “fact” is reviewed. For example, one card model might show the Chinese pronunciation on one side, and the Chinese character and English on the other side. Another card model might show the English on the front of the card, and the Chinese pronunciation and character on the back. By using this approach, which allows you to automatically create separate “cards” or directions of study for each “fact” you enter into your deck, Anki promotes both active and passive mastery which it calls “production” and “recognition,” respectively.
Deck Properties: Through this menu item you can give a description for your deck, synchronize it online for review online or on another computer, designate certain tags so that cards of matching tags will be given higher or lower priority when being studied (high priority cards appear at the top of a study queue), modify the TTF Schedule, and manage the available models for the deck.
Model Properties:Through this menu item can name your models, assign them comma separated tags, give them a description, and determine delays in seconds between different cards corresponding to the same fact. You can assign it multiple fields, and optionally require these fields to be unique, required, or numeric. You can customize the font and display features of the various models in your deck through the “Display Properties” menu item.
Although the menu item and button used to add new entries is called “Add Cards” you are actually adding “facts” to your deck. Each time you enter a “fact” into your deck, it may create one or more cards, depending on the model you choose for your new entry. By default, the last chosen model will be used when you add a new card. The new “facts” are entered in a separate editing menu, which allows you to designate the model, the card models (and thus the number of cards created for that fact), and tags for the entry. It has large editing boxes where you can then add information into each of the fields for the fact. Every field is potentially rich text and also supports the import of images, sounds, and latex tagged text. Shortcuts are listed to the right but on the Mac OS X the “Ctrl” shortcuts correspond to the Command key, not the Control key. You can add new entries entirely form the keyboard, adding new entries with Command-Return. The input source is not remembered across cards so you have to constantly change keyboards when working with non-Roman script vocabulary.
The main developer probably has studied Japanese and possibly Chinese as there is automatic lookup of the pronunciation of Japanese and Chinese characters in those included models. The possible pronunciation of words is put into the appropriate field.
In addition to the separate fact editing window, there is an “Edit Deck” window which offers gives an overview of the card list. Note that the card list shows all cards, not the “facts” they are based on. The fields of a card don’t necessarily have their own column in this table but are shown lumped together as they will appear together on the card in question. A smaller editing window below can be used to make quick edits of existing information. If you edit a “card” that is visible in the list, you are actually editing the original “fact” and all other cards based on the fact will be changed automatically. However, the changes made are not immediately updated in the card list. You have to close the editing window and open it again to reflect the changes in the card list. The card list can be filtered by tag, or sorted by various card fields and statistics. However, the only column shown in the overview besides the fields displayed in any given card is a column showing the time to next review and you must click on a card to view all its information in the corner of the window. There are no column headers, no drag and dropping, and you cannot choose what columns to show or hide. In the editing mode you can add tags to multiple cards or multiple facts (and therefore all of its cards), mark cards for deletion, and reset its interval score. You cannot edit cards while studying them through the graded slideshow, they must be edited in the card list window. It is also difficult to delete cards, you cannot simply press the “delete” key. Instead you must mark a card for deletion and then it will be deleted the next time you close the deck or quit the application.
Reviewing Cards and Interval Study
Anki is developed from the ground up as an interval study application. It implements one of the algorithms found in the pioneering interval study application SuperMemo (SM2). When you launch the application, any cards that are due immediately appear for study. Interval study should indeed be the primary method of study for students in the long-term but often times a language student will want to review a particular group of words in preparation for a test or just to refresh certain vocabulary. As far as I can tell Anki offers no way to study cards on demand. If cards are not due, they don’t appear for study, and if they don’t appear for study you can’t study them unless you reset their interval score. There is also no cycle elimination, so words that are marked incorrect do not immediately continue to cycle through so that they can be quickly reinforced for future reviews. This is a deal-breaker for many users and unless this is fixed in future versions it will be hard to recommend Anki to anyone but the most hard-core interval study fans.
All study in Anki is done through a graded slideshow. This is an excellent choice and best for language learners in the long-run. The fields shown on the front and the back of the card are determined by the card model for that card. To display the back of the card you can press spacebar or return. Sometimes however, the default button becomes deselected and you have to click it with your mouse, an annoying bug. Instead of simply having the option to mark a word correct or incorrect, you can designate a card as “completely forgotten” (the interval score is reset), “Made a mistake,” and three other options which each increment the interval score of a card: “difficult,” “about right,” and “easy.” There are two very interesting aspects of interval study in Anki: 1) The next due date for each is shown to the right of the button and, interestingly, there is not one fixed day in the future, a random day or hour will be chosen within a certain range. This feature helps to spread out cards and not overwhelm the learner when they come back to review in the future. 2) Cards are not all treated as equal. Depending on how easy you marked the card, its next interval is made larger or smaller. This means that some cards can jump very quickly into the higher interval score range while the more difficult words will still increase in interval but at a slower rate. My limited testing shows that this works very well.
Anki offers excellent flexibility in interval study. You can reset the interval score of any card but you cannot tweak the intervals for each card directly like you can in some applications. However, you can set the default starting intervals for “hard,” “medium” and “easy” cards (by default these are .3-.5 days, 3-5 days, and 7-9 days, respectively). You can also set the amount of time until a card marked incorrect is shown again, separately determined for totally forgotten cards, “young” cards that you have gotten correct a few times and “mature” cards you should know well. Intervals thereafter seem to increment at reasonable rates.
If there are multiple cards for a given fact, French to English and English to French, for example, on two separate cards, then these do not get reviewed in close succession, with the delay determined by the model properties. If you have just answered a card from French to English, then you will very likely get the same word correct when asked to go from English to French if you see it very soon after, therefore the feedback you give will not accurately reflect whether or not you really know the word well in the opposite direction. Anki, by default, spaces these cards coming from the same facts out, forcing you to depend less on short-term memory. This is on of Anki’s most interesting and effective features that I have not seen in any other OS X applications.
You can “Suspend” cards by giving them a special suspension tag and this will remove them from the interval study pile until you delete the tag in question. Tags can also be used to force Anki to put high priority words at the top of the queue when you have a lot of words to learn.
Many developers make an attempt to include some statistics on study but they often don’t think through what will be useful to a learner engaged in interval study. There is no other OS X application I have come across which comes anywhere close to the rich amount of statistics available to the learner, displayed both numerically and in colorful charts.
When studying your cards you can see how many words you got wrong, how many are remaining, the estimated time it will take to complete cards in the queue. The main deck window also has two bars which show less useful “daily recall” statistics (% correct answers for today) and a more useful “retention” bar which gives you an overview of how you are doing overall in your interval study. If you click the “Card statistics” button while studying a card, it will show you when it was added, first reviewed, changed, next due, its current interval, the last interval, the current “factor,” the last factor, the review count, the correct count, how many times you repeatedly got it correct, the average time it took to answer the card, and the total time, the state of the card (new, young, mature). Unfortunately a far smaller set of statistics about individual cards is available in the card list overview when you click on a card and I don’t know why the developer doesn’t offer the same rich data there as well.
When you are viewing the deck as a whole you can view a whole range of statistics related to the deck (card counts, correct answer statistics, and average interval, average workload in cards/day, and average cards added per day/month. All of this helps the learner evaluate their long-term language patterns. Students of Japanese have an added bonus feature by choosing “Kanji statistics” from the Tools menu which will show how many Kanji characters of each level of difficulty are included.
The most impressive aspect of the statistical features of Anki, however, are the graphs provided. While they may take a while to load (a minute or more), you can view how many cards are coming due in upcoming days which is great for students wanting to estimate how much time they will need. If a learner is planning to go on vacation for a few weeks, they can also see how many cumulative cards will be due over time assuming no study is done. There are also graphs for card intervals, added cards, card difficulty, etc.
Good flashcard applications all provide a way to quickly get data in and out of the application so that if learners already have a large database of words they can easily adopt the use of the application or if, for example, the software one day becomes obsolete, to abandon the software in favor of a better alternative. Anki provides import from tab or semi-colon delimited files. These can be tied to certain sides of a card model, and optionally tags can be added to all entries imported from a file. The export feature will create tab delimited files and you can choose whether you want to export “facts” or all “cards.”
Extendability and Integration
I haven’t had a chance to try them out but Anki also supports synchronization via an online account and there is freeware Palm pilot software out there for reviewing your Anki cards on the go. It also has a plugin structure which allows the program to be expanded in various ways.
Disadvantages and Criticism
In addition to some of the specific problems mentioned above, there are some major problems that I want to emphasize with Anki. As mentioned above, there are no study on demand capabilities in the application. This is a severely crippling problem that needs to be addressed in future releases to widen the appeal of the software.
Another major weakness of the program is that there are no set management features at all. Increasingly flaschard developers are choosing some version of iTunes style organization system which allows users to easily browse through many sets they have inside a single flaschard file. Some provide the ability to put these sets into folders. Anki has chosen to forgo this ability and rely completely on tags to organize cards. However, while this is an admirable bonus, it is a poor substitute for providing a way to manage seperate sets. If the developer is convinced tags is the way to go, then they should provide a way to view lists of tags just as if they were sets, clicking on them to show the cards that have been given that tag.
Another major complaint I have with this software is its overall poor design. This is partly due to the fact that it looks and feels like a Java application that is targeted for multiple platforms. In general I’m thankful that I have encountered as few issues as I have with Anki since many of these multi-platform applications are prone to all sorts of errors. In this case, it is mostly a design issue rather than a crippling of performance. However, as a result Anki has a lot of GUI elements that do not have the look and feel that users expect in a OS X application. Here are some examples:
1. Show preview in fonts and colors is a regular button but shows and hides a panel
2. Drop down menus for Facts and Cards when they look like regular buttons
3. Columns are sorted by a drop down menu rather than by clicking on the column header (there isn’t one)
4. No select all in edit menu.
5. No copy/paste in edit menu – but it works anyways when editing cards
6. Application quits if you happen to close the main window
7. You can’t get the opening screen options if there are cards to be reviewed without closing the deck.
8. Overall poor handling of table data.
Other minor bugs and annoyances not mentioned above:
1. When you open a file it opens directly into interval study, hiding the opening screen that has various useful options.
2. When you ask for model properties, you get whatever model is on top, rather the model attached to the highlighted card, or an overview of models in the deck.
3. There is no offline help
4. When I reset interval stats for all cards, it told me “The next qeustion will be shown in -55 seconds” when I tried to reset one card, it wasn’t immediately reflected in the main study window. Apparently there are some bugs in the way stats are reflected.
Fool’s Final Word
Anki has an impressive range of features with a solid, advanced, and flexible implementation of interval study. With some attention to design details and the introduction on study on demand, Anki could become a real leader in this field. The fact the application is free and open source is truly commendable and I encourage everyone to make a donation to support their further development. At the very least, it will help set the standard for many features in flashcard study and inspire other developers.
Import: Tab or semi-colon delimited
Export: Tab delimited
Non-Roman Scripts: No problem
Modes of Study: Graded slideshow
Media and Frills: Images, sound, rich text
Entry Creation: 8/10 (Ctrl=command, keyboard input not remembered)
Entry Editing: 5/10 (Poor table interface, no live updating, no edit during study, clunky delete)
Set Organization: 3/10 (Tag organization only, no set organization)
Flashcard Study: 4/10 (Excellent cards, but no study on demand, no cycle elimination)
Interval Study: 9/10 (Powerful and flexible but no direct interval score editing)
Formatting: 9/10 (Slightly clunky and overwhelming but flexible)
Design and Feel: 5/10 (Mac users are all xenophobes. Drop-down menus from rounded buttons? You ain’t from around these parts)
Statistics: 10/10 (Best I’ve seen)
Golden Coxcombs: 7.5/10
Other Substantial Reviews:
Anki vs. Mnemosyne vs. Supermemo