Package: mnemosyne Version: 2.2.1-2 Severity: normal Tags: upstream patch Dear Maintainer,
According to its documentation, mnemosyne follows the SM2 algorithm for determining how to schedule cards (http://www.supermemo.com/english/ol/sm2.htm). When revising a card one scores the answer from 0 to 5, with 0 being a complete blackout and 5 easy and correct answer. According to the SM2 algorithm the easyness score of a card should then be updated depending on the grade of the answer. The interval for revision is adjusted according to this easyness score. I forget some cards repeatedly after one or two revisions, because I find them difficult, so I give them 0 and 1 grades, yet the easyness remains constant. If I give them 2 or 3 grades, which should correspond to better, more correct, answers, the easyness of the cards is decreased. For grades 3, 4, and 5, mnemosyne handles the change in easyness correctly, but for 0, 1, and 2 it does not. For 2 the easyness is updated, but changed too little (increment of -0.16 instead of -0.32 according to the SM2 algorithm). For 0, and 1, where the easyness should be reduced by 0.54 and 0.8 respectively, nothing is done. I am attaching a patch which should be applied to /usr/lib/python2.7/dist-packages/mnemosyne/libmnemosyne/schedulers/SM2_mnemosyne.py -- System Information: Debian Release: 8.0 APT prefers testing-updates APT policy: (500, 'testing-updates'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages mnemosyne depends on: ii libicu52 52.1-7.1 ii libqt4-sql-sqlite 4:4.8.6+git64-g5dc8b2b+dfsg-3 ii python 2.7.8-4 ii python-cherrypy3 3.5.0-1 ii python-matplotlib 1.4.2-3.1 ii python-qt4 4.11.2+dfsg-1 ii python-qt4-sql 4.11.2+dfsg-1 mnemosyne recommends no packages. mnemosyne suggests no packages. -- no debconf information
489a490,493 > if new_grade == 1: > card.easiness -= 0.54 > if new_grade == 0: > card.easiness -= 0.8 497c501 < card.easiness -= 0.16 --- > card.easiness -= 0.32