notesmachine/docs/00_Basic_Ideas.md

7.0 KiB

Basic Ideas of Notesmachine

Zettlekasten

Zettlekasten is a note organization method to facilitate the production of intellectual work. You have a collection of boxes into which notes from different areas of your life belong. When you have assembled enough notes to compile a whole work out of them, you take them out of the box and arrange them on a table, re-working them if necessary, until you have the rough draft of a whole work. The notes are organized into a hierarchy of knowledge about that area, and when you have an idea, you have one of three steps.

  • If your collection is small to non-existent, you can just add the note, annotating it in a way that tells you where it goes.
  • If your collection is large enough you can't be sure where it goes, look to see if a similar note is already present. If it is, you have two choices:
    • If the idea very similar, just write your idea into the existing note.
    • If the idea is "kinda" similar, write a new note that compiles the idea into a single idea
    • If the idea is new, write a new note, and mark it in ways that place it near its relatives.

What those boxes are is up to you. For example, I love to cook, write software, and write stories. It is unlikely that there's much overlap between those three categories, so I have separate boxes for each of them.

I said it is unlikely that there's overlap, but it's not impossible. For example, I like to blog about all three of those things, and so having things tagged somehow as "blog idea" would be useful, rather than having a separate box for "blogging." More to the point, Notesmachine itself is a powerful tool for writing stories.

Notesmachine is primarily a Zettlekasten support tool, but as we'll see, combined with a computer's ability to reach across itself and find other notes, it can produce powerful knowledge-building abilities.

The Noguchi Method

The Noguchi Method is more project-oriented. It still uses a boxes-and-notes method, but it's more focused on the projects. Each project has its own clearly labeled box, and the boxes are arranged in a straight line on a shelf. (Noguchi himself uses those narrow, square-bottomed plastic folders you can find at office supply stores.) Whenever he adds something to a folder, the folder is moved to the leftmost position of the shelf. Folders he refers to but does not add to stay where they are. Over time, the rightmost folders become irrelevant to ongoing projects, and on a fairly regular basis he archives those folders, making room for new projects.

By marking every box in Notesmachine by when it was created, updated, requested, and finally deleted, it becomes possible to create a Noguchi-like view of the boxes you care about.

Bisecting K-Means

This isn't a method, it's an algorithm by which documents, usually quite large documents, are "clustered" into groups based on the prevalence of certain terms within the documents, as is used as automated way of identifying groups of documents.

Notesmachine may provide a few different variants on the K-Means algorithms in the future, but these algorithms are known to be expensive to run and difficult to make progressive, but it might prove incredibly powerful in the future to show that unrelated notes have some overlap based on their content.

Keyword discovery

Roam provides a powerful tool in the form of "keyword discovery." Roam scans new notes for terms that already appear regularly in its list of keywords, and asks the user if it wants those terms to be made into links to the boxes that represent those keywords. Notesmachine provides this, but only as a separate feature.

Note cloning

Notes may be related to other notes, but sometimes its not enough to say that one note is related to another. Sometimes you want the note in two boxes, and in that case it's enough to copy the note. Sometimes you want the note in both boxes simultaneously, such that editing the note in one place makes those edits to all the notes in all other boxes. Notesmachine provides the ability to duplicate notes, have notes refer to other notes, or fully embed notes in multiple locations in your box collection.

Box merging

Sometimes you may find yourself with multiple boxes with the same kinds of notes in them. I have a box "Recipes" and another "Entrees". If I want to merge those two boxes, all I have to do is tell Notesmachine that I want all "entree" tags changed to "recipe".

Notesmachine's links engine uses three different algorithms when labeling a box: The first is that it has a "title" for the box; the second is that it has a "slug" for the box, which removes stopwords and produces a simplified url-ready all-lower-case form of the title; and the third is that it stems the title, which uses the Porter Stemming algorithm to try and find related boxes such that "entrees" and "entree" will be treated the same. The preferred Porter variant is the one provided by NLTK.

The dataset used for stopwords is the spark collection.

101% Markdown

There are a number of different means by which notes can be entered, but the two fundamental ones are simply as a stream of text-- which can be useful when using voice input-- and Markdown, which provides some structure and is generally more useful. Notesmachine recognizes two different means of tagging:

  • classic, where the tag is surrounded by double-brackets. In this mode,
  • #Hashtag, where the tag is prefixed by a cuddled hash symbol. (A hash symbol in the first column followed by a space is a title; anywhere else, it's just a hash symbol.) This also has two other features:
    • (feature) #snake_case_hashes will automatically be interpreted as separate words.
    • (feature) #CamelCaseHashes will also be automatically be interpreted as separate words.
    • (feature) #lisp-case-hashes will likewise be treated as separate words.

Three kinds of relationships:

Notes machine supports three different kinds of relationships.

  • Links: Every note in a box can be linked to other boxes. That's sorta the idea of NotesMachine, that you can have lots of notes and they all relate to one another somehow, creating a web of notes that on their own can collect ideas and spark new ones. Along with the most common sort, one note links to another box, notes can link to specific notes in another box, and then there's referring and embedding.
  • Nests: Notes can be nested inside other notes. This is a common organizational scheme, and it results in the sort of structure of folders-within-folders that's common in most operating systems. Nests are useful because they automagically become outlines for documents and projects.
  • Boards: Every once in a while it's nice to take all the notes out of a box and arrange them physically, visually in front of you. It would be nice if we could support that as a display form.