Why need references?

In incremental reading, you always need to quickly recover the context of a question or a piece of text. The easiest way to recover context quickly is via references. In earlier versions of SuperMemo, you would choose a piece of text, e.g. the title of an article, and mark it as reference (e.g. as title reference). This reference would propagate from element to element as you produced extracts and cloze deletions. With all child elements produced from a given text marked with references, you would never need to worry about losing the context of the question.

For example:

Q: He was born in [...](year)

cannot be answered without the context. However, the following question is already easier to understand:

Q: He was born in [...](year)

#Title: Barrack Obama
#Source: Wikipedia

To speed up learning, in the Incremental reading process, the above question should naturally be replaced with:

Q: Obama was born in [...](year)


Q: Obama was born in [...](year)

#Title: Barrack Obama
#Source: Wikipedia

As of SuperMemo 2008, references are not stored in HTML files that hold your articles but in a reference registry (i.e. in a separate database). The reference registry does not hold the text of references either. All reference texts are held in the text registry and are available for global text searches. In earlier versions of SuperMemo, each text would keep its own copy of references. In SuperMemo 2008 and later, elements keep only pointers to reference registry, which in turn keeps pointers to individual text fields in the text registry. As a result, many elements can hold the same reference, and many references can hold the same text. This results in a significant saving in space in your collection. More importantly, you can update the reference in a single element and see the change show in all elements using the same reference. This way, you do not need to waste time on search&replace to correct a single misspelling or reference inaccuracy that propagated to many elements.

Reference system highlights

  • To mark texts as reference fields use the Reference submenu on the HTML Component menu (e.g. Reference : Select or Alt+Q)
  • References marked with Alt+Q options show up in the reference field and can be deleted from the text's body (if no longer needed)
  • References no longer clutter your HTML files. In the past, the size of references would often be greater than the length of the text itself
  • Adding an existing reference to an element (e.g. with Reference : Link from the element menu) does not add to the size of the collection
  • Reference registry keeps the references (see below), and their individual text fields are stored in the text registry
  • References are added to HTML texts at load time, so that you can still have references located at the bottom of your texts as in earlier versions of SuperMemo
  • Reference fields #Article, #Parent and #Category are added automatically and are not stored in the reference registry. These fields are not generated in elements that have no other reference fields defined
  • There is little difference in the behavior of the references from the user's point of view as compared with earlier SuperMemos. All you need to learn in SuperMemo 2008 or later is to differentiate between local and global edits of references. Local edits affect only the present element and create a new reference record. Global edits change the original reference in all the elements that use it. When SuperMemo is not sure if your edits are local or global, it will ask you
  • Formatting of references can be changed via stylesheets
  • Converting HTML to plain text does not affect the formatting of references (i.e. plain text entries can have their references formatted by a stylesheet)
  • You can edit references in the reference area or in a dedicated window that you can open by choosing Reference : Edit from the element menu. You only need to use legal reference field tags at the beginning of each reference line (e.g. #Author:). If SuperMemo is not sure if your changes should apply to the current element only, or to all elements that use the reference, it will ask you
  • You can set the same reference or add reference fields to a subset of elements by right-clicking your mouse in the element browser, and choosing Process browser> : Reference : Set reference and Process browser> : Reference : Merge reference respectively

Important! Do not add your own non-reference texts below the horizontal bar marking the reference area. All reference field area is owned by SuperMemo. Any modifications to that area will be treated as changes to reference fields. Changes that do not conform with reference field formatting will be discarded without warning.

SuperMemo: References help you quickly recover the context of a given element as well as track its source and build a list of citations (in the picture: blue marks an incremental reading extract, yellow marks a search string (i.e. GABAergic REM-on neurons), while pink marks the reference field, which will propagate to all children elements (extracts and clozes))

In the picture above, an extract from an article on sleep and dreaming is presented. Blue marks an extract produced from the presented text. Yellow marks the search string (i.e. GABAergic REM-on neurons) that was used in Search : Find elements (Ctrl+F) to find all the elements (including this one) containing the string. Pink marks the reference area (consisting of the Title, Author, Date, and Source fields), which will propagate to all children elements (extracts and clozes) generated from this element.

SuperMemo: References are kept in a dedicated registry while their individual text fields (e.g. title, author, date, source, etc.) are stored in the text registry, and thus are available for global text searches

Hints and Tips

  • AND-Search in SuperMemo works on texts, not on elements. This means that reference texts do not take part in AND-Search for the main body of text. This may result in false misses. In SuperMemo 2008 or later, texts and individual reference fields are all treated as separate texts and are all searched independently
  • if you choose an empty selection for the Date reference, you will mark the text with the current date and time stamp


You may need to use Alt+Q to force some old-style references into the reference registry

My topics with old-style references get automatically converted and new-style references are generated. However, sometimes that process is incomplete. Some of my reference fields enter the registry, while others remain in the body of the topic.

The body of the topic is scanned for old-style references only if references are empty. Once there is a reference in the reference registry, only changes to the reference portion of the topic are detected. If you want all your old reference fields to be re-considered again, copy them to the reference part of the article (anywhere inside the pinky area under the horizontal bar). They will be scanned, deleted, converted and reformatted as a new reference.

Old-style references must be enclosed in SuperMemoReference tags to be recognized

My topics with old-style references get automatically converted and new-style references are generated. However, sometimes this does not happen at all.

For old references to be recognized, they have to be enclosed in <SuperMemoReference> tag. Those tags were not used in older SuperMemos. Those very old references will not be automatically removed; however, they should always generate the correct reference fields for the reference registry.

You can edit references in the reference area

How to edit and delete references?