Bi-directional Linking

Haoyang | Dec 27, 2022

Have you ever struggled with organizing your notes in a way that allows for quick and easy searching? In the past, many of us have turned to tree-structured indexing to help with this task. While this method can work well in theory, in practice it can be difficult to maintain.

Tree-structured Notes

Let’s say you have assigned proper categories and sub-categories for each note. In this case, your search time for each note would be \(log(n)\) - at least in theory. However, in the real world it is unlikely that you will be able to create a perfect tree structure. Some categories may end up with many more notes than others, and as a result you may find yourself needing to regularly reorganize the structure in order to keep your search time at \(log(n)\). If you fail to do this, your search time could fall back to \(O(n)\), similar to a fibonacci heap.

The Pressure

This can be a lot of work, and it can also be frustrating to constantly worry about how to categorize your notes. Some may suggest using tags as a solution, but this is essentially just expanding the categorizing system to include multiple trees. It may help in the short term, but it is not a long-term solution.

Bi-directional Linking

That’s where bi-directional linking comes in. With this method, you can simply write down your notes without worrying about how to categorize them. Instead, you can simply mention related notes or concepts within your notes. This creates a bi-directional link between the new and old notes, allowing them to be connected to your knowledge network. This means that you can easily find the new note whenever you come across a related note.

In other words, bi-directional linking takes the pressure off of you when it comes to organizing your notes. You can simply focus on writing them down, knowing that they will be easily findable in the future. This makes it much easier to develop the habit of taking regular notes.