Using registries


Introducing SuperMemo registries

Registries in SuperMemo are sorted sets of objects such as texts, pictures, concepts, templates, tasklists, fonts, stylesheets, etc. Each registry is composed of a set 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)!

The picture below presents an exemplary registry window with a registry toolbar at the top and a registry menu button at the leftmost:

SuperMemo: Image registry which you can use to review images used in your collection

Figure: An image registry is a set of image files sorted by their names. The picture presents a typical image registry. There are 21,645 pictures in the registry (as displayed in the caption). Image names are displayed on the left. Most of pictures are stored in the JP(E)G format. Other formats show in different colors: GIFs in orange, PNGs in yellow and BMPs in lime. Pictures with checkmarks can be extracted into a picture subset (e.g. to illustrate a chosen element). The currently displayed picture is one of citric acid cycle (Krebs cycle, TCA cycle). Individual elements in SuperMemo can focus on small portions of this large picture. The list of elements using a given picture can be displayed in the bottom-right panel by clicking List at the very bottom of the registry window. The status bar displays selected information about the current image. It is the 3637th image in the alphabetical order. It is reused by 55 elements. It is located on physical position 2270 in the registry. It occupies the file slot 196353 in the [ELEMENTS] subfolder. Its path and filename in the [ELEMENTS] subfolder is displayed next. The file is 121,712 bytes large. It was imported or created on Oct 21, 2006 at 17:54:34.

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 File : Import file on the component menu), 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).

Registries used by SuperMemo

These are registries used by SuperMemo (in order of importance):

More about SuperMemo registries

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 : Lexicon. 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] subfolder 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 File : Import file on the 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

You can initiate a Neural review over the selected registry member by clicking Neural (Alt+N) at the bottom of the registry window.