Using registries

Registries in SuperMemo are sorted sets of objects such as texts, pictures, fonts, templates, categories, tasklists, stylesheets, etc. Each registry is composed of registry members, which are named objects used by the collection. 

Important! Registries in SuperMemo, have nothing to do with the Windows registry (SuperMemo have been using registries before the release of Windows 95)!

An image registry is a set of image files sorted by image names. The picture presents a typical image registry. There are 4931 images in the registry (as displayed in the caption). Image names are displayed on the left. The currently displayed picture of Australia and Oceania is shrunk proportionally to fit the size of the registry window. Individual elements in SuperMemo can focus on small portions of this large picture (e.g. Solomon Islands, Fiji, Guam, etc.). The list of elements using a given picture can be displayed at the bottom by clicking List. The status bar displays selected information about the current image. It is the 253rd image in the alphabetical order. It is uses by 97 elements (items or topics). It is located on physical position 4148 in the registry. It occupies the file slot 188291 in the /elements folder. Its path and filename in the element folder is displayed next. The file is 481,820 bytes large. It was imported or created on June 12, 2006 at 10:26 pm.

By using registries, SuperMemo minimizes the space used by multimedia files by making sure that each object is stored only once and used by as many elements as necessary (through the  access to the registry via so-called registry links). For example, if you import an image file into an image component of a given element (using Import file), you can later link the same image file with another image component by means of Links : Registry member. By default, the name is the same as the original image filename, but you can change it at import or later on (e.g. with Alt+R if the image component is the current component).

These are the most important registries used by SuperMemo:

  • text registry stores all texts used in the collection (including sound texts, RTF texts, HTML texts and Spell-Pad texts). Text registry is available with Search : Text registry (Ctrl+Alt+X)
  • image registry stores all images used by the collection (e.g. BMP, GIF, JPEG, PNG, etc.). Image registry is available with Search : Images
  • sound registry stores all sounds used by the collection (e.g. WAV, MID, MP3, RMI, etc.). Sound registry is available with Search : Sounds
  • template registry stores all templates defined in the collection. You cannot link a template to a component. Instead, you apply a template to an element to change its appearance. Template registry is available with Search : Templates. You can view the templates on the right in the template registry window. Read more: Using templates
  • category registry stores all categories used by your collection. You can use this registry to delete, rename or change the properties of categories. Most of all you will need this registry to change templates associated with a category. Category registry is available with Search : Categories. Read more: Using categories
  • font registry stores fonts that can be used in text components. Font registry is available with Search : Other registries : Font
  • video registry stores video files. Video registry is available with Search : Other registries : Video
  • style registry holds stylesheets used to format HTML texts
  • tasklist registry stores all tasklists associated with your collections. You can use this registry to add, delete, rename or edit tasklists. For example, you can use change the category in which tasks will be stored and the archive where the tasks will be moved after choosing Dismiss. Tasklist registry is available with Search : Tasklists. Read more: Tasklist manager
  • script registry stores all scripts used in the collection. Script registry is available with Search : Other registries : Script
  • OLE registry stores OLE objects imported from other applications (such a an MS Word file or Excel Chart). OLE registry is available with Search : Other registries : OLE object
  • binary registry stores all kinds of files used by your collection (DLL, EXEHLP, MPEG, MOV, DOC, PDF, etc.). Binary registry is available with Search : Other registries : Binary
  • lexicon registry stores words used in the collection and keeps the record of text registry members that use a given word. Lexicon registry is available with Search : Find word. If your collection is very large or includes long texts, you may want to speed SuperMemo up by unchecking Compile lexicon on the fly in Tools : Options : Data access. If you do not compile the lexicon in real time, you can build it with File : Repair collection by checking Rebuild lexicon
  • phonetic transcription registry is the only twin registry that is built of two conjunct registries: one containing individual words and the other containing their respective phonetic transcriptions. Transcription registry, if installed, is available from Search : Other registries : Pronunciation by word (individual words) or Search : Other registries : Pronunciation by sound (transcriptions). You can select a transcription registry suitable to a given language with Tools : Options : Language : Phonetic transcription
  • translation registry stores translation texts that correspond with the text registry in the currently selected translation language (Tools : Options : Language : Collection translation). Translation registry, if created, is available with Search : Other registries : <Language> registry (<language> here is the name of the translation language, e.g. French, Swahili, Spanish, etc.). Current translation registry language can be changed with Tools : Options : Language : Collection translation

It is worth noting that the lexicon registry stores all words used in a collection. The difference between the lexicon registry and the remaining registries is that individual words are not stored as links to a registry; therefore, deleting a word from the lexicon registry does not delete it from the collection. Instead, this word becomes unavailable from Search : Find word. Newer versions of SuperMemo do not automatically build the lexicon for performance reasons. To build a lexicon check Rebuild lexicon while running File : Repair collection. Note that this process takes very long even for smaller collections.

Text translations are also stored as registries. These are equivalent to text registries and can be easily replaced by means of copying and renaming registry files. For example, if you have translated your collection to German by creating a translation registry called German, you can copy German.* to text.* in the registry folder and your original texts in the collection will be replaced with their translations to German (note that you will need to rebuild the lexicon in order to generate a lexicon of German words).

Components which use particular registry objects store only registry references, not objects themselves. For example, a sound component may store a reference to a sound registry for its sound file, and to text registry for its text. This approach makes sure that large objects (e.g. video files) can be reused without wasting disk space. Each time you import an new object with Import file on component menu, you add it to the appropriate registry. Similarly, each time you type a new text to text, spell-pad or sound components, you add it to the text registry.

Each time you link a registry member with Links : Registry member, the reference count of this particular member is incremented. In other words, SuperMemo knows how many components in the collection use that particular member. If you delete the last reference to a particular member, i.e. its reference count drops to zero, the corresponding registry object will be deleted with or without confirmation. For example, if the last component using a given image is deleted, you will be asked if you want that image to be removed from the image registry. However, if the last reference to a given text is deleted from the collection, its corresponding registry member will be deleted without confirmation