SuperMemo: Revolution in the pocket

June 2004 (updated Mar 2005)

In summer 1991, Tim Berners-Lee uploaded his world wide web protocols software to the Internet. Along the sacred Internet tradition he professed: share-and-enjoy. Few people could predict the scope of the on-line revolution initiated by the three simple acronyms: http, html and url.
Many people ask today: What's the big deal with XML? Experts believe XML can change the world of computing. The concept is so simple that you would be justified to disbelieve. There is a a plenty of material on the web to help you ponder the future of XML. In the presented short text, we will only try to guess what XML could and should do to SuperMemo

SuperMemos want to talk to each other

In 2001, the authors of various versions of SuperMemo started compiling their ideas on a universal data exchange format for swapping learning materials between various SuperMemos. For difference of opinions, the process started at a snail's pace. As XML data exchange format was already making headlines, XML was chosen as the preferred way of SuperMemos talking to each other. Today, the only SuperMemos that implements a rudimentary core of the XML idea are SuperMemo for Pocket PC (ver. 3.x), and SuperMemo 2004 for Windows. Authors of other versions declare to follow with their XML implementations soon.

Four basic ways of SuperMemo

Although the first XML implementation is very basic, it is sufficient to provide a basic communication channel between different SuperMemos. Currently, the ways you can use SuperMemo may roughly be divided into four modes: 

Users would naturally like to see power combined with simplicity, portability and compatibility. Sadly, the delivery date for that dream SuperMemo floats ahead in indefinite future. In practise, there is still far more divergence and specialist adaptation. The ultimate merger of specialist SuperMemos into a super-power learning tool is yet to begin. The limitations of technology, resources and vision seem to always put the issues of convergence at the back burner. More clones and implementations arrive on a regular basis. It cannot then be excluded that evolutionary speciation is the true destiny of SuperMemo

New working modes enabled by XML

Long before the convergence of SuperMemo begins, new ways of working with SuperMemo will become possible with XML data exchange. A power-user of SuperMemo for Windows will, for example, be able to export his repetitions due for the nearest two weeks and upload these to on-line SuperMemo. At that point, he will be able to abandon his PC and go for a long nature trek with no electronics in his knapsack. All he will need to do to refresh his knowledge is occasional trips to local Internet Cafes.  

Similarly, outstanding repetitions can be imported to SuperMemo running on a handheld device. Outstanding items can then be processed at any time in nearly all conceivable situations, in which pulling out a wallet-sized device is possible. Although, it is still unlikely you would want to use SuperMemo while swimming or driving a car, it is already quite convenient to rush off a few repetitions in a line, in the toilet, on the train, or during a walk. Once a portion of the learning material has been processed on a pocket device, it can be re-exported as XML data and imported back to a stationary SuperMemo.

Enhancing incremental reading with the power of XML

SuperMemo for Pocket PC was the first SuperMemo to implement XML data exchange. SuperMemo 2004 for Windows followed 3 months later. Let us now see how incremental reading can be made more efficient by employing XML in these two releases of SuperMemo.

Incremental reading is currently the most efficient way of converting knowledge coming from electronic sources of information into knowledge durably stored in human memory. However, currently only users of SuperMemo for Windows can enjoy the power of incremental reading. This comes from the fact that, at the moment, only PCs can provide the resources needed for the space-and-power-hungry full-swing incremental reading process. Apart from being bound to Windows-based PCs, the size of incrementally created collections makes them hardly portable (e.g. via LANs or CDRs). Until now, users of incremental reading where bound to their stationary PCs. At best, they could use powerful notebook computers as long as these were provided with Internet access or at least access to the necessary sources of electronic learning materials.

With SuperMemo for Pocket PC (ver. 3.x), users of incremental reading gain a historic opportunity of making their learning process portable without a noticeable sacrifice to learning efficiency.

Portable incremental reading

Here is a short technical outline of steps that make incremental reading portable with SuperMemo 2004 and SuperMemo for Pocket PC:

  1. Proceed with a standard incremental reading process in SuperMemo 2004
  2. Before transferring the learning material to Pocket PC, select the subset of material that is to be drilled on the pocket device
  3. Using subset operations, select the outstanding material in the subset (e.g. Child : Outstanding on the browser menu), or the material due for a limited period of time (e.g. a week) (e.g. Child : Filter on the browser menu). Important! Due to file size limitations on Pocket PC, try to export no more than a 1000 elements at a time. If your subset it larger than that, use Child : Outstanding to make sure you export only elements due for repetition 
  4. In SuperMemo 2004, open the browser with the selected subset of elements and choose Tools : Export as XML on the  browser menu available with a right-click. Important! Do not select Convert OEM character set to Unicode unless you are indeed using an OEM font and you know the relevant code page number
  5. Transfer the XML file exported from SuperMemo 2004 to your Pocket PC (e.g. using ActiveSync)
  6. In SuperMemo for Pocket PC choose File : Import : Import XML and select the file transferred from the PC
  7. Take your Pocket PC on the road. Choose Learn whenever you got a minute to spare. The whole process of opening up the device, starting SuperMemo, executing a single repetition and closing the device takes approximately 25 seconds. If you got 2 minutes of time to fill up, you can easily execute 5-20 repetitions. You can speed this all up if you attach SuperMemo to one of the Pocket PC buttons (Start : Settings : Buttons)
  8. In the meantime, you can continue the incremental reading process in SuperMemo for Windows. However, if you do not plan to synchronize often, you could protect items from being repeated in both SuperMemos by diluting the subset that was transferred to Pocket PC. For example, after exporting XML, use Learning : Dilute on the exported browser subset and make sure that all item repetitions are shifted beyond the date of the next synchronization (e.g. in 1-2 weeks). Nevertheless, SuperMemo shall have little problem with resolving duplicated repetition cases at synchronization
  9. After some time, export your learning data from SuperMemo for Pocket PC to an XML file (File : Export : Export XML). You can proceed with the export after a few repetitions or after a few weeks. Most likely you would want to return the XML file back to SuperMemo 2004 after 1-2 weeks after you have processed the bulk of repetitions and before the subset dispersed with Dilute brings duplicated repetitions into the process on SuperMemo 2004 (the export process per se does not deactivate or postpone repetitions) 
  10. Move the exported XML file back to your PC
  11. Import the XML file back to SuperMemo 2004 with File : Tools : Import : Learning process : XML File. The learning process will be updated, duplicated repetition cases resolved, modified texts changed (if you choose so), etc.
  12. You may continue incremental reading or export another subset of items for repetition on Pocket PC by going back to the beginning of this algorithm 

Important: Not all learning material generated with incremental reading can be processed on Pocket PC. For that you will need to exclude it from your export subset or dismiss it when executing repetitions on the pocket device. For example, topics, items with pictures, items with sound, spelling exercises, multiple choice tests, etc. will still need to be excluded. However, this may actually add extra efficiency to your repetitions as you will be able to focus on using your pocket device for quick one-key repetitions (e.g. cloze deletions only). In other words, you will be able to separate keyboard-intense incremental reading from speedy click-click work on Pocket PC. You can delve into the most fascinating new reading material on your PC, and leave the drudgery of repetitions to Pocket PC. You can allocate your best creative and most attentive time to your PC, while rushing off repetitions on PPC in all conceivable circumstances. You could thus have more fun learning at home, and maximize the use of spare time everywhere else.


The path traversed by SuperMemo is convoluted enough to avoid far-going predictions reaching beyond 2-3 years ahead. However, the arrival of XML data exchange will certainly have a major impact on the way we interact with SuperMemo. The die is cast. The revolution has begun. It all begun in the pocket.

To be continued