Notes should be centered around concepts

We center a note on concepts, rather than an author, or a book, or something else.

Concepts are translated into content espoused by authors/books/websites. They are like "instances" of the general idea; they provide support/evidence that we can refer to inside a note. Authors in their writings usually espouse multiple atomic concepts (see: Notes should be atomic), which makes referencing the exact idea in a note on a book difficult too.

Notes should be atomic

In a personal knowledge graph that relies on notes, the notes should contain a single idea that makes one point. Having two points in the note makes the note confusing to link to.

Building a great personal knowledge graph with Obsidian

Obsidian is a very unique product amongst personal knowledge management software. Over a recent two-week break that I took from work, I spent some time really digging into Obsidian and the broader idea of "personal knowledge graphs".

One particularly excellent example of how to build a personal knowledge graph is done by Andy Matuschak.

Why Obsidian?

Some of my own notes on Obsidian:

  1. Obsidian is an IDE for linked thought
  2. Obsidian operates on open standards
  3. Publishing Obsidian vaults is cross-platform and portable

How to build an effective notes/knowledge graph

How should notes be written to make an effective knowledge graph?

Paraphrasing Andy Matuschak:

  1. Notes should be atomic
  2. Note titles should imperatively advance one idea
  3. Notes should be centered around concepts
  4. Notes should be linked densely

And my own thoughts tacked on:

  1. The knowledge garden should be tended to daily

How to build the notes site?

Now, what were the exact steps in building out the notes website?

Firstly, I used Obsidian to author the notes. The fact that it's a great IDE for linked thought helps a ton.

Secondly, I used an unpublished, install-from-source-only Python package, apparently developed by a Google engineer called Lettersmith to compile the markdown files into HTML files. I followed a baseline script by another GitHub user @kmcgillivray, who made obsidian-lettersmith, which provided a starter script I used as a base. I used a Jinja template to populate each page.

Thirdly, I re-visited Bootstrap docs to get styling done in a Bootstrap-idiomatic style. Previously, I was completely unaware of the styling utilities available. This meant I was maintaining very poorly-documented CSS hacks to get styling done right. By using the Bootstrap 4 utilities, I was able to compose together styling in a fashion that was much, much easier to maintain.

Fourthly, I wanted hover previews, which meant hacking the Jinja template with some custom JavaScript. Not pretty, and a bit verbose in the compiled pages, but it worked :).

By this point, I was happy enough with the sort-of-replicated Andy site.

I continue to use Obsidian to author the notes. As an IDE for linked thought, the graph view helps me see which notes are still isolated to one another; this gives me a great visual hint as to where I could add more links. I also continue to hack on the notes UI. The source code is in a private repository at this point, as I have plans to separate out the code for building the site from the notes source.