makāmau

makāmau ist der Projektname einer Wissensmanagement-Software.

Alternativen

Beim Wissensmanagement hat man es häufig sowohl mit strukturierten, als auch mit unstrukturierten Informationen zu tun.

Die bekannten Softwarelösungen unterstützen jeweils nur eine der beiden Arten wesentlich. Hinzu kommen weitere individuelle Einschränkungen. Zwischen 2012 und 2018 experimentierte ich daher mit eigenen Ansätzen:

Aus den damit gesammelten Erfahrungen wurden Anforderungen an eine optimale Software formuliert. makāmau ist der Versuch, diese Anforderungen zu erfüllen.

Ziele

Technologieunabhängigkeit

Um eine starke Bindung an Programmier- und Abfrage-Sprachen, sowie DBMS-Produkte zu vermeiden, ist das Datenmodell top-down definiert.

Da es an Leaky Abstractions fehlt, können Daten und Abfragen recht einfach auf andere Modelle/Frameworks abgebildet werden. Dass Backends frei gewählt werden können, ist wertvoll, da einige Papers/Benchmarks zeigen, dass RDBMS-basierte Backends häufig performanter und/oder Ressourcen-schonender sind, als dedizierte Triple/Graph Stores.

Unterstützung von informeller Erfassung

Wissenserfassung in Form von strikten Ontologien ist aufwändig und häufig unnötig. Wenn sowohl präzise Zusammenhänge als auch unstrukturierte Dokumente unterstützt werden, so lassen sich letztere sofort erfassen und iterativ präzisieren.

TODO: high-level Objekte, Listen, Koordinaten, URLs

TODO: Geschichte, Undo/Redo

UUIDs

Sprechende Node-IDs, wie sie bei RDF üblich sind, haben den Nachteil, dass sich spätere Umbenennungen auf weite Teile des Datenbestandes auswirken. Die Notwendigkeit sprechender Node-IDs entfällt, wenn nicht-sprechende, generierte IDs in der Anzeige in sprechende Bezeichner übersetzt werden.

UUIDs können dezentral generiert werden, was Austausch verteilter Änderungen ermöglicht. Nachteilig ist die relativ große Datenmenge von 128 Bit (16 Bytes) bzw. 32/36 Bytes in ASCII-Darstellung. Viele RDBMS unterstützen keine 128-bit Integer-Zahlen.

Umsetzung

TODO Rust

Die Web-GUI verwendet im Frontend WebAssembly und im Server Hyper.rs.

Name

Hawaiianisch-klingende Namen und japanisch-anmutende Überstriche finde ich interessant. Die Übersetzung von „weise“ in's Hawaiianisch zeigte, dass dieser Name bereits vergeben ist. Variationen führten zu „makamau“, worin man „maka“ (= Auge) und „mau“ (= viele) erkennen könnte. Der Überstrich auf dem mittleren „ā“ betont die Symmetrieachse und deutet Stabilität und Dynamik an. Blah blah.

made with makāmau