Prof. Dr. Detlef Stern

Zettelstore

Anfang März hatte ich von meinen Versuchen zu einem digitalen Zettelkasten berichtet, wie auch von den aktuellen Prototypen. Das war vorher. Mit Beginn der Vorlesungen des Sommersemesters war genug anderes zu tun, Stichwort Online-Lehre. Etwa ab Ende April hatte ich vermutlich die vierte der sieben Phasen der Veränderung überwunden. Zumindest habe ich dann begonnen, in den Pausen zwischen Lehrveranstaltungen an meiner Version eines digitalen Zettelkastens zu programmieren.

Gegen Ende der Vorlesungszeit ist daraus etwas entstanden, das ich selbst produktiv (im doppelten Wortsinne) nutzen kann. Der Software habe ich den Namen „Zettelstore“ gegeben. Es gibt einen Twitter-Account und eine Web-Seite.

Warum „Zettelstore“?

Der Bestandteil „Zettel“ stand für mich immer fest. Prägnant und auch in anderen Sprache sprechbar. Alle mir bekannt Übersetzungen treffen den eigentlichen Sinn entweder ungenügend oder sind zu zeichenreich. Der Begriff „Zettelkasten“ scheint zudem in vielen anderen Sprachen für diesen Kontext üblich zu sein.

„Store“ weist auf die Idee des Zettelstores hin. Dieser soll ein solider Dienst sein, der die Daten (die Zettel) um bestimmte Aspekte anreichert. So, wie es ein guter Händler macht. Der Zettelstore soll einen verlässlichen Zugriff auf die von ihm verwalteten Zettel und der Verknüpfungen gewährleisten. Mehr nicht, aber auch nicht weniger.

Der primäre Zugriff auf den Zettelstore erfolgt über eine Programmierschnittstelle. Externe Software kann diese Schnittstelle nutzen, um z.B. Zettel graphisch ansprechend zu präsentieren oder das Arbeiten mit Zetteln zu erleichtern. Es gibt zwar eine web-basierte Oberfläche. Diese soll eine möglichst ungefilterte Sicht auf die Zettel gewährleisten. Man kann diese Oberfläche zwar zum Arbeiten mit dem Zettelstore nutzen, es gibt aber sicher bessere externe Software, die das eines Tages kann.

Warum diese Entscheidung? Das Wichtigste an einem Zettelkasten, ob digital oder analog, sind seine Zettel. Diese müssen auch noch in Jahrzehnten lesbar sein. Es gibt nur wenig Software, die für diese Zeiträume entwickelt wurden. Das liegt sicher auch am „Fortschritt“, z.B. in der Mensch-Maschine-Kommunikation (aka graphische Oberflächen). Was vor 20 Jahren aktuell war, verursacht bei den meisten Gähnen. Aber probieren Sie einmal Software diesen Alters zu ändern. Das ist kaum noch möglich. Frameworks und Bibliotheken von damals sind entweder vom Markt verschwunden oder wurden inkompatibel geändert. Daher beschränkt sich der Zettelstore auf Elemente, die es mutmaßlich auch in Jahrzehnten noch geben mag.

Dies gilt auch für den Zettelstore selbst. Wer sagt denn, dass es in Jahrzehnten überhaupt noch einen Übersetzer für die Programmiersprache Go gibt? Deshalb beschränkt sich der Zettelstore auf gut portierbaren Programmcode. Das reicht nicht. Die eigentliche Grundlage zur Langlebigkeit der Zettel besteht im verwendeten Daten- und Dateiformat. Darüber werde ich in Zukunft berichten.

Der Zettelstore erlaubt es, auf die von ihm verwalteten Zettel nebenläufig mit anderer Software zuzugreifen. Das kann z.B. der eigene Lieblingseditor sein, oder einige allgemeine Programme, die bei jedem gut ausgestatteten Betriebssystem mitgeliefert werden / leicht nachzuinstallieren sind.

All dies funktioniert seit der ersten Veröffentlichung im August. Der Quelltext für den Zettelstore ist inzwischen online. Dies gilt auch für das im entstehen befindliche Handbuch. Dieses ist natürlich selbst eine Sammlung von Zetteln, einsehbar unter https://zettelstore.de/manual/. Ebenso ist klar, dass unter dieser URL die jeweils freigegebenen Version des Zettelstore läuft, allerdings im Nurlesemodus. Wer sich einen ersten Eindruck verschaffen möchte, kann dort herumstöbern.

Besonders freuen mich die ersten „externen“ Benutzer, teilweise aus vermeintlich IT-fremden Bereichen wie z.B. den Kulturwissenschaften. Das Feedback hilft mir in der Weiterentwicklung und bestätigt mich in der Entscheidung, auf ein langlebiges Format zu setzen.

Gleichzeitig nützt mir der Zettelstore auch in der Lehre. Kann ich doch so den Studenten praktische Fallbeispiele zeigen. Oder: die Studenten arbeiten im Rahmen von Seminararbeiten oder Projektstudien am Beispiel des Zettelstores. Das scheint die Kommunikation zu befruchten. Ich freue mich, wenn ich zum Ende dieses Semesters von einigen Ergebnissen berichten kann.

Aktuell arbeite ich an einer Version, die es mir erlaubt, eine externe Software zu erstellen, die aus Zetteln Blogposts generiert. Dann kann der Zettelstore auch zur Textproduktion genutzt werden.

Bis zu dieser Version steht der Zettelstore unter der AGPLv3-Lizenz. In der Diskussion mit einigen studentischen Teilnehmern einer Projektstudie, bin ich zu dem Entschluss gekommen, dass diese Lizenz etwas zu einschränkend ist. Ich bin zwar kein Jurist, aber nach meinem Verständnis müsste jede externe Software, die den Zettelstore nutzt, dann ebenfalls unter diese Lizenz gestellt werden. Das ist nicht so von mir beabsichtigt gewesen.

Deshalb wird der Zettelstore danach unter eine neue Lizenz gestellt. Dies ist ohne Probleme möglich, da ich bisher der einzige Urheber bin, also noch kein Programmcode anderer Personen eingeflossen ist. Die neue Lizenz wird mit großer Wahrscheinlichkeit die European Union Public Licence (EUPL) sein. Warum? Zum einen ist die EUPL gerade deshalb entwickelt worden, damit es eine Software-Lizenz gibt, die zum europäischen Rechtssystem passt. AGPL, GPL, Apache, MIT, BSD & Co sind auf das doch sehr unterschiedliche US-amerikanische Rechtssystem ausgerichtet. Trotzdem ist die EUPL explizit mit vielen dieser Lizenzen kompatibel. Die EUPL ist in allen EU-Amtssprachen verfügbar, also etwas leichter zugängig. Und Sie passt besser zu meinen Intentionen des Zettelstores. Vielleicht spielt es auch eine Rolle, dass ich nicht nur Bürger der EU bin, sondern ein föderales Europa befürworte. Ganz nach dem Motto „Europa ist für alle da!“.

Darauf folgende Versionen werden die API erweitern, eine Anschlussmöglichkeit zu Pandoc bieten und die Recherchefähigkeiten erweitern. Siehe auch: Limitations and Planned Improvements.

Aber erstmal ein Schritt nach dem anderen. Ich werde berichten. Vielleicht möchte noch jemand mitgestalten?