I actually tried to build my app around a typical research workflow. Before getting started with my app, I’ve talked to many researchers, and read many posts where researchers described their own workflows. And I could draw from my own experience during my time in academics.
As a result, I’ve come up with a list of principles that I consider crucial. I will have to write a longer post to go into more detail. This is just a short summary:
-
Free annotations from the PDF & work with them: As @anon41602260 mentioned, annotations get only useful when they are extracted from the PDF. So my app gets them out of the PDF immediately, and you then interact with the resulting plaintext notes.
-
Notes are plaintext: This ensures maximum longevity, avoids lock-in, and allows for easy integration with other apps. The plaintext notes also give you a good data exit strategy.
-
Notes are atomic: One note per thought. This allows you to tag to the bullet point level, and it enables you to freely filter, rearrange and reuse them.
-
Notes are self-contained: Notes should be as self-contained as possible. I.e., the note’s body text (or its metadata) should contain all relevant information (like its tags, creation date, linking & citation info, related file info, and of course the Zettel ID). This way, you can do lots of things with your notes but don’t loose anything. All relevant info always travels with the note. E.g., you could transfer your notes somewhere where there’s no file path info, like a database, a single text file, or an app that stores files internally using its own naming scheme. Your notes would still remain intact and can be retrieved again w/o loss.
-
Notes keep their context: This means one should be able to easily see the context of one’s note. I.e., easily jump to the quoted text in the PDF source, and back again. Also, always keep the reference info in the note. Ideally, the reference info would be extracted automatically.
-
Notes can be inter-linked: Directly linking notes to other notes is crucial since this actually captures your thought trains (tagging does not). Also, by creating a network of semantically rich and linked notes, your note relationships can be visualized. The visualization graph also shows the note’s backlinks, and it can even be used to navigate your notes.
-
Notes are human- and machine-readable: Both are important. The structured plaintext note is your data format. Having it not only human readable but also machine readable allows to build a data model from it, which in turn allows for all kinds of advanced features.
-
Notes can be reused in other applications: It’s very important that the app (your notes) can integrate with other apps, via import/export but Really also directly via scripting/automation.
Each of these points could be a post by itself. I had to type this quickly, so apologies for being somewhat terse. But my point is that I tried to build the app around these principles. And these were deducted from analyzing other researcher’s workflows.