ABC Hints&Tips Overviews Reference Glossary Support
Contents : Overviews
Creating the structure of a knowledge tree

The knowledge tree is the hierarchical structure of elements (as displayed in the middle of the contents window). An exemplary tree is displayed below. Building and modifying the tree in SuperMemo is easy, yet it causes lots of confusion among the beginners. This is why understanding the tree terminology can be useful. This overview will help you build your own tree in minutes

Terminology: tree, root, branches, children, siblings, parents and leaves

The tree presented above begins with the root named All my knowledge at the top. There are five branches growing from the root: Reading list, Private, SuperMemo, English and Sciences (there are more branches under Sciences that are not visible in the picture). All branches growing from a given branch are called children. The branch Sciences has five children displayed in the picture: 

  1. Business, Law and Economics
  2. Political and Social Sciences
  3. Technology and Sciences
  4. Medical Sciences
  5. Computer Science

All the branches listed above are their own siblings. For example, Medical Sciences are a sibling of Computer Science. On the other hand, Sciences is the parent of all the siblings listed above.

Further down the tree structure, there are children of Computer Science such as Software, Programming, Internet, etc. 
At the very bottom of the structure there are leaves, i.e. children that do not have further children (the leaves are usually items that take part in the learning process)

Please note that the root, branches, children, leaves, etc. are all elements in SuperMemo. This means that you can view them in the element window and fill them out with components (such as texts, pictures, sounds, etc.). To view a given branch in the element window, select it and choose View at the bottom of the contents window

Status icons: pending, memorized and dismissed 

All branches in the tree are marked with small icons that indicate the status of a given element in the learning process:

Building the tree 

There are two basic methods of building a knowledge tree:

  1. Using the contents window - you can use operations such as Add, Sibling, Insert or Delete to build the tree directly in the contents window. Once you build a tree or its part, all elements will remain empty, i.e. you will have to fill them out with components (e.g. by means of templates
  2. Using categories - if you add a large number of similarly looking items to a single branch, you will rather want to use categories which greatly simplify this process. Categories automatically use templates to make sure that your elements are filled out with components of a desired look, number, size, etc.

Once you create a tree, you can always modify it using drag&drop operations

Building the tree in the contents window

If you build a small collection with a complex tree structure, you may prefer to use the contents window operations to build the tree:

  1. If you choose Add, a new child will be added to the currently selected element (please click Add several times to see how this option works)
  2. If you choose Sibling, you will add a new sibling of the currently selected element (i.e. you will add a new child to the parent of the currently selected branch). Note that there is only one root of the tree and you cannot add siblings to the root
  3. If you choose Insert, you will also add a new sibling, but the new sibling will be inserted in the place of the currently selected element. The selected element will move one position down. As in the case of Sibling, you cannot insert a new element in the place of the tree root
  4. If you choose Delete, you will delete the currently selected branch (i.e. the selected element and all its children) 

Once you add an element or a few elements, you can modify their titles. For this purpose select the element and click it to start editing the title. You can also choose View and press Alt+T to conveniently edit the title in the element window. If you fill out elements with texts, SuperMemo will automatically generate titles of your elements

If you would like to change the structure of the tree, read below: Modifying the tree using drag&drop operations

Building the tree using categories

Categories are portions of the knowledge tree that use the same look of elements and usually belong to a single subject. For example, you can define a category called Biology and keep there all items related to biology.
If you select a given category on the toolbar, each time you press Ctrl+A, you will add a new item to the selected category. You will use this method only then if you want to add a large number of items to the same place of the knowledge tree. Later you can use drag&drop operations to modify the tree or use Element parameters to move an element between categories.

For more details, read: Using categories

Modifying the tree using drag&drop operations

If you would like to modify the structure of the tree, you can do it most easily using drag&drop operations in the contents window

Modifying a tree is as simple as dragging a branch from one location to another. To drag a branch, click it with the mouse, hold down the left mouse button, move the mouse to another branch (still holding the mouse button) and release the left button once you are over the target branch. The dragged branch will be moved to the target

It is important to know that there are several dragging modes. Depending on which mode is selected, the dragged branch will be moved in one of several ways. You select the modes using the drag&drop combo box on the edit toolbar in the contents window (the one marked with Replace target at the top of the edit window displayed above). There are five dragging modes in the contents window:

  1. Replace target - in this mode, if you drag a branch onto another branch, the dragged branch will replace the target branch and the target branch will move one position down
  2. Add as last child - the dragged branch will be moved to become the last child of the target branch (naturally, you cannot drag a branch to any of its descendants as it cannot become its own child)
  3. Add as last sibling - the dragged branch will be moved to become the last sibling of the target branch
  4. Transplant children - all children of the dragged branch will become the children of the target branch, but the dragged branch will not move
  5. Transplant partly - same as Transplant children with this difference that you will be asked how many children you want to transplant. If you choose a number N, only the first N children of the dragged branch will be transplanted (auto-sorted tree will behave in the same way as an unsorted tree, i.e. element will be transplanted in their physical order; not in the sorted order)

Please note that if you change the dragging mode, the change will affect all dragging operations in the future, even if you quit SuperMemo