open-spaced-repetition / fsrs4anki-helper

An Anki add-on that supports Postpone & Advance & Load Balance & Easy Days & Disperse Siblings & Flatten
https://ankiweb.net/shared/info/759844606
MIT License
200 stars 15 forks source link

[Feature Request] do something with related cards that are not siblings #256

Closed aleksejrs closed 7 months ago

aleksejrs commented 1 year ago

Which module is related to your feature request? Scheduler

Is your feature request related to a problem? Please describe. Some cards are not siblings, but they are so related, they shouldn't be reviewed on the same day. FSRS doesn't seem to do anything about them.

Describe the solution you'd like

Burying related cards when one of them is reviewed is implemented in other addons (see below). I would like to have

There are two ways used to determine related cards.

The way to consider: grouping using a tag. You group notes by giving them the same relation_* tag (the prefix is customizable, and it would be relation::* now). Implemented in “Bury related notes" (“anki-relation”): “In addition to burying cards according to these rules, you can also use the rules in the "detect duplicates" tool in the card browser.” The “Copy notes” addon (“anki-copy-note”) is supposed to add relation tags to both copies.

The flexible, but slow and complex way: field comparison as in “Bury Cousins (related cards that aren't siblings)”. IIRC, MorphMan can also bury cards with the same value in the MorphMan_FocusMorph field, or search with it (or even edit cards automatically). “Related flashcards by keyword” promises something like that, too.

L-M-Sherlock commented 1 year ago

So why not use those add-ons you mentioned?

aleksejrs commented 1 year ago

They do only what Anki does to siblings. If that was enough, you wouldn't have written "When should I use it: Always." about Disperse.

L-M-Sherlock commented 1 year ago

OK. Though it's not written by myself, I will consider these cases in the disperse siblings in the new version. But I wouldn't add new feature to the old version (<= 2.1.66).

L-M-Sherlock commented 1 year ago

@Expertium, what do you think of this feature?

Expertium commented 1 year ago

I think the first approach (tags) should work well. Ideally, in the future we should implement something more like the second approach, with automatic detection of similar cards, so that the user won't have to manually tag cards.

Also, I believe the Anki manual says that Anki devs didn't add a feature to mark any arbitrary cards as siblings on purpose, so this may conflict with the devs' vision.

user1823 commented 1 year ago

Theoretically, I like the idea. I have even thought of suggesting it multiple times.

But, implementing it can be very impractical.

Also, I believe the Anki manual says that Anki devs didn't add a feature to mark any arbitrary cards as siblings on purpose

Yes, this is mentioned here: https://faqs.ankiweb.net/linking-cards-together.html

aleksejrs commented 1 year ago

They do only what Anki does to siblings.

I actually use an AutoKey script at the start of a day to flag new cards related to cards due in the next few days, so that I can filter them out (or just keep them buried; I am not sure why I unburied cards before — maybe due to a filtering limitation). It's error-prone and requires disabling the screensaver and Workrave, and not touching the computer.

Secondly, even after the user decides that some cards are related, they will need to mark them as related one-by-one. This can be quite tedious.

Tagging in general is more tedious. Random relation- tags are added to selected or copied cards using addons, though I prefer adding them to newly-created cards.

Because of MorphMan (this modified version for Anki 2.1.22), I stopped making many cards from a separate note, so MorphMan does not consider all the words in a sentence known and I don't miss word combinations that would not be added to frequency.txt. I also split notes into multiple ones sometimes (that's much easier and more efficient with the new Anki, except for that bug, but maybe I can fix it).

Thirdly, if a large number of cards are marked as related to each other, the disperse siblings function would be unable to effectively separate them.

How is that different from notes with many cards generated from them, like cloze, especially Cloze Overlapper notes?

aleksejrs commented 12 months ago

So why not use those add-ons you mentioned?

They are for the V2 scheduler, so apparently I have to review with V2 for them to be useful.

galantra commented 12 months ago

The Anki 23.10 update breaks those burying add-ons. Dae wrote:

Support for the v2 scheduler has been dropped.

Is that why all these add-ons broke with this?

from anki.sched import Scheduler ModuleNotFoundError: No module named 'anki.sched' ⁩ 413416269 Bury related notes 930365039 bury future new sibs 1072815885 Bury Cousins related cards that arent siblings […]

Yes - if they were monkey patching v2, they’re likely not going to work with v3 anyway.

I don't know if any of those add-ons worked with V3 (and not only V2). Cloze Overlapper is affected, too.

galantra commented 12 months ago

The one note type where relating notes probably brings the most benefit for the largest number of people is Image Occlusion. The add-on creates multiple notes from the same image, which optimally would be cards of a single note.

Anki 23.10 introduced native Image Occlusion, but I don't know whether it improved on the add-on's behavior and buries siblings.

cameronj86 commented 9 months ago

Came here re: the occlusion note type myself. Specifically the 'hide one guess one' cards being seemingly unaffected from dispersion. Not a dealbreaker but would further optimize study

L-M-Sherlock commented 7 months ago

This paper proposed a method to predict the memory state of a card based on its top-k most semantically relevant cards' review histories: https://arxiv.org/abs/2402.12291

But it's very complex. I have no plan to implement it.