Using registries

Registries in SuperMemo are universal object repositories. Each registry is composed of a collection of registry members sorted by their name. For example, image registry is a collection of image members, sorted by image names and associated with individual image objects stored in a given knowledge system. By using registries, SuperMemo minimizes the space used by multimedia files by making sure that each object is stored only once are reused by particular topics and items through access to particular registries. For example, if you import an image file into an image component of a given element (using Import file), you can later link another image component with the stored image object by providing its registry name (using Link registry member). By default, the name is the same as the original image filename, but you can change it at the moment of import.

The following are the types of registries used in SuperMemo:

It is worth noting that the lexicon registry stores all words used in a knowledge system. 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 knowledge system. Instead, this word becomes unavailable for Search : Find word.

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 (e.g. in the REGISTRY directory, COPY GERMAN.* TEXT.* will replace all text in a knowledge system with their German translations, on condition that the GERMAN registry has been created as a translation of the knowledge system, e.g. with ASCII export from the text registry).

Components which use particular objects store only registry references, not objects itself. 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 pop-up 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 Link registry member, the reference count of this particular member is incremented. In other words, SuperMemo knows how many components in the knowledge system 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 knowledge system, its corresponding registry member will be deleted without confirmation.

For information on registry operations see: Registry pop-up menu.