What’s the most important thing for storing knowledge?

I’d say proper organization of said knowledge, such as with decks for each subject and meaningful tags linking related concepts together across decks, making it easily searchable and accessible.

As I started adding more and more notes into gnosis, I found myself wanting to adjust the review algorithm not only for decks but for tags as well. This led me to overhaul the underlying architecture and reimplement key concepts.

Key Changes Made

  • Redesigned gnosis-dashboard with a home-page-like buffer displaying current activity stats such as review streak and today’s due notes. gnosis dashboard home
  • Rewritten gnosis algorithm:
    • Added gnosis-score, the current knowledge score for a note.
    • Added epignosis value, that indicates the knowledge accuracy for a given note, as well as agnoia to indicate the lack of knowledge for a note, those values will be used in anagnosis events. The “indication” is the translation of those words from greek.
    • Added special review events; Anagnosis & Lethe
      • Anagnosis refers to the recognition & understanding of a context, anagnosis events are triggered by either consecutive failed or successful recalls. Depending on how it’s triggered, epignosis or agnoia will be applied to gnosis-score
      • Lethe refers to the forgetting of knowledge, it’s triggered by consecutive failures to recall an answer, upon this event the next interval is set to 0
    • Added amnesia, upon failing to recall a note, amnesia value is used to determine the next interval.
    • Added proto, a list that consist of integers, indicating the value for the first intervals. Proto list does not have a limit on length.
  • Re-implement the configuration for the above deck values, and added the ability to do the same for tags. Tag configuration takes priority over deck configuration.

Example:

(setq gnosis-custom-values
  '((:deck "demo" (:proto (0 1 3) :anagnosis 3 :epignosis 0.5 :agnoia 0.3 :amnesia 0.5 :lethe 3))
    (:tag "demo-concept" (:proto (1 2) :anagnosis 3 :amnesia 0.7))))

A note under the deck demo tagged with demo-concept will have the demo deck values with the exception of:

  • proto value set to (1 2)
  • amnesia value set to 0.7

For notes that have multiple tags, the maximum value is retained for most parameters. However, anagnosis and lethe will retain the minimum value.

Next features on the horizon

  • Org mode integration
  • Deck export & import