Closed PiotrSss closed 4 years ago
yeah, I always intended to add reset at some point :p Initial version is more of poc :). Didn't have -1 in mind, but I imagine we can have that too, though maybe with no shortcut assigned by default?
I assume we all agree that shortcuts should be configurable by the user.
Yep, that's fairly easy with webextensions
For configurability - I envision we can give users ability to enter their regex(as long as it contains number group) + output format
https://gist.github.com/andymatuschak/35be2a2041eda6773347a61ce75cb641 extracting cloze from markdown
also from #3
For srs I have been wondering - we can actually implement the proper SuperMemo algorithm and not just lietner box kind of system. Would it make sense to do so?
https://apps.ankiweb.net/docs/manual.html#what-spaced-repetition-algorithm-does-anki-use a basic implementation of the Anki one should be straightforward
I don't think the algorithm itself is hard, but I'm curious about how you see the UX? I guess you need to keep some metadata for each question (current ease, next scheduled day etc) - either in the plugin, or in Roam.
yeah, I was pondering on that in Slack:
the main issue would be finding a good way to encode the ease and interval nicely. Easiest to implement is doing it inline. kind of ugly though making them properties feels natural, but less straightforward to implement with current tools
I guess something to experiment with. I would not want to store metadata in the plugin - would prefer to have it encoded directly in the items.
Though having it in plugin would allow for more sophistication in scheduling/etc if we want to go there
Leitner system is nice for Roam, as it'd prevent you from loosing
cards even if you haven't reviewed them on time. I think interval can play a similar role for SM-2 maybe?
Having data stored in plugin is not that great, people might want to use multiple devices and/or browsers. Also ability to install webextensions in mobile Firefox is not that far away, AFAIK, if that could work there, it would be awesome, people love to use SRS on mobile. In powerpack for DL I used SM-2 and stored that in special document created only for that purpose, but here we can't and personally I don't want to have mess in my notes, so I vote either for Leitner or waiting for more API options.
https://github.com/gmcmanus/anki-roam-import defines a syntax for cloze.
which we can simulate with
- :hiccup [:style "span.cloze { background-color: #1f2b33; } span.cloze:hover {background-color: white}"]
- Outer message {{embed: ((oR_QCTewE))}} that continues after cloze block
- :hiccup [:span.cloze "cloze block" ]
example here: https://twitter.com/VladyslavSitalo/status/1231709055560736769
There is another scheduling algo, described here https://github.com/fasiha/ebisu with version for JS https://github.com/fasiha/ebisu.js I found that by accident, don't have time to read all and don't know if it could be used in roam-toolkit, but you might be interested
Thanks @panpiotrs !
Just skimming through https://github.com/fasiha/ebisu/blob/gh-pages/EbisuHowto.ipynb it seems to require a global "database" view, which is complicated, at least until we can do datalog queries
or maybe not? https://fasiha.github.io/ebisu.js/ seems to work with just 3 numbers, which seems doable to locally encode. Would dig in deeper in a bit :)
Ok, so on looking at it closer just 3 local values seem to be enough. And it has a variety of interesting properties. I'd be curious to compare it with my simple sm2 implementation in the srs_sm2 branch.
Hey, is it possible to have the sm2 data be stored in a non [[]] format? It's a bit of a pain on the graph overview to see the tags displayed.
@Jaydon-chai create a new issue for it? Graph view hasn't been useful for me for a long time, so I kind of haven't considered this one. I'd still definetely want the interval
and factor
being pages, but the specific number versions didn't end up being useful..
Closing this as it's better to have specific issues
Hey, and thanks for your hard work!
Can you please consider implementing Ebisu algorithm again? At least giving the user the choice to use it.
The majority of Spaced Repetition programs implement the SM-2 algorithm, and there isn't a public-ready application that implements Ebisu yet. I think implementing it, at least for me will be an attractive point. The author of Ebisu is also active on Github and kindly responses to any doubs and questions.
Thanks! @Stvad
What can we do with this feature to make it more configurable?
Bucket names
Should users be able to decide what name they use for their buckets/boxes pages? [[Bucket 1]] vs #[[Bucket 1]] vs #box1 vs ...
Shortcuts
The idea behind the SRS is that you go forward, but you need to go back too if you couldn't answer. Should it be available by shortcut too? If yes, -1 or reset to first box, or both options? (personally I sometimes change to prev box, sometimes reset to first, depends of how important it is, how I feel about my answer, etc.) I assume we all agree that shortcuts should be configurable by the user.
Reviews
Should there be some indication (red icon in top right?) that you have things to review? Or leave it for the user to track that via their daily notes? Some additional layer/modal to review, similar to https://www.remnote.io/queue ?