Using a fully tag-based system to manage content on your computer

A new approach for computer classification

Dadiorchen
CodeX
9 min readSep 3, 2021

--

The problem

Manage and categorize content (files, documents, notes) on the computer is a difficult task, both to the computer and to ourselves. That is to say, to ourselves, it’s a burden to maintain and manage our content, and to the computer, in my opinion, there isn’t yet a perfect approach giving to us to do it.

On the computer, there mainly are two approaches to organize content: the tree structure and the tag system. Both of them a widely used in the computer world. Nowadays, almost all computer OS is using the tree structure as their file system. We got a root folder on our computer and can put any number of folders or files under the root, and the folder hierarchy is infinite. But the rule is your folder or file can just have one ancestor. You can’t put one file into two folders at the same time.

In comparison, the tag system provides a way to put content into multiple categories. You can attach multiple tags to a single file, without limitation. The first time I met tag is on the blog website, then it got popular, now, even some OS adopted the concept of tag, like macOS.

Both of them (the tree structure and tag) has advantages and disadvantages, for tree structure, you got an organized hierarchy structure to organize your content, but you can not categorize one thing twice, for tag system, you can put a thing into multiple categories, but tags are plain, having no structure, you need to find one tag in a tag ocean.

So some applications and OSs developed a mixed approach to try to solve the problem, as I mentioned, macOS uses a tree structure to organize files and also provides a tag system as a supplement. Some apps like Evernote, provider both, you can organize your note with hierarchical ‘notebook’, and tag your note at the same time.

This approach is good, it gives you an extra way to organize your stuff. But it also, in another angle, bings more confusion. Or it gives you a further burden to manage your content. Now you need to maintain two different classification systems, and it’s possible that you confuse them both. It’s up to you to create a category as a folder or as a tag. You can name a folder as ‘plan’, and also you can name a tag as ‘plan’, right? And sometimes you don’t know which one to choose, sometimes, you forgot you have had a ‘plan’ tag when you are creating a ‘plan’ folder. So this mixed approach isn’t perfect too.

This is the situation of classifying content on the computer. Now I will introduce a new approach to solve this problem.

The solution

About the name

I want to introduce a new way to categorize our content, before that, I have to mention the app I created, the Midinote. I developed the idea of categorizing content in the progress of creating the app. I found the complete principles and good practices in the middle of the path. In the app, I call the tags in notes ‘Miditag’, so it’s natural that I call this tag system ‘the Miditag system’.

The rule of Miditag

The rule for the Miditag system is simple:

  1. Miditag is a tag with a name, and Miditag is distinguished between each other by its name.
  2. You can mark any word in your content as a Miditag by following rule №1.
  3. You can DEFINE a Miditag through No.2

Let me explain a bit here, just like a traditional tag, Miditag basically is just some words, you can use any word. When you are typing content, you can select any word in your content, and mark them as a Miditag. Pretty similar to the way we are doing on Twitter.

Below is a Tweet:

The content in this Tweet is:

BREAKING: Twitter is now beta testing a #Bitcoin lightning tipping service

If we put this piece of content into the Miditag system and also mark the ‘Bitcoin’ as a Miditag, for convenience, we also use the ‘#’ to prefix the tag name, but this is not a rule, you can use anything to mark the tag, it doesn’t matter.

Now you got a piece of content, and a Miditag #Bitcoin, then you can define the Miditag, how? Through rule №2, that means, you can use some words to define a Miditag, and also mark some words as Miditag too.

You can define #Bitcoin like this:

#Bitcoin is a decentralized #DigitalCurrency

Note the #DigitalCurrency is another Miditag. You can use Miditag to define Miditag.

The rule of classification

How to put some content into some category? The rules:

  1. If a piece of content is attached by some Miditag (by mark some part of the content as Miditag) then this piece of content belongs to this Miditag.
  2. If a Miditag is defined by another Miditag, then all the content that belongs to the former also belongs to the latter.
  3. The rule №2 is transitive.

Explanations:

Let’s reuse the example above:

BREAKING: Twitter is now beta testing a #Bitcoin lightning tipping service

There is a Miditag #Bitcoin in this content, so according to №1 this piece of content will belong to the Miditag: #Bitcoin.

Then we define #Bitcoin

#Bitcoin is a decentralized #DigitalCurrency

According to №2, the content above should belong to #DigitalCurrency too.

Imagine we now try to define #DigitalCurrency

#DigitalCurrency is any #currency, money, or money-like asset that is primarily managed, stored or exchanged on #digital computer systems, especially over the internet.

In this definition, we used #currency in the definition of Miditag, so according to №2, №3, the content above (BREAKING: Twitter is now beta testing a #Bitcoin lightning tipping service) should also belong to #currency.

Here we borrowed the concept of “transitive set” in the set theory, whenever xA, and yx, then yA.

So that’s all rules for the Miditag, now let’s see how to use it.

Practices

Categorize content after you created it

This is an interesting behavior in Miditag. Usually, we define the structure first, then we put things into it. Like the file system, you must create a folder first, then you can create files under it. In Evernote, you must create some ‘notebook’ first, then you create notes under it, though you might have a default notebook, if you don’t choose a notebook, notes will be put into that notebook by default, but if you eventually want to organize the notes, you have to go through them and move them to the right places.

In my opinion, this is a source of difficulty organizing stuff through the traditional way. Because often, you don’t know where to put your notes when you are right creating them. Actually, this is a major pain point when I use Evernote, I was always struggling with this question: where to put this note? I just want to write down something at the moment, but I have to choose the notebook first. I even don’t know what it is for now …

Now the Miditag gives you a way to just write down the things in your mind, without worry about where should it belong to.

Here is an example of how to use it:

Imagine, when you first time read things about ‘Google’, you might still have no idea what it is. You wrote down this:

People are talking about #Google, seems like it is a good tool online. I am going to try it later.

At this point, you don’t know what Google is, where does this note belongs, but you know Google is a THING, that’s for sure, so you mark it as a Miditag.

Then, with time, you tried Google:

#Google is fantastic, I can use it to find things I want

Now you know more about it, at this point, you are able to define Google:

#Google is a internet #SearchEngine

By doing this, you sorted Google into the search engine category. You can also define #SearchEngine in the future when you know more about it.

Once you defined Google, you put all those notes mentioned Google under the category ‘search engine’, as I said, you are now categorizing things after you created them, right? And it makes sense that we categorize all content that belongs to Google into the category: search engine because Google is one of the search engines. This is a major difference comparing to the traditional way, you define/categorize things when you know it, once you define the thing, all those content under that Miditag will be put into the ancestor (or we can say superset) Miditag immediately.

Don’t forget the rule №3 still works, this behavior is transitive, once you define the #SearchEngine by some other Miditag, say, #WorldWideWeb, then the notes belong to #Google will belong to #WorldWideWeb too.

#SearchEngine is a #software system that is designed to carry out web searches in the #WorldWideWeb.

Multi-classification

The main downside of the tree structure is that you can not put one file into two folders. With Miditag, it’s easy to categorize one single content into multiple categories.

Let’s continue the previous story:

Years later, you tried the Bing search engine, provided by Microsoft company. You type:

I tried #Bing, I don’t think Bing is as good as #Google

Then, you define the Bing:

#Bing is another #SearchEngine, and it is created by #Microsoft

Now, the Bing Miditag belongs to two categories: search engine and Microsoft. Any notes belong to #Bing will belong to #SearchEngine and #Microsoft. Of cause, you can add more when you know more about Bing.

Drawing the mind map of your knowledge

Essentially, Miditag gives the traditional tag the ability of hierarchy structure. Just like the tree structure, and a tree structure is easy to be visualized through a mind map.

The above example actually created a simple mind map:

In the Miditag system, you can display every Miditag’s mind map. And navigate between upward and downward Miditags.

Below is an example of a mind map in Midinote.

a mind map in Midinote

The suggestions on how to define or choose a Miditag

How should I define a Miditag? And how should I choose the Miditag in the content?

There is no restriction to define a Miditag, and which part of the content should be or not be a Miditag, it’s up to you, but my suggestion is:

  • Using reasonable sentences rather than just simply a list of raw tags to define a Miditag.
  • To choose a tag, the more concrete the tag is, the better.

Actually, both of these suggestions above are to say: don’t try to use abstract concepts to categorize the content.

When you try to use raw Miditags to define other Miditag, you are trying to abstract it. When you try to directly attach some Miditag to content, you are also trying to abstract the content. Don’t do it, just let the tag emerge from the content. I think a concrete tag is better than an abstract tag, ‘Google’ is better than ‘search tool’, ‘internet website’, apparently the latter two are more abstract, although, in the content they might be indicating the same thing, I prefer to choose Google. I think people are easier to recall a concrete thing than an abstract thing. And also, the name of an abstract is unstable, is a source of confusion, you can say Google is a ‘search tool’, and you can also describe it as a ‘software system’, ‘internet tool’, ‘search engine’, and ‘productivity tool’.

In the future

I hope people could think of this approach introduced by Miditag, also, you can try my app Midinote, a practice of the Miditag system. I believe that people can develop better ideas or practices based on it. I think it’s a good try to solve the problem in the computer classification area.

--

--