jdlorimer / incremental-reading

Anki add-on providing incremental reading features
https://ankiweb.net/shared/info/935264945
ISC License
216 stars 38 forks source link

Important suggestion: a different prioritization system #48

Open ghost opened 6 years ago

ghost commented 6 years ago

As Alexsejrs pointed out, the organizer is too manual and not convenient. If you manually put your top priority articles at the top of the list (which is already annoying if you've got a long list), then you cannot randomize anymore. But randomizing is important.

The priority of each article should be set by the user on a 1-10 scale. (or another 1-n scale)

Any thoughts?

ghost commented 6 years ago

Also:

ghost commented 6 years ago

If anyone happens to be interested in this suggestion, I have implemented it in my fork (I hope Luo Li-Yan comes back soon to Github so we can merge our versions). UPDATE: Luo Li-Yan has come back and it's not in my fork anymore. Every point has been implemented except:

To-do

Not done but not to do

jdlorimer commented 6 years ago

Gee whiz, someone has been working hard :-)

Give me a few days to look over the code.

ghost commented 6 years ago

Before I actually copy my changes to the new code and submit them as a pull request, it might be better to first discuss the desirability of this proposal, and how it might be improved. This is inspired by how I assume SuperMemo works − from what I've read, because I couldn't make it run on Linux. So here are all the changes that I suggest doing (this list overlaps the previous comments and should be exhaustive):

  1. Adding a Priority field between Title and Text. This field would contain either nothing (no priority yet), or an integer in one of the following ranges: 1-10, 1-20 and 1-100.
  2. This would make a new model: IR4.
  3. The transition to model IR4 from IR3 and IRead2 would be automatic: all IR3 or IRead2 notes would be converted into IR4 with a default priority of 5 (as 1-10 is the default priorities range), and these note types would be deleted.
  4. The maximum priority (10, 20 or 100) would be defined in the Options dialog. Switching from one to the other could be associated with an update of all existing priorities (e.g. multiplying all priorities by 10 when changing to 100 from 10): image (the dialog isn't up-to-date)
  5. The organizer would display priorities instead of ranks: image
  6. Randomizing would be consistent with priorities, using this formula: gauss(maxPrio - priority, maxPrio/20) then sorting.
  7. Articles with no priorities would go to the bottom of the organizer
  8. The Soon, Later and Custom buttons would be replaced by a single button: Next
  9. 'When do you want to see this card again?' would be replaced by something like 'Hit space to move to the next article'
  10. The Schedule extract option in Options/Extraction would disappear
  11. The Scheduling tab in Options would disappear
  12. Pushing the Next button would send the current article to the end of the organizer. Getting them back to the top would be achieved either by a small number of articles in the organizer, or by randomizing (which could be done whenever the user wants to, e.g. once per day)
  13. adding a new note would randomize all articles (so that it doesn't go to the bottom of the organizer) (this I haven't coded actually, except for webpage imports)
  14. A dialog would allow for quick priority definition on webpage imports: image (clicking works, as does typing the priority)
  15. The organizer might have 2 more buttons: Priority up and Priority down, which would increase or decrease the priorities of the selected articles of 1 unit.
  16. The Top, Up, Down and Bottom buttons might or might not be removed, as they would be less useful.
  17. The priority of an extract would be the priority of the parent article. However this will quickly raise issues for people who are used to extract a lot. As for myself, I don't use extracts (only quick keys) because I think they need to be scheduled with spaced repetition, not as regular articles. I acknowledge that with the current way extracts are handled, this proposal will make things worse for them: the user will quickly spend all their time reading high-priority extracts.
  18. (independent proposition) A shortcut would be added for randomization from the organizer (R by default)

Does this sound like an improvement? Are there points that should be improved or not implemented? Are there points to add?

jdlorimer commented 6 years ago

My usual workflow is basically:

I agree that setting priorities on import would be useful for managing a deck full of articles, but replacing the current system entirely wouldn't be compatible with certain workflows. In particular, it wouldn't work for anyone who relies on a fixed card order and control over positioning of extracts.

I like the idea of attaching priorities to IR cards, but I think think two approaches need to coexist.

ghost commented 6 years ago

Hm I see that it wouldn't be great for you. I've also read in issue #39 that @levodopa cares about order, too. I tend to think that most users would prefer priorities, but I might be wrong.

Here's my workflow, to give a bit of context:

Now making the two approaches coexist is doable, so I'll do that.