x

How and why to use tags in Obsidian

I have read and read and watched a good number of dissertations on applying metadata to Zettelkasten, and especially how that works from a software perspective. Much of the discourse centered around tagging documents, which is not a foreign concept to me, given my technologic background. However, none of the schemes people proposed really gelled with me, so I decided to come up with my own. But before I reveal my cards (or slips… get it…), let’s go over what we’ll be working with.

Recommended reading before continuing:

What is a Zettelkasten tag?

In the original concept of Zettelkasten, the objective was to categorize individual notes using some type of metadata.1 For containers, each one could represent a theme, topic, time period, or other broad group, while the notes could be ordered by date, importance, author, etc. For some, this was enough… but for others, there were subcategories, colliding and overlapping groups, and other metadata that could not be described using this scheme. One solution to this was the attachment of colored or annotated tags to these documents, which helped differentiate them from the rest of group, without affecting the card order or moving to another container. This practice—while not specific to Zettelkasten—eventually led to the modern usage of “tagging” in software: sorting files and other data using attached metadata, without affecting other aspects of the file. This methodology is just as easy to apply to digital Zettelkasten.

By applying a common set of tags to describe your note content, you get an easy way to tangentially and non-linearly discover and rediscover information. It isn’t the only way to organize, and some may argue isn’t the most effective, but the most important feature of Zettelkasten is that it can be customized to the user’s needs. It is not a fixed process, only a description, and adherents should be free to utilize and change any part of it that they see fit, especially if they plan to use their slip box as a second brain. The process should mimic your mind, and not force your mind to adhere to a process that doesn’t work for you.

Obsidian tags and nesting

Speaking of what works for me, I use Obsidian. One significant organizational focus in Obsidian is tagging your documents using #hashtags. In particular, I nest my tags, by having every tag be a “child” of a “parent” tag, using / to separate parent from child in the tag name. For example, in the tag #hello/world, world is the child, while hello is the parent. This is useful for a number of reasons, but most important is Obsidian’s substring search feature.

When searching for tags in Obsidian, it matches based on substrings—meaning, only part of the search query needs to match the tag for the document containing it to be returned. So by searching for the parent of nested tags, you will get not only any documents tagged with the parent tag in the search results, but all of the child tags too. This feature allows you to explicitly tag the child tag on a document and get the benefit of implicitly tagging its parent tags without having to manage multiple tags at once. And since Obsidian and Markdown is all (or mostly) plain text, the tags themselves add text search keywords if tag searching is not available, with all parts of the nested tag being potential datapoints for text-based tools.

For example, if I want to talk about Active Directory, that implies a Windows Server environment, as Active Directory is a Windows Server application that can’t run anywhere else; Windows Server is a release of Windows; Windows is a piece of software; and these topics are things that I am writing about—or rather they are the primary subject of the writing. With all of this information combined, we come up with the nested tag #⭐topic/💾software/windows/server/active-directory. So now, searching for any of the parents of this tag, such as #⭐topic/💾software/windows, will include the deeper nested tag in the results as well. And we can easily grep our vault for anything matching e.g. #[a-z/-]+/windows(?:/|/?$) to find any tags containing the nested tag windows, without needing Obsidian search.

If you were to do this without tag nesting, you would need to tag each individual nested tag, and it can become cumbersome to keep track of all of them. Would you want to tag #⭐topical, #💾software, #windows, #server, and #active-directory individually? Or would you rather use Obsidian’s smart tag insertion, where you can type active-directory after a hashtag, and have the whole nested tag inserted for you, without having to type each individual part out? And if you opt to use individual tags, there may be situations where you don’t think to tag one of the items, which leads to a fragmented vault and information loss. Of course, one could argue that when you have to write documents in a raw text editor, typing out the entire nested tag would suck since they can get lengthy, but you’d have to write all of the individual tags without nesting regardless, so is it really a problem? Even in such a situation, it would be trivial to grep/replace mistyped single tags, versus a whole boatload of tangentially related ones, which may be in any order or position inside the document, or not present at all when they should be.

But aside from providing context to a tag, including related broader-scope tags implicitly, and giving you peace of mind that you aren’t missing a certain tag on a document, parent tags can be used as tags themselves. As previously explained you can search for a parent tag and get it in the results; for example, a search for #⭐topic/💾software will show any and everything I’ve written about software, even if the document isn’t explicitly tagged with it, because all of my software-related tags are nested under it. And for one-off situations that don’t really necessitate the creation of a new tag, or for notes that specifically talk about software as a general subject without focusing on a specific product, I can just tag #⭐topic/💾software.

How I use tags in Obsidian

And finally to the namesake of the article. I found tagging to be the most effective way to sort things, and came up with the following organizational scheme for my tags. I was inspired by multiple other Zettelkasten adherents and their workflows, but found their ways too clunky or not well suited to my own writing style and thought process, as touched on in the opening paragraph.

In addition, I’ve adopted a tactic that I originally frowned upon: embedding contextual emojis into my tags. It helps with readability when sorting through my tag list, as many emojis offer distinct coloration and shapes. It also allows me to quickly populate the tag selection dropdown with the tag(s) I want, by inserting the relevant emoji instead of text. This is particularly helpful on mobile, where emoji keyboards are quick to invoke.

Categories

My tags are primarily ordered based on three main categories: Topic, purpose, and context.

Topic

The topic of a Zettelkasten note is what the general theme of the note is centered around. Zettelkasten is all about keeping small, succinct, to-the-point notes, so naturally this also means that the topic of the note should also be very targeted. In my particular use case, I used to add multiple topic-like tags to my notes, but most of them were there simply because they were related to the primary topic tag. By using nesting, I can relay the main (or selection of main) topics of the note, and also reference the wider scope of that focus in the form of a parent tag.

Purpose

We have the general topic(s) of the note, but why was the note written? I have a few tags to give some reasoning behind why the note was created in the first place. This can help differentiate casual musings from seriously presented documentation. For example, I might tag a document with #🚩purpose/💭musing if its purpose is just for me to get my thoughts on paper; while I would use #🚩purpose/ℹ️documentation for any documents written with the express purpose of providing knowledge and clarity to the topic.

Context

If I want to tag a document for later retrieval but it doesn’t fit as a topic or purpose tag, or if the tag provides functionality to Obsidian, its plugins, or external tools, then I consider it a tag providing context to the document. The #📑context/ideas and #📑context/todo tags help keep track of ideas for the vault or other projects based on it, and parts of my writing that still need to be done; I often use Obsidian as my scratchpad, so keeping track of fragmented ideas and holes with these tags is essential. For an example of functionality, I use the #📑context/🗓️date/published/yyyy-mm-dd tags to order posts on my blog’s RSS feed, and I display my todo items on my Obsidian homepage with an embedded query. Advanced use described here.

What about other tags?

If a tag doesn’t fit into the above three (already pretty broad) categories, then it’s time to rethink if the tag is actually useful. Will it be useful to look things up with it, does it have a functional purpose? If the answer is no, then another tag should probably be used, or the reason for it to be tagged might not be that important anyway. Keeping a focused and collected view on your tags helps keep information more accessible.

Why this method?

I would argue that it works, and works well. See plenty of examples on my blog. But tags are a personal choice, and for a product as customizable as Obsidian, you are spoiled for choice. Give it or any other methodologies a try, and simply pick one that works for you!

The most essential part, as touched on above, is to have Obsidian and the Zettelkasten method align with how you work and think, so that you can get the most effect out of it with the least mental friction. You don’t even have to use Zettelkasten—Obsidian doesn’t force you, and there are tons of plugins that can completely tailor its functionality however you like. Want to add a fully-fledged calendaring and appointment system, or sort your note content into text-based databases and query that data? You can do that. Or if you want something simple, Obsidian can even be used as a general purpose Markdown text editor, and you can ignore any of the fancy stuff like tags, and simply throw bare files in folders. And while I wouldn’t recommend that last option, it’s as viable as any other choice, if it gels with you.

Having notes and remembering things is better than the alternative. Get out there and you do you.

Left-click: follow link, Right-click: select node, Scroll: zoom
x