crelder / zettelkasten Public
Home
Zettelkasten
The following project proposes a personal knowledge management system that is robust, cheap, yet powerful and built to last a lifetime.
Read the following instructions to get an idea on how and why this personal knowledge management system works. If you are convinced you can download the little support programs and a working example here.
Problem Statement
The project tries to solve the question „What to do with a good thought?“. So that I, as the user, can
- rediscover a thought, which I know exists in my personal knowledge management system and
- discover relevant thoughts, which I do not know they exist in my personal knowledge management system
Proposed Solution
One folder on your computer („/zettelkasten“) holds all your thoughts in form of a scan of a DIN A6 „zettel“ (in German this means „slip of paper“; there the name zettelkasten comes from - "kasten" in German means "box"). These scans have the png-file format. It is a worldwide standard for pictures.

The filename of every scanned "zettel" contains all the metadata of that thought. Example filenames are
- 170105a - Entrepreneurship research, Small and medium sized companies, New ventures - Bögenhold2016.png
- 170115r - Economic growth, Wealth, Social conflicts - 170128h.png“
- 170806a - Penrose-Stairs, Shepard-Scale - Movie Dunkirk - 170512f.png
The name has always the following format:
[zettel_ID] - [Keywords] - [Source] - [Links to other zettel].
Mandatory information:
-
[zettel_ID]
- Format: Date + one small letter (e.g., date 11.06.2017 in format YYMMDD plus letter "d" becomes ID 170611d).
- Use: That way your thoughts will appear chronologically in the zettelkasten folder (see picture above) and you can easily search relevant thoughts by a certain date. E.g. "What was the thought again I had during my vacation in June 2017" or "What where my thoughts during my internship in Summer 2016?".
-
[Keywords]
- Format: Keywords, separated by commas (e.g., "... - Entropie, Markoszustand, Mikrozustand - ...")
- Use: Find all relevant thoughts regarding a certain topic. E.g. "What are my thoughts in the zettelkasten about the topic 'Entropy'?".
Optional information:
-
[Source]
- Format: For Books and articles: Author's last name, year and page (e.g., „... - Welter2011 172 - ...“).
- Use: Via the source field, you can rediscover a thought. E.g. „What were the thoughts that I had reading the book of Welter 2011? I want a summary.“
- Format: For other mediums than books and articles: a simple explanation of the "source". E.g. „... - Conversation Alex 2017- ...“, „... - Movie Dunkirk - ...“.
- Use: Via the source field, you can rediscover a thought. E.g., „Alex told me something interesting this year...“, „In the movie Dunkirk was something interesting I thought about. What was it again?“
-
[Links to other zettel]
- Format: While writing a thought on a zettel, if you think of another thought/zettel in your zettelkasten, you can add its zettelnumber at the end as a link (e.g. " ... - 170415e, 170501a“).
-
Use: The python program
link_overview.pygives you an overview on all the links. E.g. "This thought about complexity (ID 170812a) is interesting. What are relevant thoughts connected to it?
Of course, as with all the programs you do not necessarily need this program; you can also follow the links manually in the folder.
Consciously chosen limits in this approach:
- You decide to use only one language for the filenames.
- You decide to use only one photo file format for the filenames (here it is ".png").
- Only scans of handwritten zettel enter your zettelkasten (no e.g. text-files, ".txt").
Solution requirements
After having presented the solution, an explanation follows now on why the above-described solution looks like this and why it is designed to fulfill the following requirements.
It is quite some work to insert own thoughts into a personal knowledge management system. If I am not convinced that my thoughts are well protected, or are not accessible after a certain time, I will not insert own thoughts in the first place into the system. This is because I am not willing to invest time to write thoughts into a system, where I cannot still benefit from my work after a certain time.
From this central observation the following requirements for a potential solution derive.
-
Robustness: The system should not easily break down. Moreover, if it does, you as the user should be able to completely recover its state. The system must also work without the need for maintenance (updates, etc.), therefore being easy to maintain.
-
Build to last a lifetime: The system must still work in e.g. 30 years or during your whole lifetime. This is the reason why you should not use special software for your personal knowledge management, because it always bears the threat of a "look in" of your thoughts into a certain system. Who will guarantee you, that you can still use the software in 15 years? Even if you could export your thoughts, you might not be able to work with your thoughts again. The reason could be, that the data is unstructured or messed up (software companies usually, when going bankruptcy or discontinue a product, are not very dedicated to transfering users data to another software solution, because in that state they have other sorrows - they do so only if legal requirements force them to do so.)
-
Immediate use: You should not have to enter content in the system for e.g. one year, until a useful experience is promised. The system should immediately generate an useful output and therefore experiences of genuine use (e.g. after having added e.g. 5 thoughts or having used it for 3 days). This constant feedback of use of the system keeps you motivated to continuously input data.
-
Good input: The quality of outcome of a system depends on the quality of input. A system must be designed in a way so that no „bad“ input enters the system. No matter how good the system is, if you enter bad input, the system will have bad output (independent from the systems‘ quality: f(shit) = shit). What is meant by "bad input" are thoughts that are not your own thoughts and are merely a "copy-paste" of what someone else said or wrote. "Good input" are thoughts (even of someone else) which I am able to write down in consistent prose text using my own words and optionally enriching it with sketches, arrows, etc. See also this explanation on how to read.
How you enter thoughts
-
Write your thought on a piece of paper and add the metadata at the top. Use e.g. consistently DIN A6 paper slips (in German "zettel"). If you go to a copy shop, they sometimes can cut a 500 pack of DIN A4 copy paper twice. You then have 2000 zettel in DIN A6 format. Niklas Luhmann used this file format in his zettelkasten as well (see "Johannes Schmidt: Der Zettelkasten als Zweitgedächtnis Niklas Luhmanns" under the section "Inspiration").

-
If you have written a few zettel, scan them using e.g. the free document scanner in the dropbox app. The new scans are then synchronized to your computer, copy-paste them into the preparation directory called „zettel“.



- Here you name all the filenames in the above described format by looking at the metadata you wrote on the zettel. You select the letter of the ID you select by looking in the folders "/zettelkasten" and "/zettel". Check if an ID with letter "a" already exists: if no, check again with letter "b" and so forth; if yes, assign the letter to get a unique ID (e.g. 170216a). You can also assign letters automatically by executing the program
buildIDs.py, which does the same as described above and saves you some monotonous work.
- Zettel that have the correct file format are then moved in the folder „zettelkasten“. This folder only increases in size. It never decreases, because you never delete a thought. If you want to correct or change something on a zettel, you write a new thought on a new zettel and link this zettel to the previous zettel. Another possibility is to look for the original betel in the wooden box, change something on it and scan it again. Handwritten zettel are kept in a wooden box ordered by date.
Maintenance and advanced use
-
Synchronize your folder "/zettelkasten" e.g. with dropbox or owncloud to have a remote backup or synchronize it to your other devices like tablet, phone or other computers.
-
Every few months you can generate a metadata list which you print out (use the program
backup.py). If your computer breaks down, you can always completely recover your zettelkasten by using this list and the zettel in your wooden box (as the ultimate backup solution). -
The more zettel are linked between each other, the higher the use of the zettelkasten. You can also mark all zettel in the link section that have not any link yet with e.g. "999". Every few months you can search for "999" to go thought all zettel without a link to see if you have added a relevant thought in the meanwhile you can link to.
-
Every once in a while you can check if your zettelkasten is "healthy", meaning if all IDs are unique, if all links point to an existing ID and if all IDs have the correct format. You can do this manually or use the program
checkZettelkasten.py.
Limits of the Zettelkasten
If you have to deliver a specific project with a deadline (e.g. thesis, dissertation, book, essay) then it is maybe better to fill a file directly with your thoughts (instead of filling the zettelkasten first and then extracting relevant thoughts out of it).
Source of inspiration
The Zettelkasten is inspired by Niklas Luhmann's zettelkasten:
- Einblicke in das System der Zettel - Geheimnis um Niklas Luhmanns Zettelkasten
- Johannes Schmidt: Der Zettelkasten als Zweitgedächtnis Niklas Luhmanns, 30. April 2016, Kunstverein Hannover
- Zeitungsartikel in der Welt (2015)
- Niklas Luhmanns describes his zettelkasten
- Niklas Luhmann. Lesen Lernen. In: Short Cuts, S. 150. Verlag Zweitausendeins. ISBN 3-86150-340-9.
- Niklas Luhmann's Zettelkasten partially digitalized