| Categories |
What are categories?
When you work with a collection which includes material belonging to different subjects, you will want to keep different subjects in different sections of the knowledge tree (in the contents window). You will also want to design a different look for items related to literature, and a different look for questions related to mathematics. For example, you will use pictures to illustrate your anatomy branch, sounds to illustrate your foreign language section, spell-pads to make your spelling section work best, etc.
To help you keep different subjects in one collection, SuperMemo introduces the concept of a category. A category can be seen as a tool for building a section of the knowledge tree. One category is used for adding material related to one subject. Elements added to a given category may use their own template that determines their look (e.g. images, sounds, colors, fonts, sizes of text fields, number of shape components, etc.). It is highly recommended that you learn about templates before using categories. See: Using templates.
Once you understand the concept of the category, it will become very easy to manage a large number of items belonging to entirely different areas of knowledge.
Creating a category
You can easily create a new category using the following steps:
Tips:
- When you first create a category, SuperMemo will root it in an element in the knowledge tree (it will create a new element or use an existing element for that purpose). This new element is not the category itself. This new element is a special element called the root node. Initially, it will have been assigned as both the root node and the hook node since it is the only element in the category for now. All elements that are descendents of this first element will be considered to be "in" the category.
- Press Alt+A if you want to add some elements to your new category. If you click Contents, you will see your newly added elements become children of the root element (i.e. the branch created with Edit : Create category).
- While there can be more than one category, there can only be one "current" category. As you create new elements (using any means other than directly in the knowledge tree) they will be added to the current category. What this means is that they will be added as a child of the element currently assigned as the hook node. This is why it is called the "hook" node. It is the one that catches all the new elements. In addition to determining the new element's location, the current category determines most of the default properties for the new element. Most important is the default template
- If your Tools toolbar is visible, in the category combo box, you will see that your new category became the current category. This means that choosing Add new will add new items to your new category.
- You can also create a category by right-clicking on an existing branch in the knowledge tree and choosing New : Category. The location where to insert the category and the name will be automatically filled in based on the branch you right-clicked on. However, it will not convert that branch into a category. It will create a new branch that looks identical to the selected branch except that it is the root node for the new category
- By default, the top-most branch of any collection is a root node of the default category created while creating the collection. This category receives the same name as the collection
Using Categories
When you click the Add New button, the new element is created in the location and using the template determined by the current category as chosen in the drop down list
of the combo box in the
Tools
toolbar.
While you are creating new elements, if you decide you want this element to go into a different major portion of the knowledge tree then all you have to do is change the current category before creating the new element. That new element will then be placed in the appropriate location of that other section of the tree and the appropriate template will be used. If you start creating elements for a different subject then you just change the category again.
In order to achieve this convenience it may be necessary to create a rather large set of categories, especially if you keep all your information in one collection. You may want to create categories for more than just each major "category" of information. You may want to create one for each type of question you might ask for each different subject. You may even want to break your subjects down into smaller sub-topics so that you can choose an appropriate category to get the new elements closer to other related information.
In incremental reading, instead of frequently changing
categories while adding new items, you are more likely to use a big TO DO category,
and move individual items to their final categories only when they are finished
in the incremental learning process (e.g. with Ctrl+Shift+P).
Tips:
- If you define a new look for items in your collection, you can press Ctrl+Alt+M to save the look as the default template for the current category (Template : Save as default on the element menu)
- You can right-click anywhere in the knowledge tree and choose New : Item and SuperMemo will create an element there. However, it will then use its own pre-defined item template. This can be confusing
- Since there is no way to tell by looking at it whether an element in the tree is a root node of a category it may be a good idea to prefix the names of these elements with Cat: (or similar)
- If you delete a category from the category registry, it does not delete the associated portion of the knowledge tree. You can create a new category for that portion, or leave it without a category assignment. Conversely, if you delete the root node of a category, it does not delete the category. However, SuperMemo does issue a warning and changes the root and hook of that category to the top-most element in the tree
- It is possible to have more than one category have the same root and/or hook. This could be useful for quickly choosing among multiple templates while still putting new elements in the same location
Category properties
If you would like to change category properties, choose Search : Categories on the main menu, or click the yellow button to the right of the categories drop down list in the Tools toolbar. You will see the category registry with all categories that you have defined for the collection:

Each category in the registry is characterized by the following properties (compare with the picture above):
Using category registry
The category registry can be opened with Search : Categories on the main menu. Category registry is useful in the following circumstances:
It is not recommended to change Root or Hook manually (unless you fully understand the way SuperMemo builds category folders under the category root). Choosing it wrongly may result in an unexpected rearrangement of your entire knowledge tree (SuperMemo rebuilds the category tree when you add too many elements to its hook node).
Conclusion
While it may seem complicated at first, with categories, it is really quite simple to create new elements. You can just keep pressing the Add new button confident that the new element is going to go right at the end of the list of elements under the hook node of the category you are currently working with. If you decide to look at some other element in the knowledge tree, you can go right back to adding new elements and they will still be added where they were being added before. This way, if you are reviewing elements in the tree and decide to add another element, it will go at the end of the list of elements for that category where it belongs.
Summary
Here is the typical way of working with categories:
See also: FAQ: Categories in SuperMemo