Emacs Zettelkasten

Über den Versuch Luhmanns Zettelkastensystem mit Vim oder Emacs nachzubauen.
Figur neben dem Straßburger Münster

Zusammenfassung

  • Luhmanns berühmter Zettelkasten ist seit Anfang des Jahres online.
  • Seine Zettelei lässt sich mit Emacs und Org-Brain digital implementieren
  • In der Praxis nehme ich nun aber Zetteldeft
  • Ein Zettelkasten, ob analog oder digital, nimmt uns nicht das Denken ab.

Letztens bekam ich eine Textnachricht von einem Freund. Wir hatten uns längere Zeit nicht gesprochen und so fragte er mich etwas unvermittelt: »Hast du Luhmanns Nummernsystematik verstanden?« Er kam gerade aus einem Vortrag auf einem Barcamp, auf dem unter anderem das Online-Archiv von Luhmanns Zettelkasten erwähnt wurde. Die Nummerierung der Zettel erwähnte der Referent nur am Rande, sodass ihre Systematik nicht erklärt wurde.

Ich hatte zwar von Luhmanns berühmtem Zettelkasten schon gehört, da ich aber mit seiner Universaltheorie zur Beschreibung des Lebens, des Universums und des ganzen Rests nie etwas anfangen konnte, hatte ich auch niemals das Bedürfnis verspürt, mich mit seinem Zettelkasten zu beschäftigen, obwohl dieser bekanntlich für ihn all seine Bücher geschrieben hatte.

Tags darauf telefonierten wir miteinander und diskutierten Luhmanns Methode zur Wissensarchivierung. Wir stützten uns dabei vor allem auf einen Vortrag von Johannes Schmidt, in dem er Luhmanns Arbeitsweise und seinen Zettelkasten vorstellte. Wir zogen schließlich das Fazit, dass seine Methode extrem zeitaufwändig sei und sich damit nur für Menschen eigne, die im zeitlosen Elfenbeinturm wohnen und sich den ganzen Tag mit ihrem Zettelkasten beschäftigen können.

Der Floh im Ohr

Aber der Floh war ins Ohr gesetzt. Mich ließ das Thema nicht mehr los. Als Schriftsteller und Essayist suche ich seit Jahrzehnten vergeblich nach einer Methode, das Material, mit dem ich arbeite, sinnvoll zu ordnen. In den 80er Jahren habe ich es ohne Erfolg mit einem Zettelkasten versucht. Seitdem nutze ich nur noch Notizhefte, in denen ich seriell Gedanken und Exzerpte niederschreibe.

Die Notizen erfasse ich mittlerweile alle digital in einfachen Textdateien. Nachdem ich vor einigen Monaten Vimwiki entdeckt habe, nutze ich Vim zur Erfassung. Die Wiki-Methode hat jedoch einen großen Nachteil, da sie einen zwingt, Wissen nach Schlagwörtern oder Überschriften zu ordnen. Das führt unweigerlich zu einer Kategorisierung, die niemals wirklich passt und auch nie produktiv wird.

Luhmanns Zettelkasten, und das ist das Besondere, ist nicht nach Schlagworten sortiert. Luhmann erfasste beispielsweise keine Exzerpte im Zettelkasten. Er hat diese vielmehr nach der Lektüre eines Buches verzettelt, indem er seine Gedanken zu der Lektüre einzeln auf Zetteln niederschrieb. Grob gesagt, enthält also ein Zettel einen Gedanken oder einen kurzen Gedankengang. Der Bezug zur ursprünglichen Lektüre wird zwar vermerkt, ist aber für die Einsortierung des Zettels kein Kriterium. Luhmann sortierte einen Zettel hinter den Zettel, an den er sich inhaltlich anschloss. Wenn man von der Formel ein Gedanke ein Zettel ausgeht, wird also ein Gedanke an den Gedanken angeschlossen, aus dem er hervorging.

Diese Gedankenreihung schlägt sich nun auch im Prinzip der Nummerierung nieder. Die Zettel bekommen fortlaufende Nummern (1,2,3,4,5…); es entsteht eine Gedankenreihe. Da aber ein Gedanke zu mehr als einem Folgegedanken führt, musste Luhmann Verzweigungen einbauen (1,2,2a,2b,3,4,5…). Zwischen die Zettel 2 und 3, die ursprünglich einmal aufeinander folgten, konnten sich so mit der Zeit viele andere Zettel schieben. Luhmanns Zettelkasten inkrementierte nach innen.

Digitale Zettelkästen

Da mich die Sache zu interessieren begann, recherchierte ich ein wenig im Internet und fand einige Versuche, die Luhmann’sche Zettelei digital zu implementieren. Das Programm, das in diesem Zusammenhang immer wieder auftaucht, ist der in Java implementierte Zettelkasten von Dr. Daniel Lüdecke. Die Webseiten von Dr. Lüdecke enthalten übrigens einige interessante Blogbeiträge zum Thema der Wissensorganisation.

Da ich mich aber nur ungern an ein Spezialprogramm binde, noch dazu wenn es in Java geschrieben ist, begann ich nach Möglichkeiten Ausschau zu halten, Luhmanns Zettelkasten mit Hilfe eines einfachen Texteditors nachzubilden. Da ich Texteditoren gegenüber ein promiskuitives Verhältnis habe, kommen neben Vim einige andere Texteditoren für diese Aufgabe in Betracht. So bietet Emacs mit Org-Mode und Org-Brain eine sehr mächtige Kombination an Tools zur Erstellung von Mindmaps und Wikis. Org-Brain stellt die Beziehungen zwischen den Zetteln (Dateien) über Hash-Referenzen her, die in den jeweiligen Dateien gespeichert werden. Org-Brain kann so Parent-, Child-, Sibling- und Friend-Verknüpfungen darstellen, mit denen im Grunde alle Referenzierungen Luhmanns nachgebildet werden können. Da diese Referenzierungen aber nur mit Org-Brain auflösbar sind, ist der Zettelkasten nicht portierbar.

Luhmann-Nummerierung 2.0 – ein Misserfolg

Luhmann hat die Aufeinanderfolge der Zettel sehr einfach gelöst, nämlich durch die Aufeinanderfolge der physischen Zettel im Holzkasten. Die Nummerierung ist nur notwendig, um von anderswo auf den Zettel zu referenzieren und um die Inkrementierung sichtbar zu machen.

Ich entschloss mich, Luhmanns Nummerierung, in der Zahlen und Buchstaben einander ablösen, durch ein Nummerierungsschema zu ersetzen, das wir von Versionsnummern her kennen. Zettel mit einer fortlaufenden Nummerierung folgen aufeinander: 2.0, 2.1, 2.2, 2.3., 2.4, 2.5 … Ein eingeschobener Gedanke bekommt eine inkrementierte Nummer: 2.0, 2.1, 2.2, 2.2.0, 2.2.1, 2.3, 2.4, 2.5 … Wenn man diese Nummerierung als Grundlage für die Dateinamen macht, erübrigt sich die Notwendigkeit eine eindeutige Kennzeichnung auf andere Weise zu implementieren. Dateien nach diesem Nummernschema heißen einfach 2.0.md, 2.1.md, 2.2.md, 2.2.0.md, 2.2.1.md, 2.3.md, 2.4.md, 2.5.md usw. und folgen damit bereits im Dateimanager aufeinander. Leider funktioniert das aber nicht, denn sobald die Nummern zweistellig werden, kommt das Betriebssystem durcheinander. Das Problem wäre, soweit ich sehe, nur zu lösen, wenn man ein festes und damit endliches Nummerierungssystem festlegt, bei dem die Zahl der Verzweigungen und die Zahl der Inkrementierungen von Anfang an limitiert sind. Ein möglicher Zahlenraum ginge dabei zum Beispiel von 00.00.00 bis 99.99.99., was nicht praktikabel ist.

Python-Skript und Textadept-Implementierung

Ich schaute mich also nach weiteren Lösungen um. Das Python-Skript Zettels liest Metadaten aus Markdown-Dateien aus und bildet daraus Zettelkasten-Verknüpfungen. Es gibt für den Texteditor Textadept eine Lua-Erweiterung, mit der man das Skript aus dem Editor heraus nutzen kann. Leider bekam ich das Python-Skript nicht zum Laufen. Es wäre eine interessante Lösung gewesen, den YAML-Metadaten-Block von Markdown-Dateien für die Verzettlung zu nutzen, da ich auf diesem Weg den Zettelkasten in meinen Pandoc-Workflow integrieren könnte

Also doch Emacs und Org-Brain

Ich kehrte also schließlich doch zu Org-Brain zurück. Das Tool kann über die üblichen Wiki-Funktionen hinaus diverse Beziehungen zwischen Dateien und Überschriften herstellen. Außerdem ist es möglich, den Zetteln externe Ressourcen wie Links oder PDF-Dateien zuzuordnen. Die Arbeitsweise ist gewöhnungsbedürftig und schwer zu erklären. Der Entwickler stellt Org-Brain in einem Video vor.

Org-Brain kann out-of-the-box den Luhmann’schen Zettelkasten schon recht gut nachbilden. Das Tool ist Teil des Emacs- und Org-Mode-Universums und dürfte damit auch in einigen Jahren noch zur Verfügung stehen.

Was nun folgt, ist die intellektuelle Aufgabe, den Zettelkasten mit Gedanken zu füllen, auf dass er im Sinne Luhmanns zu einem Kommunikationspartner wird. Leider habe ich damit nicht schon vor 30 Jahren begonnen. Denn dann könnte ich das Schreiben dieses Artikels jetzt meinem Zettelkasten überlassen.

Update Sa 28 Sep 2019 18:56:53 CEST

Ich bin von Elias Storms auf seine Entwicklung Zetteldeft aufmerksam gemacht worden. Das Zusatzpaket erweitert die Emacs-Suchmaschine deft zu einem Zettelkastensystem. Zetteldeft generiert Dateinamen, in denen ein Date-Präfix für eine eindeutige ID sorgt. Es gibt die Möglichkeit, Zettel miteinander zu verlinken und über eine Verschlagwortung mit #tags in sinnvoller Weise auffindbar zu machen. Außerdem hat Zetteldeft eine Funktion, mit der man Zettel aufgrund von Suchbegriffen zu einem Gesamtdokument zusammenfügen kann. Die Zusammenbindung hat allerdings nur summarischen Charakter, da es bei Zetteldeft nicht wie bei Org-Brain eine konkrete inhaltlich-logische Aufeinanderfolge der Zettel gibt. Das Tool ist sehr interessant und so stehe ich nun vor der Frage, ob ich meinen Zettelkasten wie geplant mit Org-Brain oder mit Zetteldeft aufbauen soll.

Update Di 08 Okt 2019 09:32:18 CEST

Mittlerweile frage ich mich, ob Luhmanns inkrementelle Sortierung von Zetteln überhaupt mehr als eine bloße Heuristik ist, die auf die physischen Umstände eines Zettelkastens reagiert. Allerdings griff er wohl beim Verzetteln in seinen Zettelkasten hinein und entnahm ein Büschel an Zetteln, die er durchging, um einen neuen Zettel einzufügen. Damit bildet er dauerhafte oder temporäre Gedanken-Cluster. Es entstehen Räume und Orte, an denen Gedanken miteinander reagieren. Diese Verortung von Gedanken kann man durch eine Verschlagwortung in Zetteldeft nachbilden, wobei diese Technik die Gefahr der Beliebigkeit durch Ausuferung mit sich bringt. Das In-Beziehung-Setzen in Org-Brain erscheint mir hier zweckmäßiger zu sein. Beide Methoden können sich natürlich ergänzen, und in der Tat arbeite ich gerade mit einer hybriden Mischung aus Zetteldeft und Org-Brain.

Update Fr 26. Jun 12:58:14 CEST 2020

Zetteldeft hat sich durchgesetzt. Das Tool ist am einfachsten zu benutzen und bringt alle Features mit, die mir im Moment notwendig erscheinen. Einen interessanten Eindruck macht das relativ neue org-roam. Ich werde dieses Projekt auf jeden Fall beobachten.