Technik
Kommentare 6

Bases – Datenbanken mit Obsidian

In der nächsten Version 1.9, die derzeit als öffentliche Betaversion (Catalyst) bereits getestet werden kann, bekommt Obsidian eine neue Funktion namens Bases, die den eigenen Vault in eine Datenbank verwandelt. Dass man mit den Daten im eigenen Vault so einiges machen kann, zeigt der Erfolg von Dataview und Datacore. Mit den neuen Bases lassen sich nun mit Obsidian direkt und ohne zusätzliches Plugin Projekte organisieren, Leselisten erstellen und vieles mehr.

Funktionsweise

Mit Bases kann man recht flott und einfach Datenbankabfragen generieren. Dazu werden die Metadaten der Dateien bzw. Notizen genutzt, die sich in den Dateieigenschaften bzw. im YAML-Header befinden. Die Ergebnisse können – je nach Abfragekriterien – in einer Base und auf Wunsch mit verschiedenen Ansichten dargestellt werden. Informationen lassen sich so auf unterschiedliche Weise anzeigen.

Um eine neue Base anzulegen, öffnet man die Befehlspalette und wählt Bases: Create new base. Daraufhin wird in dem Ordner, in dem man sich gerade befindet eine neue Datei mit der Endung *.base angelegt. Alternativ dazu kann man eine neue Base auch in einer bestehenden Datei einbetten. Dazu wählt man in der Befehlspalette den Befehl Bases: Insert new base aus. Klickt man im Datei-Explorer von Obsidian mit der rechten Maustaste auf einen Ordner und dann im Kontextmenü auf den Befehl New base, wird eine neue Bases-Datei in genau diesem Ordner erstellt.

Auswahl der Ansichten in einer Base

Man kann eine Base – wie erwähnt – auch in eine andere Datei einbetten. Das gelingt einerseits über Transklusion der Bases-Datei mit dem Befehl ![[Datei.base]] bzw. ![[ Datei.base-Ansicht]] für eine bestimmte Ansicht, die dann angezeigt werden soll. Andererseits hat man auch die Möglichkeit, das Einbetten mit einem Codeblock zu bewerkstelligen. Dafür lohnt sich jedenfalls ein Blick in die Bases Syntax auf der Obsidian-Hilfeseite.

Wie erwähnt, können je nach Abfragekriterien die Ergebnisse in verschiedenen Ansichten in einer Base dargestellt werden. So kann beispielsweise in einer Base-Datei mit einer Bücherliste je eine Ansicht mit jenen Büchern angelegt werden, die derzeit gerade gelesen werden und jenen, die als nächstes drankommen. Dabei haben beide Ansichten grundsätzlich dieselben Abfragekriterien, unterscheiden sich jedoch hinsichtlich des Lesestatus.

Filterkriterien für die Ansicht der Bücher, die derzeit gelesen werden
Filterkriterien für die Ansicht der Bücher, die als nächstes gelesen werden

Klickt man auf den kleinen Pfeil rechts neben der jeweiligen Ansicht im Auswahlfeld für die Ansichten, dann kann man im danach folgenden Menü die gewählte Ansicht mit Configure view anpassen. Insbesondere für die Kartenansicht lohnt sich ein Blick in dieses Konfigurationsmenü.

Konfigurationsmenü für eine Ansicht

Im ersten Textfeld kann man die Bezeichnung der Ansicht ändern. Gleich darunter das Layout. Derzeit können Bases in Obsidian entweder als Tabelle oder in einer Kartenansicht dargestellt werden. Weitere Darstellungsformen – sogenannte Views – sind entsprechend der Roadmap für Bases noch in Arbeit. Wählt man die Kartenansicht mit Cards aus, dann ändert sich der Konfigurationsmenü entsprechend und man kann mit einem Slider die Kartengröße festlegen und gleich darunter die Dateieigenschaft auswählen, in der das Bild für die jeweilige Karte gespeichert ist. Mit Image fit definiert man, ob, das Bild in der Karte komplett dargestellt werden soll – dazu wählt man die Option Contain – oder mit Cover nur ein Ausschnitt daraus. Mit dem Slider unter Image aspect ratio legt man das Seitenverhältnis des Bildes fest.

Einstellungen

Für die neue Obsidian-Erweiterung Bases gibt es keinerlei Optionen in den Einstellungen, so wie das für viele andere Plugin üblicherweise der Fall ist. Man kann die neue Datenbankfunktion lediglich in den Einstellungen unter Obsidian-Erweiterungen aktivieren oder deaktivieren.

Die eigentlichen Einstellungen tätigt man dann direkt in der jeweiligen Base-Datei. Dort kann man einerseits links oben die einzelnen Ansichten bzw. Views innerhalb der Base-Datei konfigurieren und verwalten. Und andererseits kann man rechts oben die Einstellungen für die gerade aktive Ansicht gestalten. Dazu gibt es mit Sort eine Möglichkeit, die Sortierreihenfolge festzulegen, mit Filter lassen sich die Datenabfragen definieren, Properties dient zum Vorgeben der im Suchergebnis anzuzeigenden Datenspalten und mit New kann man eine neue Datei anlegen, die exakt jenen Kriterien für den Filter der gerade aktiven Ansicht in der Base-Datei entspricht.

Anwendung

Das Definieren eines Filters ist der erste Schritt, wenn man eine neue Base-Datei anlegt. Denn damit definiert man, welche Notizen überhaupt im Abfrageergebnis angezeigt werden sollen. Diese Filter zielen auf die Metadaten der Dateien bzw. Notizen, die in den Dateieigenschaften resp. dem sogenannten YAML-Header gespeichert sind. Sobald man eine neue Base anlegt, listet Obsidian darin alle im Vault gespeicherten Dateien in einer Tabelle auf und wird mit dem Filter eingegrenzt.

Es ist übrigens ein interessantes, wenngleich auch logisches Detail, dass eine Datei alle Eigenschaftsfelder in den Properties aufweisen muss, um im Ergebnis der Bases-Abfrage angezeigt zu werden. Selbst wenn diese Felder leer sind, müssen sie dennoch zumindest vorhanden sein.

Aktive Notizen

Beispielsweise für eine Übersicht aller gerade aktiv in Bearbeitung befindlichen Notizen. Ich nutze dafür die Dateieigenschaft status. Eine Notiz kann den Status aktiv, nächstes, fertig, veröffentlicht oder abgebrochen haben. Für die gerade aktiv in Bearbeitung befindlichen Notizen wird also nach dem Status aktiv gefiltert. Und da auch die als Nächstes anstehenden Dateien in dieser Liste aufscheinen sollen, wurde auch der Status nächstes ergänzt. Diese beiden Filter gelten für alle Ansichten in der Datei Aktiv.base. Dazu ergänzend bzw. zur Verfeinerung des Suchergebnisses lassen sich spezifische Filter für die jeweilige Ansicht ergänzen.

Die erste Ansicht in dieser Base-Datei heißt in Arbeit und listet alle gerade aktiv in Bearbeitung befindlichen, sowie die als Nächstes zur Bearbeitung vorgesehenen Notizen auf. Buchnotizen zu Büchern, die ich gerade lese, tragen ebenfalls den Status aktiv. Daher werden diese mit einem entsprechenden spezifischen Filter für diese Ansicht aus ebendieser ausgegrenzt und nicht angezeigt.

Filter für die Ansicht in Arbeit in der Datei Aktiv.base

Als Ansichtsformat dient eine Tabelle. In der ersten Spalte befinden sich die Dateinamen der Notizen. Die nachfolgenden Spalten beinhalten Status, Typ, Schlagworte und den Zeitpunkt der letzten Änderung einer Notiz, sowie das Erstelldatum. Die Spalten der Tabelle lassen sich über die Einstellung Properties rechts oben ein- und ausblenden.

Die Sortierreihenfolge wird ebenfalls rechts oben mittels Sort definiert. In diesem Beispiel wird die Reihenfolge zuerst über die Spalte Status und anschließend über das letzte Änderungsdatum festgelegt. Somit sind die aktiven Notizen vor den als Nächstes zur Bearbeitung vorgesehenen Notizen aufgelistet und dann jeweils jene ganz oben, die zuletzt bearbeitet wurden.

Festlegen der Sortierreihenfolge

Die zweite Ansicht fokussiert auf die aktiven Projekte. Zu diesem Zweck wird in dieser Ansicht aus den aktiven und als Nächstes für die Bearbeitung vorgesehenen Notizen nach jenen vom Typ Projekt gesucht.

Filter für die Ansicht Projekte in der Datei Aktiv.base

Die dritte Ansicht schließlich betrifft jene Notizen, die Schreibvorhaben beinhalten, also den Typ Blogbeitrag oder Newsletter beinhalten. Der Filter dafür ist ähnlich aufgebaut, wie bei den Projekten.

Übrigens kann man in einer Bases-Datei die Dateieigenschaften der angezeigten Notizen direkt in der Tabelle oder auch der Kartenansicht bearbeiten. Das ist überaus praktisch, um zum Beispiel schnell den Status einer Notiz zu verändern, oder Schlagworte zu ergänzen.

Bücherliste

Die Literaturverwaltung war eines der ersten Einsatzgebiete für Obsidian. Bis vor wenigen Monaten habe ich dafür das Dataview-Plugin und gespeicherte Suchabfragen verwendet. Mittlerweile konnte ich das vollständig mit Bases in Obsidian abbilden und brauche das Dataview-Plugin nun gar nicht mehr. Besonders gut eignet sich dafür die Kartensicht anstelle der tabellarischen Darstellung in Bases. Denn damit können die Buchcover eingeblendet werden, was den visuellen Eindruck deutlich verbessert.

Voraussetzung dafür ist, dass man für jedes Buch eine eigene Buchnotiz angelegt hat. In den Buchnotizen sind im YAML-Frontmatter bzw. in den Properties die notwendigen Daten gespeichert. Das Datensammeln beim Anlegen einer Buchnotiz kann man mit dem Web Clipper samt einer entsprechenden Vorlage für Buchnotizen automatisieren.

Verschiedene Ansichten in der Bücherliste.base

Je nach Lesestatus eines Buches können verschiedene Ansichten in der Bücherliste angelegt werden. Zum Beispiel für die Bücher, die man gerade liest, oder jene, die als nächstes gelesen werden sollen, sowie die bereits gelesenen Bücher. Dabei gilt es zu beachten, dass man den Status des Buches in der jeweiligen Buchnotiz aktuell hält und im Properties-Feld status beispielsweise zwischen aktiv, nächstes, gelesen und ungelesen unterscheidet. Zudem kann man bei den gelesenen Büchern eigene Ansichten für jedes Jahr genieren. In die Abfrage bezieht man dann auch den Zeitraum ein, in dem man ein Buch fertig gelesen hat.

Abfrage für die im Jahr 2025 gelesenen Bücher

Für gelesene Bücher kann auch ein Rating-System mit Sternchen in die Bücherliste integriert werden, das zusätzliche Filtermöglichkeiten für Abfragen nach den beispielsweise besten Büchern ermöglicht.

Klickt man übrigens auf die Anzahl der Ergebnisse in einer Bases-Ansicht links oben, dann kann man über das damit aufgerufene Menü die Anzahl der Ergebnisse in der jeweiligen Ansicht limitieren und die angezeigten Daten entweder als CSV-Datei exportieren oder als Markdown-Tabelle in die Zwischenablage kopieren.

Später-Lesen-Liste

In Kombination mit dem Webclipper kann man sich mit Obsidian eine Read-it-later Funktion bauen. Mit dem Webclipper speichert man Artikel und Videos aus dem Internet für das spätere Lesen bzw. Anschauen direkt in Obsidian. Den Webclipper konfiguriert man dazu so, dass die gespeicherten Inhalte in den Dateieigenschaften mit den entsprechenden Informationen automatisch versehen werden. Artikel und Videos werden also beispielsweise in der Dateieigenschaft typ als ebensolche katalogisiert. Danach richtet man sich mit Bases eine Datenbank in Obsidian ein und lässt sich dort alle Notizen vom typ Artikel oder Video auflisten.

Filter für eine Später-Lesen-Liste mit Bases

Wenn man zudem noch zwischen ungelesenen und bereits gelesenen Artikeln unterscheiden möchte, kann man dies über eine weitere Dateieigenschaft bewerkstelligen, die mit status bezeichnet wird.

Fazit

Mit den Möglichkeiten, die Obsidian mit Bases bietet, lassen sich vielfältige Datenabfragen im eigenen Vault erstellen und ist der Funktionsumfang für die meisten Anwendungsfälle völlig ausreichend. Die neue Erweiterung befindet sich allerdings aktuell noch in Entwicklung. So gibt es zum Beispiel mit Version 1.9.5, die vor ein paar Tagen erschienen ist, nun auch eine Möglichkeit zum Eingeben von Formeln in der Tabellenansicht einer Bases-Datei. Auch ein Blick in die Roadmap für die Weiterentwicklung von Bases zeigt, dass die Obsidian-Entwickler vor dem öffentlichen Release noch einiges nachlegen werden.

In meinem Arbeitsablauf mit Obsidian haben die neuen Bases bereits jetzt das Dataview-Plugin vollständig abgelöst und auch einige gespeicherte Suchabfragen ersetzt. Aktuell denke ich darüber nach, ob nicht auch ein Musikkatalog für Schallplatten und CDs analog der Bücherliste in Obsidian eine Heimat finden könnte. Inklusive einer entsprechenden Vorlage für den Web Clipper zum Abgreifen der Daten aus Online-Diensten wie Discogs.

Abschließend sei noch angemerkt, dass die Hilfeseite von Obsidian mit Introduction to Bases auch ein guter Einstiegspunkt für Bases ist.

6 Kommentare

  1. Hallo,
    vielen Dank für den spannenden Artikel!
    Kannst du mir zufällig den Namen der Schriftart nennen, die du bei dir in Obsidian aktiviert hast (vgl. letztes Bild dieses Artikels). Ich finde die Schriftart deiner Notiztitel in Obsidian sehr schön.
    Danke!

    LG Max

  2. Michael K sagt

    Hallo Thomas,
    ich möchte für die Erstellung der Buchnotiz Web Clipper nutzen und somit unabhängig von der externen Erweiterung Book Search werden.

    In Web Clipper habe ich ein Template für die Buchnotiz erstellt. Ich probiere es gerade mit https://www.thalia.de/ oder https://buchhandel.de/.

    Nun meine Frage an dich, welche Internet-Adresse nutzt du für die Buchnotiz?

    Viele Grüße
    Michael

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.