Thanks for getting us started. Expanding on what @bart says, there would need to be a way to create notes that aren’t associated with any particular text in the MarginNote collection of documents and mind maps. This might mean a new “area” in the MarginNote UI, in addition to Document, Study, and Review.
This collection of notes needs to be searchable, and given the nature of the Zettelkasten, a multiple-term search is probably desirable.
Next, it should be “easy to make hyperlinks between notes”. This will depend upon how note IDs are represented, since we’ll need a way to choose the target ID for a link.
In the Zettelkasten method, an ID is a short string like 21/3d7 . Branches are represented by simply adding more character, e.g., … 21/3d7c , while sequences are represented by incrementing the alphanumeric characters in the ID, e.g.: 21/3d8. There could be short-cut commands for adding a card to a branch or a sequence.
Here, we encounter a first MarginNote implementation issue. How to represent these IDs? Internally, MN uses IDs that look like 39516C19-09D5-4359-BBE9-290CF981BBCC. These are unique — which is necessary! —, but obviously too long for us users to type in. Also, they cannot be used to represent branches or sequences. Thus, the database table probably needs a separate column for the Zettelkasten note IDs, and this column must also have a UNIQUE constraint.
By sorting the ZettelKasten IDs alphabetically, we get a list. The items in the list may be indented, to show the branches. How this would map onto the graphical 2D presentation of notes in the MarginNote mind maps is (to me) an open question. Maybe there could be a way to view both?
What else?
Following @Nils’ suggestion, I looked over Lüdecke’s presentation on Luhmann’s Zettelkasten method.
Lüdecke summarizes Luhmann’s approach to organizing notes as:
- No categories
- Linkage / reference
- Tagging and register
- Arbitrary “branching” of note sequences
Unique note numbers (IDs) allow selective or specific links / references between notes. (These can perhaps be implemented using SQL primary/foreign keys.)
“Tagging and Register” means there is a “register” (kind of an index) that is separate from the notes, containing core keywords that reference tagged notes. The purpose of the register “was to find an ‘entrance’ (starting point) into the Zettelkasten”. However, “tags don’t have the primary purpose to create links between notes” (more about this in a moment).
To follow Luhmann’s method, then, there might need to be either an area or mode of the MarginNote UI that allows a presentation of the register. In an app like MarginNote that uses a SQL database, the “register” could be generated dynamically by performing a SQL SELECT for all tagged rows, and then presenting a sorted set of the tags, with each unique tag followed by a list of IDs hyperlinked to notecards.
Lüdecke emphasizes that branches of notes can be “concatenated”, resulting in “note sequences”. In MarginNote, this could be implemented by providing a way to browse specific branches of notes, in effect creating a sequence. Branching and note sequences allow “story telling”.
I also found @bart’s recommendation of Beck Tench’s videos to be helpful. Her idea of having separate note branches for collecting theories, methods, arguments, instruments, gaps, findings, etc. looks useful.
HTH