Hacker News new | ask | show | jobs
by dllthomas 313 days ago
I ran into a question a while ago that I couldn't find a good answer to, and while it's not exactly on topic this seems like a good place to ask it.

I was working in a detail rich context, where there were a lot of items, about which there were a lot of facts that mostly didn't change but only mostly. Getting a snapshot of these details into approximately everyone's head seemed like a job for spaced repetition, and I considered making a shared Anki deck for the company.

What wasn't clear was how to handle those updates. Just changing the deck in place feels wrong, for those who have been using it - they're remembering right, the cards have changed.

Deprecating cards that are no longer accurate but which don't have replacement information was a related question. It might be worth informing people who have been studying that card that it's wrong now, but there's no reason to surface the deprecation to a person who has never seen the card.

Is there an obvious way to use standard SRS features for this? A less obvious way? A system that provides less standard features? Is this an opportunity for a useful feature for a new or existing system? Or is this actually not an issue for some reason I've missed?

3 comments

For what you describe, he ideal system would do this:

1. Identify knowledge blocks that you want people to learn. This is what would be tracked with the SRS.

2. Create cards, with a prompt which requires knowledge blocks to answer. Have the answers in this system feed back knowledge to the SRS.

3. When one of the knowledge blocks changes, take the previous knowledge familiarity and count that against the user.

So for example, at some point a card might be "Q. What effect will eating eggs have on blood cholesterol? A. Raise it." That would be broken down into two knowledge blocks: "Cholesterol content of eggs" and "Effect of dietary cholesterol on blood cholesterol".

At some point you might change that card to "Q. What effect will eating eggs have on blood cholesterol? A. None, dietary cholesterol typically doesn't affect blood cholesterol." (Or maybe we're back again on that one.)

The knowledge blocks would be the same, but you'd have to take the existing time studied on the "Effect of dietary cholesterol on blood cholesterol" and mark it against recall rather than towards recall. Someone who'd never studied it would be expected to learn it at a certain pace; but someone who'd studied the old value would be expected to have a harder time -- to have to unlearn the old value.

I think you could probably hack the inputs to the existing FSRS algorithm to simulate that effect -- either by raising the difficulty, or by adding negative views or inputs. But ideally you'd take a trace of people whose knowledge blocks had changed, and account for unlearning specifically.

You could have a company-provided Anki account for each user where you add and remove cards just for that user. (I thought you might even be able to use your own server, but that doesn't seem to be an option for the iOS app: https://ankicommunity.github.io/Tutorials/anki_custom_sync_s... )

Then placing a "this has changed" notification card at the front of the new queue only for people who learned the old information is as simple as checking the corresponding card's review status in the database.

This specific problem gave us lots of headache while building https://rember.com We don't have a good solution yet. My hope is that something like content-aware memory models solve the problem at a lower level, so we don't have to worry about it at the product level.