/z

šŸ¢An incubator for a Zettlekasten Tool

Primary LanguageTeX

An incubator for a Zettlekasten Tool

The ultimate goal is to have an autocomplete for thoughts.

After being introduced to Roam, I had multiple questions. The idea was powerful but I kept bumping into mental hurdles and improvement ideas. This document is my understanding of the Zettlekasten ecosystem. Hope you find it useful.

Introduction

Wiki making software are as old as the internet, but a recently launched tool called Roam Research has infused fresh energy in this domain.

Roam Research uses a web based interface to make tree-shaped notes. Similar to S-Expressions.

It also allows you to make links between notes and paragraphs, similar to Luhmannā€™s Zettelkasten System.

What is Luhmannā€™s Zettlekasten?

Zettlekasten is a German Word for Slip Box. Luhmannā€™s system is an analog technique to link ideas using a special sequence.

What is Roam?

For me, it seems to be a text editor with two special features:

  1. bi-directional links
  2. structured notes in shape of a list (tree/graph) and not free flow text

These added features lead to a personal knowledge graph. A Google for your brain if youā€™d call it.

Roam has a cult like following and was founded by Conor White Sullivan. In a webinar in December 2019, he claimed that Roam was growin at 20% per week.

According to AngelList, Road raised an undisclosed amount of seed funding in January 2020.

Does Zettlekasten make sense?

I take notes, a lot of them and I have tried a ton of products. If I see a notes app, I download it.

Over the years, my goto editors have changed from Google Docs to Google Keep to Markdown to Notion to iCloud Notes. As of now, Iā€™m trying to switch to org-mode, because Emacs is my primary text editor.

The problem with all notes app is that the information exists in silos.

If I wrote something about a meditation on anger today, I might not be able to recall it afte two months, when Iā€™m meditating on anger again.

Most note-taking apps are page based, however, our brain is a graph. Our brain links information but itā€™s hard to link pages in a note taking app (thatā€™s perhaps the reason why we have only one search engine). Linking ideas makes it easy to generate new ones.

I agree to the fact that linking is a trivial operation. But we need to consider the cognitive load of writing markup to link a note.

Note taking is not a process of dumping information, but a process of organising it.

Feynmanā€™s ideas on note taking apply to everyone:

  • Writing gives us clearity
  • Writing helps identify gaps in our knowledge, this leads to things we need to do
  • Writing helps us share and teach, ie, lets us connect with brains of others

Our brain is a graph

But the current writing systems are just digital versions of paper. File names and folder structures impose meaningless heirarchy to concepts.

Analysing how our brain works, I believe that file and folder names donā€™t matter.

Files should be treated like regions of the brain

The prefrontal cortex is responsible for visual processing and the medula oblongata helps with instincts. But neurons in each of these region are connected to others. Similarly files should be treated like regions with connections to other regions. This representation is more true to how our brain operates.

Each file is a collection of neurons

For example, I have a file named learning-emacs.org. This file has information about Emacs and Org Mode. Over time as this knowledge becomes dense, I might want to publish a blog post. This blog post is a new region that refers to this existing region. Over time, a connected graph will emerge.

Lists and sub lists over paragraphs

Lists are like graphs. Paragraphs donā€™t have any structure, this is something Roam gets right. Each list item should record temporal data and properties.

Problems with Zettlekasten Techniques

Conceptual Problems

Discipline

It needs a certain discipline to write notes in a way that they can become nodes in a knowledge graphs. I have seen multiple people saying that, ā€œI write while asking myself the question that in what context would I like to review this note in futureā€.

Do we really need to learn this discipline?

Donā€™t we have mature enough NLP techniques to figure out these links automatically? Similar to what we do with logs, with something light weight like https://github.com/f-prime/fist.

Publishing

Our thinking is non-linear but the process of consumption of information is linear. We learn using articles and tables. We learn by isolating the topic in context, ie. by removing connections.

Just like referring back to previous notes helps build context, publishing and getting feed back yields a new perspective. But Zettlekasten doesnā€™t make a good fit for publishing. Unlike a paper, you need to deal with a graph of interconnected nodes. Where do you start?

Learning Curve

Iā€™ve developed a mental model of paper based writing. Shifting to another mental model will take some effort.

Technical Problems

The pr-org-reitory format

Although org-mode is a plain text format, it cantā€™t be used without emacs. Similarly, even if you are able to export your brain from a tool, you canā€™t really use it. This gives a false sense of openness. And makes a great case for open source.

If your notes are objects in an s3 bucket, Roam is EC2, Just like emacs is EC2 for org. So a lockin is bound to happen.

IO

There is no way to import my existing juice, ie just plain text notes which might not have links

Itā€™s hard if not impossible to take notes on Mobile. Itā€™s a fact that I donā€™t have a computer all the time, thatā€™s probably the reason behind massive popularity of things like Google Keep.

Costs?

I pay next to 0 USD for my current setup. Cost was one of the reasons I stopped using Notion.

Merging Entities

What happens when I decide to rename an entity, or when I make a typo? Will the system notify me? Will the system rename all occurrences.

Open source and free?

This is a tough question. It takes effort to create a software like this, so it should not be free, but I donā€™t want to be locked in.

Security and Privacy

This question is two fold, firstly should I have just one database for my personal and public life, because ideas and people overlap or should I have different databases for each, essentially bringing back the problems related to silos.

And if my life is in a graph, how do I ensure the security and privacy of nodes. Something like GPG will not be feasible because digital Zettlekasten essentially needs access to contents of a note, to make links.

Ideally, there should be a way to mark some nodes as private.

No emoji support

I love Notion Emojis.

Native App

An HN thread discussing Native Apps had a comment that caught my attention. dhhaskin987 said:

With Mooreā€™s law being dead, efficiency is going to get a lot more popular than it has been historically. I think weā€™re going to start seeing an uptick in the popularity of more efficient GUI programs like the ones you describe.

We see new languages like Nim and Crystal with their only value proposition over Python being that theyā€™re more efficient.

Similarly, I predict we will see an uptick in popularity of actually native frameworks such as Qt over Electron for the same reason. We may even start seeing wrapper libraries that make these excellent but complicated frameworks more palatable to the Electron crowd, similar to how compiled languages that look like Python or Ruby are getting bigger.

This made sense to me. Desktop apps have gotten worse and itā€™s considered OK if apps like Slack lag on 16gb MacBook Pros.

A notes app, is a tool, like Vim or Emacs or Photoshop. It has to be responsive. It has to be snappy.

Is Roam a monoply?

No and yes. There are numerous Zettlekasten tools. But Roam seems to be the best in terms of implementation and ease of use. Other significant alternatives are:

ToolWebsiteOpen Source?FormatNotes
Workflowyhttps://workflowy.com/NoPropreitory
TiddlyWikihttps://tiddlywiki.com/YesHTML
Athenshttps://github.com/athensresearch/athensYesDatoms/ Plain text
Neuronhttps://neuron.zettel.page/YesMarkdown
Org Roamhttps://org-roam.readthedocs.io/YesOrg
Zettledefthttps://github.com/EFLS/zetteldeftYesOrg
Dynalisthttps://dynalist.io/No?Exports to html and plain text
Remnotehttps://www.remnote.io/homepage??Built at MIT
Drifthttps://akhater.github.io/drift/YesHTMLA TW extension with neat UX
Obsedianhttps://obsidian.md/?MD
Notational Velocityhttp://notational.net/Yes?This was an inspiration for Deft mode
Logseqhttps://logseq.com/YesMDSyncs to Github, runs in browser

This list is not comprehensive check this resource: https://www.reddit.com/r/Zettelkasten/wiki/softwarecomparison

Curiosity is the devil

  • Is there a Zettle equivalent for photos?

Inspirations

NotesSite
Wow! I like how the pages open on top of each other, also the rich previews are kinda neathttps://notes.andymatuschak.org/
This twitter thread talks about information in contexthttps://twitter.com/andy_matuschak/status/1202663202997170176
Transformational tools for thoughthttps://numinous.productions/ttft/
This person is trying something with pythonhttps://beepb00p.xyz/exobrain/exobrain.html
The term for linking paragraphs is ā€œtransclusionā€https://github.com/whacked/transclusion-minor-mode
Emacs Freexhttps://github.com/gregdetre/emacs-freex
Semantic Syncronyhttps://github.com/synchrony/smsn

Will I build a tool?

Maybe. I want to sit on this idea for a few months and wait for someone to build something. Athens and Org Roam look promising.

In the end, itā€™s just not enought to make a clone. An high quality open source clone of a mature project is a value addition, according to Anand, but if Roam, or Athens or Org Roam end up doing well, Iā€™ll be happy to stick to one of them.

Itā€™s a better idea to draft a protocol to implement Zettlekasten. If multiple developers and companies can adopt a standard protocol, Zettlekasten will become ubiqious.

Note: For Self: <2020-05-10 Sun 21:29> If you do decide to build a tool, check this please https://unifiedjs.com ./

The Z-Protocol

Note: Make this more protocoly The Z-protocol is my attempt to iron out the details of the implementation.

  • I donā€™t want date based notes or journal entries, our brains donā€™t differentiate between time and space
    • The note taking system should also follow this convention
      • One single heirarch segregated by meta data
      • Just like regions of brain constitute a particular function, but indvidual neurons are indistinguishable, all notes should be written down in the same format and the magic should happen in links
    • However, Iā€™d like the note to have a timestamp as meta
    • So a file name like <uuid>.md
      • With the fields: CREATED_AT, TITLE and FILETAGS
  • Org mode is pretty cool, but itā€™s nothing without emacs
    • Consider porting a subset of org to js?

Around the web

DateTitleUrlRef.
<2020-06-09 Tue>How Roam Research analyzes product design and team buildinghttps://news.ycombinator.com/item?id=231178761
<2019-12-19 Thu>Tiago Forte Interviewhttps://www.youtube.com/watch?v=Hw2kJF_kxjE2

Thoughts and feedback chamber

There is a lot of energy around the topic. Hereā€™s my attempt to collect what I consider relevant.

Ref 1.

infogulch

What Iā€™m missing the most from it is self-hosting, large file support, full point-in-time history, and programmatic access. I want it to be self-hosted because I donā€™t want to lose my ā€œsecond brainā€ just because some company couldnā€™t find a viable business model and went belly up 20 years from now. I want large file support so I can put everything in my life in it: pictures, videos, pdfs, web page archive files, source code etc and I donā€™t want to pay uber-$$$ to store huge files in their cloud. And Iā€™d like programmatic access so I can make my own additions. For example, every link/bookmark I add could download the webpage and cache it so I can search its content and so itā€™s not lost when the website changes owners.

gatleon

Iā€™ve been using Roam daily for the last month. What I like about Roam is the markdown, the ease of creating bidirectional links, and the automatic daily notes. The daily notes feature particularly eliminates friction for me. I just start writing. What I donā€™t like about Roam is its slow load time. Also writing does not feel snappy enough - if that makes any sense. I feel a slight delay at times between typing a key and seeing the character on screen. Every time that happens I like Roam a little less. Iā€™ve never experienced that with an app like iaWriter, and as a result, even for all its lack of features, every time I use iaWriter I like it a little more.

I think what Roam is missing for me, besides improving the writing performance, is a weekly email digest somehow summarizing my notes. This could use the bidirectional links and give me a quick overview of what I wrote for the week. That would help improve my memory and be more introspective.

iamben

I wish more of these note taking apps were fully encrypted. I know RR can encrypt parts of notes, but itā€™s not the same.

Itā€™s probably paranoia, but if Iā€™m journaling my life, business ideas, thoughts on contacts - I just want it to be encrypted on my devices before it goes into the cloud. I want each device to sync and decrypt locally.

Ref 2

Patrick Burridge

you cannot create meaningful strides in the furthering of human knowledge building upon a closed source tool written by a single opinionated developer.