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 may also want to design a different look for items related to literature, and a different look for questions related to mathematics. For example, you could 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 organize 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.
Category: the definition
A category is a section of the tree defined by the following:
- root - the branch that is the parent of all elements belonging to a category
- hook - the branch to which new elements are added when adding to the category (hook is a desendant of the root)
- templates - templates used in the category
- other attributes (e.g. the default forgetting index used in the category)
Creating a category
You can easily create a new category using the following steps:
- Choose Edit : Create category on the main menu
- Choose a branch in the knowledge tree where a category should be inserted and click Next
- Type in Category name (e.g. geography, biology, etc.) and click Next
- If you want your category to use a different template use the Change buttons to select a new template. If you are not sure about templates, click Finish and SuperMemo will use default templates for your category. You can change category templates later by means of Search : Categories. Template for items will determine the look of your question-answer items in the category. You can also choose other template formats for items (e.g. occlusion test, multiple choice test, etc.). Template for topics will determine how your category articles will look like (e.g. when you import them with Ctrl+Alt+N in incremental reading)
- 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
- Categories cannot have subcategories. Instead you can create many categories as children of the same branch. For example, you can create a branch Language, add two children Grammar and Vocabulary. Those children can become roots of two categories: Language : Grammar and Language : Vocabulary
- You add to the current category with Add new. You do not operate on categories using the knowledge tree and the contents window
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 Shift+Ctrl+P).
- 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
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):
- name - the name of the category (e.g. Geography). All category names are displayed on the left in the category registry. Category names are unique. If you try to create a second Geography category, SuperMemo will change the new name (e.g. to Geography#, Geography@ or similar)
- template - template that determines the look of items in the category
- root - the element which is the ancestor of all elements included in the category (i.e. all elements in the category are descendants of the root). By default, this is the same element that was added when using Edit : Create category
- hook - the element to which new category elements are added as children when you choose Add new (e.g. by pressing Alt+A). This element is chosen automatically by SuperMemo and you do not have to change it. Hook is either equal to the root (e.g. at the beginning of the category's life) or is a descendant of the root (when the root already contains many children). Note that Add new adds elements to the hook of the current category (as selected in the category combo box on the Tools toolbar). Once the number of children in a given hook exceeds a defined limit, a new hook node is chosen automatically by SuperMemo. By default, this is also the same element that was added by using Edit : Create category
- ordinal - default ordinal in the category (use zero to make SuperMemo generate ordinals corresponding with the number of elements in the collection)
- forgetting index - default value of the requested forgetting index in the category (use zero to make the category reuse the default forgetting index defined with Tools : Options : Learning : Forgetting index)
- auto-apply - property which determines if Apply template is to be used automatically on elements transferred from another category to the category in question (as with Shift+Ctrl+P). If Auto-Apply is checked, the template will be applied automatically. If it is unchecked, template will not be applied. If it is grayed, SuperMemo will prompt you before applying the category template (use the grayed option if you are not sure which one is appropriate)
- topic template - template used for topics in the category
- task template - template used for tasks in the category
Using category registry
- If you want to change the name of a category, use Rename in the category registry
- If you want to change the template used for items in the category, click the Template button in the category registry, select a new template from the template registry and choose Accept
- To delete a category, choose Delete in the category registry
- To decide if a template should be applied automatically when moving items into the category , use the Auto-Apply checkbox
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).
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.
Here is the typical way of working with categories:
- Use Edit : Create category to create a category
- Use Ctrl+Alt+M to save the default item template (or use Search : Categories to change category templates)
- To start adding items to another category (e.g. to start working with Chemistry after finishing your work with Geography), choose the new category in the category combo-box on the Tools toolbar
- To move items from TO DO category to a target category (e.g. Chemistry), press Shift+Ctrl+P and change the category in the Category combo and choose OK