How and why to use tags in Obsidian

I have read and watched a good number of dissertations on applying metadata to Zettelkasten, and how that works from a software perspective. However, none of the concepts 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 and the similar methodologies before that inspired it, you would sort paper slips or cards into individual boxes, cabinet drawers, or ring binders, and each container or slip could be categorized using some type of metadata or ordering.1 Meanwhile, the modern concept of “tagging” got its name because the process mimicked sticking colored or annotated tags to a piece of paper to make it stand out in a collection and thus easier to find. This methodology is easy to apply to Zettelkasten, both physically and digitally.

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 nested tags

Speaking of, I recently reorganized my tags to make better use of Obsidian’s nested tags feature. Nested tags allow you to organize tags to be the “children” of “parent” tags, using / to separate them in the tag name. This is useful for a number of reasons, but most important is Obisidian’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, #windows-server, and #active-directory individually, or would you rather use Obsidian’s smart tag insertion and simply type active-directory after a hashtag, and get 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 most if not all of the individual tags without nesting regardless, so is it really a problem?

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.

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.

Does it work?

I would argue yes. See plenty of examples on my blog. But tags are a personal choice, and for a product as customizable as Obsidian, simply pick a methodology that works for you! The most important part, as mentioned above, is to have Obsidian and the Zettelkasten method align with how you work, so that you can get the most effort out of it with the least friction. You don’t even have to use Zettelkasten, Obsidian doesn’t force you. There are tons of plugins that can completely change the functionality and use-case for Obsidian. If you want something simple, it 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. Get out there and you do you.

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