Language Learning in Tinderbox

(Roy S. Askins) #1


I’m looking for any best practice suggestions for building a spaced repetition system for learning Mandarin Chinese. I’ve already seen the Space Repetition System post here: Spaced Repetition Learning in Tinderbox? However, I’m not sure it covers the breadth of what I need.

Here’s what I need:

  • A system that will recall notes at certain intervals of time. At this point, I’m looking at 10 minutes, 1 day, 4 days, 10 days, 1 month, 4 months, on up to 2-year intervals. On any given day, I might need to review cards from each of these intervals as well as create new cards.
  • A system that allows me to display different content in the display expressions.
  • A system that works with up 10K notes (this is Chinese after all)

I’ve tried a couple of different ways, none of which have worked really well. It seems as though the general advice is to have multiple agents collecting the information with other agents (or rules) watching those agents. But, I haven’t been able to work up anything successful at this point.

I’m new to Tinderbox and have very little (read, basically none) experience coding. I would appreciate any suggestions y’all might have.


(Paul Walters) #2

You are correct – the system could be done with a series of agents (e.g., a agent that selects notes that are 10 minutes past a baseline date and time; another agent for an hour, etc.).

Since you have made some attempts in this direction, it might be helpful if you could post a small Tinderbox document of your own that you don’t believe is successful. Perhaps the community could point out adjustments that would be helpful for you.

(Roy S. Askins) #3

Since I’m a new user, it doesn’t appear that I can upload files.

I think I’ve found a solution that works through a series of agents that change the $DueDate attribute and a $RevewInterval attribute that moves it to the next agent. Then another agent displays all the notes with a $DueDate>=today.

I think it’s working. Once I have permission to upload files, I’ll upload a sample. Thank you for responding.

(Andreas Grimm) #4

(eastgate) #5

I’ve relaxed the new user restriction on this. In any case, the threshold for graduating from “new user” status is spending about 10 minutes reading forum posts…

(George Wyner) #6

Just to throw out another approach. I use spaced repetition for learning student names. I have used an app called Flashcards Deluxe for this purpose ( Now that I am putting student data into Tinderbox, I created an export that creates a txt file with all the data suitable for loading into the Flashcards Deluxe app and then use the app for the learning. Advantage for me is the app lives on my mobile devices which is ideal for my learning. Just another option. That said, intrigued that others have done this within TB and now curious to explore that.

(Rene Trappel) #7

This one might be best done outside of Tinderbox, especially if you have little to none experience in coding. My personal favorites for doing this include Wenlin and Pleco. For a student of Chinese (it never ends) especially Pleco is a godsend. Read Chinese .epub, add terms to your vocabulary list and then start learning 成语 'till you drop :smirk:

Edit: If you are a beginner you might want to have a look at the Outlier Essentials Dictionary in Pleco (it’s an add on).

(Roy S. Askins) #8

@laotang and @geowyn Thank you for the recommendation. I am also considering a dedicated app. However, because I recently purchased Tinderbox and am trying to learn how to use it, I wanted to try it in Tinderbox.

@eastgate Thank you much! I have spent well over 10 minutes reading forums; I just created an account though. I’m planning to spend more time in the future.

@PaulWalters Here’s the current version based on agents that update the DueDate. I still need to create an Agent that watches the DueDates, but you’ll get the gist of it. It also needs to be cleaned up a bit, and I need to change my display expressions so that it’s not displaying the name but an image I will add to the note. But, I’m making progress slowly. Let me know if you have any suggestions. Chinese v 1.1 .tbx (163.6 KB)

AND, a huge thanks for the help so far.

(Paul Walters) #9

@RoyA very nice work so far. :clap::clap:

Your agents successfully move notes forward to a new (longer duration) interval when the review is “correct” – but do you plan to add logic to the agent actions to move notes backward to a shorter duration interval when the review is “incorrect”?

It occurs to me that an Attribute Browser view might be useful when reviewing notes, since Attribute Browser can be used to group your notes according to the $ReviewInterval – e.g.,

This might be more efficient for study sessions than navigating around a series of agents containers.

I’m not sure that $DisplayExpression can include images – I know that images cannot be pasted into $Name. If that doesn’t work, you could use badges.

(Mark Anderson) #10

Whilst I’ve not seen anything expressly saying you can’t put an image in a Display Expression, I think it highly unlikely that it is possible. I say this given the history of the app and that feature. If you are going to view the flash cards in the Text page, I’d put the image in the note’s $Text. If you plan to look at map view icons, consider a custom fill as an alternative to a badge.

(Paul Walters) #11

And images in $Text appear on notes in Maps.

(Mark Anderson) #12

Good point, I’d forgotten that now held true.

(Roy S. Askins) #13

Thank you.

I forgot to add the incorrect logic. I’m going to use the Leitner system which simply returns any incorrect card to the very beginning. So, I’ll add something like if($Incorrect=true){$ReviewInterval=10:00}; to the prototype of the card. I’ll also need to add an OnAdd action to the 10:00 Agent to reset the Incorrect boolean.

Thank you for the suggestion with the Attribute Browser.

(Roy S. Askins) #14

@mwra and @PaulWalters:

I haven’t had a chance to play with the images yet, but when I do, I’ll give your suggestions a shot. I’ll post an update once I get it working.

Thank you for the help.