Intro – Matthias Steffens, creator of Keypoints

Hi there,

I stumbled across this forum in my daily quest to learn from other people about their reading & note-taking workflows. Coming from the natural sciences and having worked on reference management systems I realized that the focus was often on the management of literature (and its bibliographic metadata), but not on the actual information/knowledge that could be extracted from it. However, these extracted info/knowledge bits (together with your own thoughts) are essential for your own writings, or when trying to gain insight into a topic. And these bits form the basis for all other steps that belong to personal knowledge management (like connecting them via links, commenting on them, categorising/filtering/weighing them, ordering the relevant/related ones in an outline, or adding new insights, etc).

To achieve some kind of PKM workflow, many people have implemented their own solutions – combining (manually or via scripting) apps from different categories, e.g. PDF highlighting, note taking and reference management. About 5 years ago, I decided to build an app that tries to combine elements from these categories and that would improve on such workflows. The app (Keypoints, see also here) is a plain-text focussed note-taking & PDF annotation app for the Mac.

My app stores each extracted PDF highlight annotation as a separate plaintext (MultiMarkdown) note. These notes are self-contained, i.e., they each contain all relevant info (e.g., the PDF file & annotation info as well as the citation info which can be auto-fetched from your reference manager). The notes get auto-linked to the exact location of the extracted/highlighted text in the PDF. I.e., selecting a note will also jump to its quoted text in the PDF and highlight it. And clicking a highlight annotation in the PDF will select its corresponding note.

Having individual (atomic) and self-contained plaintext notes is crucial IMO – not only for reasons of maximum portability & long-term stability. This also enables you to sort/filter and organize them (e.g. via tags, color labels & ratings), mix & arrange them with other notes from other PDFs (e.g. via queries or structure/overview notes), and link them together (via drag & drop or autocompletion). This allows you to create a network of semantically rich and linked notes, and to build your very own knowledge database.

My app also exposes its parsed elements via a scripting API (see e.g. here). This is meant to facilitate custom workflows and tight integration with other PKM apps or apps used for outlining/writing/graphing/mindmapping etc.

Currently I’m working on link types (aka semantic links) which allow you to specify why you’re actually linking to another note. I.e., for each cross-link, you can add one (or more) type(s) (like “supports”, “refutes”, “uses data from” etc) which let you describe the nature of the link. But you could also just add labels (aka link tags) that describe what the linked note is about, or add key/value attribues (like “quantity=50g”) to a link. You can assign colors to these link types and they will appear as colored edge labels in the graph visualization.

Unfortunately, the app still isn’t available as a public (alpha/beta) release, and there’s no release date yet. During the last year, progress has been rather slow (my day job demands more focus than I’d like, and there were also other reasons). But I’m dedicated to push app development forward.

Here are two screencasts that show the app in action:

The first screencast is also available as a high-res version.

As for my background, I’m a former marine biologist (having worked for ~10 years on sea ice & polar research) converted into a Mac (and web) developer. Since the last 15+ years, I’ve worked on reference management systems, first the collaborative web-based literature manager refbase, then worked for Citavi and Papers and contributed to Bookends. I’m now working on (and will continue to work on) Keypoints.

Thanks for reading all of this. I’m looking forward to fruitful discussions!