LangQuiz: AI and Spaced Repetition for Language Mastery in Tana.

Even though I haven’t shared much lately, I’ve been very busy creating new workspaces and AI systems for my upcoming workshops and templates. During this time, I’ve also been tweaking and testing various things for some customer projects. One example is the LangQuiz template I developed for a client using Tana.

There are some amazing videos and articles that provide insights on language learning and spaced repetition in Tana. However, I felt the need to share this template because I believe it presents a unique blend of command combinations and day node utilization. More importantly, it can significantly enhance your understanding of the node filter and how to effectively employ it for running conditional commands.

I had to test many times to make sure that the new nodes I created didn’t repeat phrases I’d already put in the graph. But once I got the prompt right, setting up a system to repeat unprocessed phrases (like those I know well every 5 days, and ones I’m still learning every day) was as simple as setting up a “insert relative date” system command.

The template includes five commands, a supertag, and a daily dashboard node for your day supertag. Once you incorporate the dashboard into your day supertag, the work flows very smoothly.

In the Italian Phrases search node, you will find unprocessed nodes with today’s date (utilizing the FOR RELATIVE DATE search operator). To create new phrases for the day, simply click on the provided command. Each execution generates five phrases.

When you expand an #italian node, it will have two fields. After you fill in the translation, a ‘Check’ command shows up. This command looks at your translation and gives you an emoji result. Depending on your result, the date changes—right now it’s set to five days for correct answers, and one day for mistakes. I also added a ‘Process’ command that lets you remove a node from the repetition but keeps it saved in an archive (better than checkboxes IMHO).

The main command you’ll use is called ‘Italian Bot’.

Nothing too complicated here—a simple, tried-and-tested prompt gives us what we want and checks against already used Italian phrases to prevent repetition. New phrases are added as sub-nodes and I’m using GPT-4 for this. The prompt asks for new phrases to start with “Phrase:” to make it easier to run “run commands on all children”.

Here I use the node filter system node to run Add Tags only on Tana nodes starting with “Phrase:” to add the #italian tag.

Next, we need a command on the #italian supertag that reviews the translation and gives back an emoji result. This command should only show up when a translation is entered, and it should disappear once we get the result. I use the node filter to set up this order of actions.

The following two commands depend on whether the answer is correct (✅) or incorrect (❌). Both of these commands have a node filter that only activates based on the given answer. I find the system of repeating the correct answers after 5 days and the incorrect ones after 1 day works for my use case, but you can change the “Relative date string” in both ‘Postpone’ commands according to what suits you best.

Now, with the ‘Italian Hub’ included in your Tana daily supertag, you can easily review phrases that are due for study on that day, and even create new ones if you want. After you create new nodes with the command, they are conveniently moved to the library, as you will find them in the Italian Phrases search node of the Italian Hub.

A challenge was that when Tana AI checks the answer, the date changes and the node disappears from the search node. So in “Check”, I added a “Notify” command with just a “Show Alert” system node displaying the Result prompt – this way you can still see the result in a notification.

One last useful command was Clean, which appears after a wrong answer. It lets you quickly clear the node and restart when it repeats, by setting Translation and Result to null.

Install the template and let me know what you think. It is important to note that while GPT3.5 returns satisfactory results, GPT4 offers superior performance. Considering the specific use case, I recommend continuing to use this model as it delivers prompt and cost-effective outcomes.

Tips for quickly switching from Italian to another language.

  1. Edit the Italian Bot “Ask AI” Prompt field.
  2. Rename the Tana supertag in the Italian Bot “run commands on all children” command.
  3. Edit the Check “Ask AI” Prompt field.