Mod-Edit: I renamed this thread to focus on wikilinks in YAML frontmatter. The other part of the title “Notion-like databases from metadata” is already possible with Dataview, Database Folder, and all related plugins.
First, I’d like to thank all contributors to Obsidian for making the absolute best knowledge management application!
Over the years many applications never quite delivered what I was looking for and ideas of a better system started accumulating in my mind. The most notable idea being able to link anything to anything and use those links as tags themselves. Notion almost made this possible, but not completely. Then Obsidian appeared, turning this dream into a possibility!
As I’ve become acquainted with Obsidian I’ve realized that many of my notes are of a particular type or kind. Let’s use Movie for example. For any note that’s a movie I can just add a [[Movie]] link to the top of my file and BAM, that link itself serves as a tag for all movies.
However, all notes that have an “is a” relationship to movie also happen to share a standard set a metadata such as director, run time, IMDB rating, etc. The obvious solution would be to create a template for Movie that I can apply to all “is a Movie” notes. This does begin to solve the problem of keeping all of the metadata standardized, but as you will see some problems still remain.
My next thought was for this metadata to be parsable in a way that I or someone else could build a plugin to view all notes that are a movie in a table just like a Notion database with a standard set of properties. Then I found YAML support for Obsidian which seemed perfect! That is until I realized links do not yet work in YAML front matter. Therefore links could not serve as the metadata values to be used by plugins.
Having the metadata with links for a movie note would look something like the following:
--- is a: [[Movie]] director: [[Ridley Scott]] run time: 2hr IMDB rating: 7.8 ---
Such metadata formatting would allow plugins to be built that create Notion-like database views (table, cards, kanban) and at the same time maintain a rich backlink ecosystem. The last thing I want to have to do is add duplicate metadata in YAML and my own block below it.
I’m certainly not the only one that uses links as tags. It seems to be quite a popular trend. Another popular trend for many users seems to be adding links to the top of their notes as metadata that’s nearly identical to YAML front matter. This is a very common pattern. Also notice that this pattern is already very similar to the pattern of Notion Page properties. Perhaps we see some standard design patterns emerging for knowledge management systems.
I deeply desire the option for YAML metadata to be universally link compatible. I want to build, or see built, plugins that can take advantage of YAML metadata that are also links, while at the same time Obsidian also observes them as links in the graph.
I propose that the syntax could be something like the following and just use the standard link formatting already used:
--- customProperty01: [notalink, randomstring] customProperty02: [[[isalink]], [[another link]]] customProperty03: - notalink - [[isalink]] links: [NoteB, NoteC] <-- Similar to "tags", but creates links. ---