obsidian-spaced-repetition icon indicating copy to clipboard operation
obsidian-spaced-repetition copied to clipboard

[FEAT] sm-2 is outdated, can you please replace it with the fsrs algorithm?

Open lacanzizek opened this issue 1 year ago • 19 comments

sm-2 is outdated, can you please replace it with the fsrs algorithm?

https://github.com/open-spaced-repetition/fsrs4anki

lacanzizek avatar Sep 27 '23 13:09 lacanzizek

Yes, this will be really great!

SubZeroX avatar Oct 24 '23 22:10 SubZeroX

Is there any update on this? Is this something that is in the pipeline?

reinvanimschoot avatar Feb 08 '24 08:02 reinvanimschoot

Hi @reinvanimschoot thanks for the prompt, I just looked at https://github.com/open-spaced-repetition/fsrs4anki now.

Seems very well researched.

I'll have a look at how easy/difficult it would be to integrate, and post back here hopefully in a week or so.

Cheers Ronny

ronzulu avatar Feb 08 '24 11:02 ronzulu

@ronzulu awesome!

reinvanimschoot avatar Feb 08 '24 11:02 reinvanimschoot

Hey guys! This issue has already been addressed in https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/516.

Additionally, a working implementation was made: https://github.com/open-spaced-repetition/obsidian-spaced-repetition-recall

It seems like an attractive idea to combine the two projects. But I don't know how hard it can be

MotaOcimar avatar Feb 11 '24 02:02 MotaOcimar

Hi @MotaOcimar thanks for letting us know, I hadn't come across it before.

The project you reference https://github.com/open-spaced-repetition/obsidian-spaced-repetition-recall is a fairly up-to-date fork from our project itself.

It seems like an attractive idea to combine the two projects. But I don't know how hard it can be

Definitely worth investigating. If it doesn't work out, I'm sure looking at obsidian-spaced-repetition-recall will make it significantly easier for us to bring FSRS functionality into this project.

Thanks once again!

ronzulu avatar Feb 11 '24 04:02 ronzulu

hi @ronzulu , glad to see you're planning to do this, this branch https://github.com/open-spaced-repetition/obsidian-spaced-repetition-recall works fine for now.

Please let us know if there is anything we can do to help.

If you're going to use this algorithm, the data structure of the cards will need a major refactoring. because I'm modifying it based on the master branch, it's a bit messy in that regard.

Newdea avatar Feb 12 '24 14:02 Newdea

Hi @Newdea thank you so much for your kind offer, and all the work in creating the https://github.com/open-spaced-repetition/obsidian-spaced-repetition-recall branch.

I'm wondering if integrating the FSRS algorithm actually required the alternate tracked_files.json data store, or if you just preferred it.

I understand that the FSRS algorithm needs to keep track of much more information compared with SM-2, and keeping all that extra data in HTML comments would look ugly. Perhaps even distracting away from the questions. Is this the reason why you chose to integrate https://github.com/martin-jw/obsidian-recall?

Thanks Ronny

ronzulu avatar Feb 13 '24 12:02 ronzulu

hi Ronny,

I'm wondering if integrating the FSRS algorithm actually required the alternate tracked_files.json data store, or if you just preferred it.

I understand that the FSRS algorithm needs to keep track of much more information compared with SM-2, and keeping all that extra data in HTML comments would look ugly.

Just as you said, I like to keep notes clean without extra html comments, so that i can edit/share note easily. Beside, if using html comments, when reviewing notes/cards, the modify time of note file(*.md) will change, that will affect me when i hope look notes by modify time. Of course, with Fsrs algorithm, card has more properties, if using html comments, when we edit note, we may change that by accident, then ahh .......

Therefore, I prefer to use separate file to save these data.

Newdea avatar Feb 13 '24 14:02 Newdea

Thanks, so I think its reasonable for the dataStore functionality to be integrated into OSR, first as a standalone exercise:

As per: [FEAT] Stop using YAML; Move plugin info and data to separate file .

ronzulu avatar Feb 14 '24 01:02 ronzulu

Yeah, looking forward to your result.

Newdea avatar Feb 14 '24 12:02 Newdea

If what you said last comes true, it will literally be a gamechanger. You are amazing

TolgaKerem07 avatar Apr 25 '24 10:04 TolgaKerem07

FSRS has been integrated into RemNote recently.

Source: https://feedback.remnote.com/changelog/remnote-1-16-ultimate-spaced-repetition

L-M-Sherlock avatar Apr 29 '24 15:04 L-M-Sherlock

Thanks @L-M-Sherlock, out of curiosity do you have personal experience with FSRS?

ronzulu avatar Apr 29 '24 23:04 ronzulu

Of course. And I'm the author of FSRS.

L-M-Sherlock avatar Apr 30 '24 01:04 L-M-Sherlock

It would be great if we implement it so it is possible to switch between different algorithms

4Source avatar May 27 '24 13:05 4Source

It would be great if we implement it so it is possible to switch between different algorithms

Probably a necessity. I think that once we implement FSRS, the algorithm would still default to the current one, and that users would need to explicitly select FSRS.

I haven't looked at it for a few months, but @Newdea's project https://github.com/open-spaced-repetition/obsidian-spaced-repetition-recall could give us some ideas about this.

Because of the greater data requirements of FSRS, @Newdea doesn't support that algorithm with data stored in the markdown file itself (see earlier in this thread).

ronzulu avatar May 28 '24 01:05 ronzulu

Hi all

I have completed the design changes that were required before being able to implement the enhancement requested here.

Those changes are available for beta testing at https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/1006. If you are able to do any testing, that would be appreciated. It would assist on the path of getting a more robust plugin with this feature implemented.

Thanks Ronny

ronzulu avatar Jun 26 '24 01:06 ronzulu