MindForger is een meedenkend notitieboeksysteem en Markdown IDE voor de desktop, compleet met ingebouwde analyse-tooling. Het is een persoonlijke open source knowledge management desktop applicatie en het is geïnspireerd op hoe de menselijke geest, denkt, onthoudt en vergeet.

Auteur: Matto Fransen

MindForger gebruikt het Markdown formaat. Dit betekent dat je naast de in MindForger ingebouwde editor, ook jouw favoriete editor kunt gebruiken, zoals bijvoorbeeld Vim of Emacs. Verder kun je gemakkelijk met informatie uit externe bronnen werken en indexeert MindForger je data. Je gebruikt de tekstanalyse tools van MindForger om verzamelingen van teksten te analyseren.

MindForger is ontwikkeld door Martin Dvorak. Het is ontstaan uit onvrede over bestaande knowledge management tools. Het idee van Dvorak was om een tool te ontwikkelen, die ondersteuning biedt aan een leven lang leren. Verder is er de ambitie om MindForger verder uit te breiden met Natural Language Processing (NLP) functionaliteiten. In de huidige versie maakt het systeem tijdens het lezen en schrijven van notities al relevante suggesties. De functionaliteit om automatisch interlinks tussen notities aan te brengen is in de afrondende fase. De eerste stappen zijn gezet voor het toevoegen van functionaliteit voor het automatisch ontdekken van je interessegebieden.

De data die je in MindForger opslaat, staat op je lokale systeem. Je bent en blijft daar dus zelf de baas en eigenaar over. MindForger is geschreven in C++, het is beschikbaar onder de GPL-versie 2 open source licentie en het is razendsnel.

Notitieboek

Een notitieboek bestaat uit een verzameling notities. Bij het aanmaken van het notitieboek geef je deze desgewenst een waarde voor de belangrijkheid (keuze uit één tot vijf sterren) en/of voor de urgentie (één tot vijf klokjes) en kies je één of meer tags. Ook de individuele notities geef je desgewenst een of meerdere tags. Je voert daarbij een nieuwe tag in of je kunt een bestaande tag kiezen. Bij het invoeren van een tag voert MindForger een incrementele zoekactie uit op de bestaande tags in de repository. Naarmate je meer letters typt, krijg je een steeds kortere lijst met tags te zien.

Een notitie verplaats je omhoog of omlaag in het notitieboek met behulp van de Ctrl-toets en de pijltjestoets. Het is ook heel eenvoudig om notities te promoten of te demoten. Met behulp van Ctrl-pijltjestoets verschuif je de notitie naar links of naar rechts. Wanneer je de notitie naar rechts verplaatst, dan is dit een demotie. De header van de notitie gaat naar een lager niveau, bijvoorbeeld van 1 naar 2 of van 3 naar 4. In het Markdown formaat gaat deze van 1 naar 2 hekjes voor de titel, c.q. van 3 naar 4 hekjes voor de titel.

Hiermee maak je geneste notities. Wanneer je een notitie van niveau 1 hebt, en je plaatst hieronder notities van niveau 2 of lager (dus bijvoorbeeld niveau 3, 4 of 5), dan vormen zij een geneste groep. Wanneer je de notitie met niveau 1 met behulp van Ctrl-omhoog of Ctrl-omlaag verplaatst, dan verplaats je de hele groep.

Screenshot 1: Bewerken van een notitie

 

Refactoren

Je eigen persoonlijke knowledge base die je met MindForger opbouwt, wordt in de loop der tijd natuurlijk steeds waardevoller. Het is daarom belangrijk om meteen vanaf het begin na te denken over een goede structuur. Je hebt hiervoor verschillende invalshoeken. Met behulp van repositories breng je een grove structuur aan. Binnen een repository werk je met meerdere notitieboeken en binnen een notitieboek werk je met notities. Je geeft notitieboeken en notities één of meerdere tags. Je kunt in een notitie links maken naar een notitieboek, een andere notitie, naar een bestand of directory, of naar een URL.

De toegekende tags kun je altijd veranderen, door tags te verwijderen of toe te voegen. Na verloop van tijd wil je notities wellicht verplaatsen naar een beter passend notitieblok. Binnen MindForger heet dit “refactoren”. Wanneer de betreffende notitie een geneste groep is, dan gaat de hele groep mee.

Stencils

Stencils zijn templates en kunnen heel uitgebreid zijn. Bij het installeren van MindForger worden een aantal stencils geïnstalleerd. Je maakt je werk in MindForger efficiënter door eigen, specifieke templates te maken en in je repository op te nemen.

MindForger kent stencils voor notitieboeken en voor notities. Een stencil voor een notitieboek kan een groot aantal stencils voor notities bevatten. Een stencil is een gedeeltelijk vooraf gemaakt notitieboek of een gedeeltelijk vooraf gemaakte notitie, met een aantal opengelaten stukken. Wanneer je een nieuw notitieboek of notitie aanmaakt, kies je desgewenst een stencil. De inhoud hiervan wordt in je nieuwe notitieboek of notitie gekopieerd, waarna je de open gelaten delen verder vult.

Het notitieboek-stencil “goal” bijvoorbeeld, bestaat uit een verzameling notities waarmee je een doel aanmaakt dat voldoet aan “SMARTER” (met aandacht voor de thema’s “Specific”, “Measurable”, “Attainable”, “Realistic”, “Timeable”, “Exciting” en “Resources”), en notities die op allerlei vragen ingaan, zoals “wat is het probleem dat ik wil oplossen”, “wat wil ik er mee bereiken”, enzovoorts.

Screenshot 2: Notitieboek gemaakt met stencil

 

Repository

Een notitieboek bestaat uit een enkel bestand in Markdown formaat. Iedere level 1 header (vooraf gegaan met een enkel hekje) geeft de start van een nieuwe notitie aan. Metadata, (zoals wanneer een notitie gemaakt is, hoe vaak die bekeken is, de tags, etcetera) staat in een commentaarveld achter de titel van de header.

In MindForger werk je met één of meerdere repositories. Een repository bestaat onder de motorkap uit een directory-structuur met vier directories: “limbo“, “memory“, “mind” en “stencils“. De repository is gevuld met Markdown documenten, eventueel aangevuld met media, zoals afbeeldingen in PNG- of JPG-formaat.

Wanneer je MindForger voor de eerste keer opstart, wordt in je home directory de repository met de naam “mindforger-repository” aangemaakt. Deze repository is gevuld met de gebruikersdocumentatie en de standaard meegeleverde stencils. Bij het aanmaken van een nieuwe repository kies je met behulp van twee checkboxen of de nieuwe repository ook de standaard stencils en de documentatie moet bevatten. Meestal kies je hier wel voor de stencils, maar niet voor de documentatie.

Doordat MindForger op basis van Markdown werkt, is het eenvoudig om een backup te maken en je repositories met andere apparaten te synchroniseren of met anderen te delen. Je kunt bijvoorbeeld je MindForger repository in een versiebeheersysteem zoals Git zetten, en daarmee deze naar een remote pushen.

Directories analyseren

Je kunt MindForger in een willekeurige directory openen. MindForger doorzoekt alle Markdown documenten in de directory-tree, dus inclusief alle onderliggende sub-directories.

In de documentatie worden onder andere een aantal interessante online Git-repositories genoemd. Je kloont zo’n repository naar je lokale systeem en opent MindForger in de root van de betreffende directory. MindForger doorzoekt razendsnel de gehele gekloonde directory-structuur en toont alle Markdown bestanden als notitieboeken. MindForger indexeert de bestanden on the fly, waardoor je met bijvoorbeeld de associaties of de Knowledge Graph Generator snel een overzicht van de inhoud krijgt.

De Knowledge Graph Navigator genereert een grafische weergave waarmee je door je notitieboeken, notities en tags visueel kunt bladeren. De knowledge graph wordt gegenereerd aan de hand van je geselecteerde object (repository, notitieboek, notitie of tag).

Screenshot 3: Knowledge Graph Generator

 

Door op de spatiebalk te klikken, verschuif je de weergavevolgorde van de getoonde elementen. Wanneer je op een blokje klikt, open je het betreffende object. Dit is een handige manier waarmee je snel inzicht in de opbouw van de repository of het notitieboek te krijgt.

Associaties

Wanneer je een notitie opent, dan geeft MindForger suggesties voor gerelateerde notities. Deze worden linksonder in het vak “Associaties” getoond. MindForger berekent een score voor relatieve relevantie, uitgedrukt in een percentage, en sorteert de uitkomsten van hoog naar laag.

Screenshot 4: Associaties bij “Built your own x”

 

Een bijzondere view op je notitieboeken krijg je met behulp van de functie “Eisenhower matrix“. De Eisenhower matrix, vernoemd naar de generaal Dwight D. Eisenhower, gaat uit van twee assen: horizontaal voor urgentie en verticaal voor belangrijkheid. Hiermee specificeer je vier kwadranten: urgent/belangrijk, niet-urgent/belangrijk, urgent/niet-belangrijk en niet-urgent/niet-belangrijk. Dit helpt je bij het stellen van prioriteiten.

MindForger heeft dit geïmplementeerd. Je kunt notitieboeken op een schaal van één tot vijf een score geven voor urgentie en belangrijkheid. Wanneer je in het menu voor “Eisenhower matrix” kiest, dan krijg je de vier kwadranten te zien, met in elk vak, die notitieboeken die bij de betreffende urgentie en belangrijkheid horen.

Wanneer je bijvoorbeeld per project een notitieboek maakt, kun je op die manier bewaken, waar je de meeste aandacht aan moet geven.

Scope

Met Scope verklein je de selectie van de getoonde objecten. Je selecteert op tijd en/of tags. Door als tijd bijvoorbeeld een jaar en drie maanden op te voeren, verklein je de scope tot notitieboeken en/of notities, die in de laatste vijftien maanden zijn gemaakt of bekeken. Door ook tags in de scope op te nemen, verklein je de selectie tot notitieboeken met de betreffende tags.

Zoeken

Zoeken op tekst met MindForger is eenvoudig: je voert een zoekterm in en vervolgens doet MindForger razendsnel een zogenaamde Full Text Search. Dit betekent dat het door alle Markdown documenten in de betreffende repository gaat, op zoek naar je zoekterm.

Daarnaast kun je ook op basis van tags zoeken. MindForger zoekt binnen de repository naar notitieboeken en notities, die hieraan voldoen. Wanneer je meer dan één tag hebt ingevoerd in je zoekfunctie, dan bestaan de zoekresultaten uit notitieboeken en notities, die al deze tags hebben. Het zoekresultaat wordt met meerdere tags dus kleiner. Wanneer je eerst een notitieboek opent en daarna op tags zoekt, dan beperk je de zoekresultaten tot notities binnen dit notitieboek.

Bijdrage

Martin is blij met iedereen, die een bijdrage aan MindForger levert, of het nu gaat om het aanleveren van vertalingen, bug reports, of om daadwerkelijk helpen met programmeren. Helemaal blij is Martin met C++ programmeurs, die mee willen werken op het gebied van machine learning en NLP. Ook mensen die research willen doen op dit gebied in combinatie met MindForger worden met open armen ontvangen.

Intuïtief

Met behulp van themes kies je voor een donkere of een lichte weergave. Martin heeft geprobeerd om het werken met MindForger zo efficiënt mogelijk te laten zijn. Alle belangrijke functies zijn ook zonder het menu op te roepen, via het toetsenbord of door te dubbelklikken. De keybindings liggen vaak voor de hand, waardoor je deze je snel eigen maakt. Wanneer je een tijdje met MindForger werkt, weet je waar je kunt dubbelklikken en welke keybindings je voor welke functies gebruikt. MindForger zit je niet in de weg, zodat je al je aandacht op de content kunt richten.

Doordat MindForger op basis van Markdown werkt, kun je eenvoudig je data via bijvoorbeeld Git op een tweede locatie opslaan, bij wijze van backup. Ook kun je op die manier je data synchroniseren tussen bijvoorbeeld je pc en je laptop. Wil je liever dat dit automatisch gaat? Kijk dan eens naar Sparkleshare. Sparkleshare beschikt ook over de optie om je data desgewenst eerst te encrypten.

Wanneer je op zoek bent naar een persoonlijk notitieboek, of een persoonlijke knowledge base, en je wilt daarvoor het liefste een desktop applicatie gebruiken, dan is MindForger een mooie keuze.