Skip to content
Dmytro Halichenko edited this page Feb 20, 2025 · 1 revision

Personal Knowledge Management (PKM) systems revolve around managing a graph of notes. However, every Markdown file is a graph in itself. Let me explain with an example:

# Header 1 

Paragraph 1

Here, Header 1 is the logical parent of Paragraph 1.

# Header 1 

## Header 2

Paragraph 1

In this example, Paragraph 1 belongs to Header 2, which in turn belongs to Header 1.

You get the idea: it effectively forms a tree (which is also a graph) of text blocks.

So, why does this matter? Suppose I want to find something in my notes graph. I can achieve better results using context-aware search. For example:

# Projects

## My new shiny thing

Paragraph 1

If I type "Proj" in the search bar, I should get two matches:

Projects > My new shiny thing 
Projects

And if I type "shiny," the search result should be:

Projects > My new shiny thing 

This way, I gain a bit of context.

Okay, it sounds promising, but how can I scale this to thousands of notes and multiple contexts?

It's simple. Just use the "Maps of Content" (MOC) approach:

# Projects

[[My new shiny thing]]

[[The old thing]]

[[The old thing 2]]

This will yield similar search results:

Projects > My new shiny thing 
Projects > The old thing 2
Projects > The old thing
Projects

With this approach, you can delve as deep as you like:

# Personal

[[Projects]]
Personal > Projects > My new shiny thing 
Personal > Projects > The old thing 2
Personal > Projects > The old thing
Personal > Projects
Clone this wiki locally