ExponWords » Help

The basics

ExponWords is a web application for learning words. It helps learn the word pairs fed by the user using the principle that the more we have already practiced a word, the less we need to practice it again.

So the main point of ExponWords is that the more times the user was able to remember a word when the program asked, the less frequently it will be asked (because it will be considered "stronger"). When a word is asked and the user states that he remembers it, the word will be asked the next day; if the users remembers the word the next day, it will be asked in 2 days; if he knows it in 2 days, it will be asked in 4 days; and so on with powers of 2. If the users admits on any of these occasions that he does not remember the word, the strength of the word as stored by ExponWords will go back to the initial level, and it will be asked again in 1 day, then 2 days afterwards, then 4 days afterwards etc.

ExponWords stores word pairs to be learnt. These can contain not only words, but also expressions or anything the users wants to learn. For the sake of simplicity though, they will be only referred to as word pairs. Word pairs have the following elements:

User interface

ExponWords has a global menu and a separate menu for each dictionary.

The global menu is available on the main page: the user can log in, log out, create dictionaries, set the options.

The dictionary menus are available from the dictionary page, which can be accessed from the main page by clicking on the name of the dictionary. The user can view, edit and delete the dictionary, add and import new words, and practice.

Main page

The main page has the following menu items if nobody is logged in: The main page has the following menu items for logged in users:

Dictionary page

The dictionary page shows activities that can be done to the selected dictionary. It has the following menu items:

Text formats

A dictionary uses one of the following text formats: plain text, HTML (keep linebreaks) and HTML (unmodified). The text format determines how words and notes are displayed to the user during practice sessions, or when listing words. With using one of the HTML text formats, you can use bold text, italic text, colors, images, tables, etc. in your words and notes. For further demonstration, let's see a more complex example using the HTML (keep line breaks) format:

Custom CSS

A custom CSS can be set for each dictionary in the "Modify dictionary" page. If the dictionary format is HTML, then the custom CSS will be applied on all web pages where words of that dictionary are shown (practice page, list words, etc.)

Importing word pairs

Importing word pairs as text
Word pairs can be imported as a text. The words in language 1 and language 2 should be separated by the " -- " character sequence, and the notes should be indented with four spaces. For example:
machen -- do
essen -- eat
die Katze -- cat
    Plural: die Katzen.
    Katzen sind süße Tiere. (Cats are cute animals.)
der Hund -- dog
    Plural: der Hund, die Hunde.
    Manche Hunde sind auch süß. (Some dogs are also cute.)
Importing word pairs as tab-separated values
Word pairs can also be imported from the list of values separated by a tab character. Write one word per line. Each line should contain two or three fields: word in the first language; word in the second language; notes. The last one is optional. The fields should be separated by a TAB character. If a spreadsheet is opened in as spreadsheet editor application (such as LibreOffice, OpenOffice.org or Microsoft Excel), and it contains these three columns, which are copied and pasted here, then it will have exactly this format. An example text is the following:
die Katze<TAB>cat<TAB>Plural: die Katzen. Katzen sind süße Tiere. (Cats are cute animals.)
der Hund<TAB>dog<TAB>Plural: der Hund, die Hunde. Manche Hunde sind auch süß. (Some dogs are also cute.)


The practice page contains the following elements:

Practice early

The "Practice early" page is a practice page where not only those words are asked that are due today, but those too that could benefit from practicing. (That means words whose dimness is larger than 0.75. So for example if a word is due after 100 day of its last practice, then it is asked in early practice sessions from day 75. From day 100, it is asked in normal practice sessions.)

In early practice sessions, the words are always ordered according to the I am a little behind ordering, which means that first those words are asked that are better suited for early practice (because their dimness is higher).

Word orders on the practice page

Words can be asked in several orders on the practice page. (Note that these orderings specify only the order of words within the practice page, not which word is asked which day.) You can set your preferred ordering globally on the Settings page, or only for one dictionary on the Modify dictionary page.

Note: words in the same category above (e.g. words with the same dimness tomorrow and strength) are asked in a random order.

The concept of dimness

Dimness is a measure that shows how many times a word should have been asked. For example, let's say that a word is practiced and "YES" is pressed, and it is due in 4 days. After the practice, the dimness of the word is zero, because it just has been asked. Then the dimness increases by one quarter each day: 0.25, 0.5, 0.75, 1, 1.25, etc. On the day when the word is due to be asked, it is 1 (by definition). Normally, the word is asked on this day so its dimness goes back to 0; but if the user does not practice it, the dimness will just increase by each day. The dimness of weak words increases rapidly, while the dimness of strong words increases slowly.

When the dimness of a word is greater than 1, it means that the word should be practiced: the higher the dimness, the more urgent the practice is. If the user has quite a few words larger than dimness 1 for the practice session, then the "I am a little behind" word ordering is recommended.

For those interested, here is the formula that calculates the dimness of a word with positive strength (words with nonpositive strength do not have dimness):

dimness = (("today - word_date" in days) + 2 ^ (word_strength - 1)) / (2 ^ (word_strength - 1))

Methods of strengthening a word

When the "YES" button is pressed during a practice session, the strength of the given word will be increased. There are two methods for strengthening the word. They both work on the basic principle that they double the time interval for the next practice: 1 day, 2 days, 4 days, 8 days, etc.

The difference is how they handle the situation when the word is not practiced on the day when the word is due, but later. For example let's say that a word was practiced on January 1st, 2nd, 4th, 8th, but even though ExponWords asked the word on 16th, 17th, etc., it was only practiced on 20th. Let's see how the two methods calculate the next practice time of the word:

In both cases, the strengths of the words will be calculated so that they provide the time intervals described above.

Generally, the first method is better (that's why that is the default), because it means less practice time. In some circumstances, though, the second one may be useful too. In case of early practice, always the first method is used.

The "Search and operations" page can be used to search in dictionaries. The dictionary and the label in which the search shall be performed can be selected. The text typed into the textbox will be split into words (words shall be separated by spaces). Only the word pairs containing all search words will be shown. If the search box is empty, all word pairs will be printed.

The searchbox is case insensitive and accent insensitive, so for example a search for "haz" will found the word pairs containing the text "Ház".

The "label:" prefix can also be used to search for a specific label, e.g. the search expression "label:oldwords cat" will show the word pairs that contain the "cat" word and have a label that contains the "oldwords" label, even in part (so e.g.the words with "veryoldword" label will be found as well).

The program shows the search hits in a table. Showing this table can be turned off by unchecking the "Show hits" checkbox. In this case, the program will still perform the search and display the number of hits. The usual operations can be performed as well; but they will be performed on all found word pairs, there is no possibility of manually selecting a subset of them.


The "Search and operations" page can also be used to perform certain operations on word pairs that have been selected. Word pairs can be selected with a single click on them. The selected word pairs are indicated by their gray background and the state of their checkboxes in the "Selected" column.


The followings can be set:

Similar applications

ExponWords in not the only web application for learning words and other items.

The algorithms of Supermemo (English) and szokincs.hu (Hungarian) are similar to the algorithm of ExponWords in that it has you practice the same word less and less often. The creator of Supermemo (Dr Piotr Wozniak) has articles about this kind of learning, and there is an article in Wired magazin about him.

Other applications for learning words include memorize.com (English), Quizlet (English), Brainscape (English) and Szókincsfejlesztő (Hungarian).

Frequently Asked Questions (FAQ)

Other help pages


ExponWords v1.0.1.
Copyright (C) 2010-2013 Csaba Hoch

ExponWords is open source software and is distributed under the Apache Licence version 2. The source code repository can be found here.