makāmau

makāmau ist der Projektname einer Wissensmanagement-Software für:

Alternativen

Abgesehen von weiteren individuellen Einschränkungen scheint es keine Softwarelösung zu geben, die alle Informationsarten gut unterstützt. Zwischen 2012 und 2018 experimentierte ich daher mit eigenen Ansätzen:

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

Ziele

informelle Erfassung

Wissenserfassung in strikten Ontologien ist aufwändig und vielfach 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: zuerst für Menschen, dann für Maschinen

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

TODO: Sprache, z.B. „Gift”

TODO: Geschichte, Undo/Redo

Offline

TODO

Mehrbenutzerfähigkeit

TODO: Schreib- und Leseberechtigungen

Node IDs

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.

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 problemlos auf andere Modelle/Frameworks abgebildet werden. Backends können frei gewählt werden. Das ist wertvoll, da einige Papers/Benchmarks zeigen, dass RDBMS-basierte Backends häufig performanter und/oder Ressourcen-schonender sind, als dedizierte Triple/Graph Stores.

Umsetzung

Core

Der Datenmodell und die Backends (Storage Layer, Query Engine) sind in Rust geschrieben.

TODO

Frontend

Das Front ist eine Flutter-Applikation.

TODO

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