Obsidian mit Frontmatter + YAML + Dataview

Frontmatter

Der Begriff "Frontmatter" bezeichnet einen speziellen Bereich innerhalb der Datei. Er muss sich zwingend an allererster Stelle in der Datei befinden und er wird durch drei Bindestriche eingeleitet und auch beendet.

---
Dies ist ein Frontmatter-Bereich.
---
Vor dem Frontmatter-Bereich darf nichts stehen - außer Leerraumzeichen.

YAML

Frontmatter dient zur Aufnahme von Metadaten. Die Sprache in der diese Metadaten geschrieben werden heißt "YAML". Mit YAML können komplexe Datenstrukturen beschrieben werden in seiner Grundform besteht YAML aber aus einfachen "Schlüssel-Werte" Paaren.

---
fileCategory: °Article
topics: [Obsidian, Frontmatter, YAML, Dataview]
---

Obsidian (ab 0.12.12) stellt folgende intrinsische Schlüssel zur Verfügung.

  • aliases
  • cssclass
  • puplish
  • tags

Zur Verdeutlichung, das sind keine YAML-Schlüssel, sondern sie kommen von Obsidian und dienen bestimmten Zwecken in bezug auf Obsidian. YAML bringt ja nichts vordefiniertes mit, es ist "nur" eine Sprachsyntax.

Dataview

Dataview ist ein Obsidian Plugin, das eine Sprache zur Verfügung stellt mit der diese in YAML formulierten Daten verarbeitet werden können, die sog. Dataview Query Language, kurz DQL.

```dataview
  LIST 
  WHERE fileCategory = "°Article" 
             AND contains(topics, "YAML")
  SORT file.name ASC
```
  • [[Obsidian mit Frontmatter + YAML + Dataview]]
  • ...
  • [[XML, JSON, YAML und Co - Ein Vergleich]]

Dataview beschränkt sich nicht auf den YAML-Frontmatter-Bereich, sondern geht weit darüber hinaus, aber das ist ein anderes Thema.

Was du mit Dataview nicht kannst ist, die YAML-Daten oder gar die YAML-Datenstruktur zu verändern, wie du es bpw. in relationalen Datenmodellen mit SQL kannst. Aber dafür gibt es andere Werkzeuge.

Wozu das Ganze?

Du kannst mittels YAML-Frontmatter deine Obsidian-Dateien strukturieren und hast damit ein dateibasiertes Datenbankmodell. Das ist nicht wenig - das ist phänomenal!

Du kennst sicher die "Zettelkasten-Geschichte" mit Verlinkung, netzwerkartiger Struktur usw. Das ist ein anderer Ansatz - ABER diese zwei ganz unterschiedlichen Ansätze schließen sich nicht aus, ganz im Gegenteil. Es hängt ganz davon ab, was DU willst. Für deine bpw. Büchersammlung bietet sich YAML an für deine bpw. "Selbstreflektionen" wohl eher die Vernetzung. Und natürlich kannst du beides miteinander kombinieren.

Wie abhängig machst du dich mit YAML und Dataview?

Wir reden hier von dateibezogene Metadaten in plain-text Dateien in einem dateibasierten System. YAML selber wird noch für ganz andere Dinge eingesetzt, bpw. für Konfigurationsdateien, aber das ist ein anderes Thema.

YAML ist eine weit verbreitete und absolut anerkannte Sprache. Frontmatter ist eigentlich kein Teil von YAML aber in unserem Kontext untrennbar damit verbunden. Beide Begriffe werden oft synonym verwendet, man spricht auch oft von "YAML Frontmatter" und es gibt sogar Abkürzungen dafür (YMF).

Wenn dir Obsidian nicht mehr passt und du wechselst bpw. zu The Archive (macOS) • Zettelkasten Method wirst du dein "YAML Frontmatter" eins zu eins übernehmen können. Mit YAML-Frontmatter bist du, gerade auch langfristig gesehen, auf sicherem Boden.

Anders sieht es mit Dataview aus, das ist Obsidian-bezogen. Das wirst du bei einem Wechsel nicht weiterverwenden können. Ich gehe aber davon aus, dass andere vergleichbare Anwendungen, wie das oben erwähnte "The Archive" gleichartige oder auch darüber hinausgehende Funktionalitäten zur Verfügung stellen, denn sonst ergäbe YAML-Frontmatter keinen Sinn. Nichtsdestotrotz - bei einem Wechsel wirst du Arbeit investieren müssen, aber - aber im Vergleich zu anderen Systemen wie bpw. Notion ist dieser Aufwand lächerlich gering.