Dieses Jahr war sehr schwierig aufgrund persönlicher Umstände. Trotzdem konnten einige Fortschritte erzielt werden.

Eine Untermenge von Engelbarts NLS/Augment-ViewSpec-Kommandos wurde in Form eines weiteren Betrachter-Programms implementiert. Die Komponente ist außerdem mit dem Ressourcen-Abrufer ausgerüstet, um lokale oder entfernte Daten zuzuführen. Solche werden vom stream-basierten Tero-Parser verarbeitet, der anhand einer minimalen HTML-Grammatik auf die Eingabe reagiert, um den Rohtext aus Absätzen zu extrahieren. Der Text kann dann neu dargestellt werden (ähnlich einem „Layout-Generator“) gemäß der aktuellen ViewSpec-Einstellungen, welche der Nutzer einfach und schnell hin- und her schalten kann durch Drücken von nebeneinander liegenden Buchstaben auf der Tastatur.

Ein struktur-orientierter XML-Editor wurde entwickelt, aber zunächst wird nur eine Lösch-Operation samt dazugehöriger Rückgängigmachung angeboten. Dieses Werkzeug wurde in erster Linie hergestellt, um XML-Dateien säubern zu können – besonders, um nicht-signifikante Leerraum-Zeichen zu entfernen, die bloß der Einrückung dienen, um einen menschlichen Leser zu unterstützen. Der Editor baut auf Java Swing’s Baum-Bedienelement auf.

Konverter wurden erstellt, um XML nach “SOF”, dem „Struktur-/Semantik-/Standoff-Overlay-/Outline-Format“, zu transformieren, und zurück von SOF nach XML. Gleicherweise wurde ein Text-„Kondensierer“ und „-De-Kondensierer“ für SOF hinzugefügt, um Zugriff auf den Rohtext zu gewähren und diesen getrennt von den sonst inline eingebetteten Auszeichnungs-Markierern vorzuhalten, oder umgekehrt die Markierer zurück über die Text-Abschnitte zu verteilen. Eine Variante des Werkzeugs führt beide Schritte, die Konvertierung von XML nach SOF und die Text-Kondensierung, als Komfort-Funktion auf einmal aus.

Ein neues Repository wurde angelegt, um darin Parser-Regel-Grammatiken für Tero zu sammeln. Mehrere vorher schon existierenden Regel-Definitionen wurden dorthin verschoben.

Eine Speicher-Vorrichtung wurde endlich eingeführt, welche lokale Kopien von Materialien bereitstellt, wenn diese angefragt werden. Sie wird versuchen, Daten herunterzuladen, wenn sie nur an einer entfernten Quelle verfügbar sind und nicht lokal vorliegen. Wenn eine Kopie vorhanden ist, wird die Referenz einfach nur zu den Daten im lokalen Speicher aufgelöst. Intern wird bisher keine Datenbank oder eine der anderen Optimisierungs-Techniken eingesetzt. Das Werkzeug verblieb vorerst ziemlich primitiv im Sinne der beteiligten Mechanismen und relativ komplex in Bezug auf die Implementierung, da keine Abfragen oder ein schneller Nachschlage-Index verwendet werden, und stattdessen die ganze Materialien-Liste jedes Mal sequenziell neu ausgelesen wird. Es werden Hashes berechnet, während jedoch andererseits Zeitstempel nicht erfasst werden und auch eine spätere Aktualisierung der Daten noch nicht vorgesehen ist.

Dank des Speicher-Moduls wurde eine neue Version des früheren Betrachters programmiert, der auf diese Weise einige Persistenz gewinnt.

Ein einfacher Visualisierer für generische Graphen wurde fertiggestellt, zusammen mit Bearbeitungs-Operationen zum Hinzufügen, Entfernen, Verschieben, Verbinden und Entbinden von Knoten. Äquivalenter Code ist für JavaFX und HTML5’s Canvas angelegt worden.

Früherer Code zu diversen Eintrags-Listen-/Baum-Prototypen wurde weitergeführt, um drei neue Varianten zu produzieren. Die erste Variante erweitert einen unendlichen hierarchischen Eintrags-Baum, der auch eine Bearbeitungs-Historie beinhaltet, um den öffentlichen Lese-Zugriff auf die Einträge. Die zweite Variante erweitert diese, indem die Umsortierbarkeit von Einträgen gewährleistet sowie der Name des Benutzers, welcher eine Revision eingesendet hat, angezeigt wird. Die dritte Variante erweitert die vorhergehende durch die Zustimmung zu freier Inhalts-/Beitrags-Lizenzierung (um das kollaborative Ergebnis als ein gemeinsames digitales Gemeingut aufzubauen) und befähigt den Nutzer, den Eltern-Eintrag zu verändern, womit der Eintrag effektiv über die Ebenen des Baums hinweg verschoben werden kann.

Im Augmented-Reality-Bereich wurde eine weitere Variante der Geolokations-Progressive-Web-App abgezweigt, welche keinen Abruf von Daten vom Server mehr aufweist, was vorher dazu verwendet wurde, um die an eine Position im physischen Raum geankerten Daten anzuzeigen, wenn der Nutzer per Geräte-Ausrichtung („Kompass“) in deren Richtung schaut. Weiterhin wurde die Möglichkeit entfernt, den aktuellen Standort des Nutzers auf der Server-Seite zu protokollieren.

Das Muster-Katalog-Verwaltungs-Server-Paket für das WWW wurde um ein Listen-Bedien-Element ergänzt, mit dem Einträge hinzugefügt, entfernt und umsortiert werden können (inklusive Bearbeitungs-Historie für diese Operationen basierend auf Komplett-Momentaufnahmen). Ferner kann nun ein statischer Text-Abschnitt als ein Bestandteil auf der Muster-Vorlage beziehungsweise auf dem Eingabe-Formular konfiguriert werden. Eine zusätzliche Variante des Software-Pakets wurde mit einer Benutzer-Verwaltung ausgestattet: diese beschränkt die Erzeugung von Vorlagen ausschließlich auf Benutzer mit Administrator-Rolle.

Das Audio-Nachrichtensystem erhielt eine Funktion, mit der Chat-Räume erstellt werden können, damit später andere Benutzer dort eingeladen werden können, sodass die Aufnahmen in solche Räume gruppiert werden und darin in flacher, fortlaufender, chronologischer Anordnung erscheinen. Die ursprüngliche Baum-Struktur der Bedienung wie von einem früheren Experiment übernommen wurde aufgegeben, nachdem sich herausgestellt hatte, dass es sehr müßig ist, wiederholt die vielen Baumzweige nach neuen Nachrichten zu durchsuchen, während diese wenig zur Audio-Kuration beigetragen haben.

Im Kontext eines Projekts zur Schaffung eines Fortschritts-Tracker-Server + -Client-Softwarepakets für das WWW wurde die CRUD-API-Methodik verbessert. Der Client setzt Twitter Bootstrap ein und legt eine objektorientierte Repräsentation der Daten-Ressourcen zugrunde. Über die Anlage und Anzeige von Einträgen zu Projekten hinaus ist ein separater API-Endpunkt verfügbar, um Profile zu Personen zu sammeln.

Der frühere Navigator für Änderungs-Anweisungen war unzureichend auf dem Gebiet der Ausführungsgeschwindigkeit der Darstellungs-Generierung. Dieses Jahr wurde eine neue Strategie angewendet, welches die Anzeige-Aktualisierung signifikant beschleunigt, außer in einem seltenen Grenzfall. Voher musste der Nutzer nach einem Klick mitunter Wartezeiten und Verzögerungen hinnehmen, welche durch die Last für den DOM des Browsers verursacht wurde. Naiverweise wurden alle alten Elemente verworfen und der gesamte Text anschließend als DOM-Elemente wieder neu angelegt. Jetzt wird nur noch der betroffene Textabschnitt aktualisiert.

Ein verschachtelbarer/stufbarer (multi-level-fähiger) stream-basierter Tero-Parser konnte verwirklicht werden.

Mehrere Komponenten wurden in eine Workflow-Konfiguration kombiniert, welche eine Kern-Schleife eines ersten, einfachen „Systems“ realisiert. Der Daten-Abrufer greift auf lokale oder entfernte Materialien zu, wodurch letztere zuerst automatisch in den Speicher persistiert werden. Typischerweise erlaubt eine Liste dem Nutzer, ein gewünschtes Dokument auszuwählen, damit es in einem Betrachter-Programm geöffnet wird, um nach der Lese-Phase wieder zum Index zurückzukehren.

Ein Versuch wurde unternommen mit dem Ziel, langsam ein Verzeichnis mit Profilen über Personen als ein Daten-Projekt aufzubauen. Es musste aber angehalten werden, um konkurrierende Doppelarbeit zu vermeiden.

Eine Korrekturlesung für “Xanadu Hypertext Documents” von Chip Morningstar wurde auf Basis des Textes von Alberto González Palomos durchgeführt und viele Fehler verbessert, die von der OCR-Extrahierung des Original-Scans übrig geblieben waren.

Für die PlanetMath-Repositorys wurde eine Parser-Grammatik für deren LaTeX-Dokument-Metadaten-Beschreibungs-Kommandos definiert. Dann werden die eindeutigen Feld-Namen wie in den extrahierten Daten vorgefunden aufgelistet, um auf eine potentielle Veränderung hinzuweisen. Aus einigen dieser Attribute wird automatisch ein multidimensionaler Index zusammengestellt.

Copyright (C) 2023 Stephan Kreutzer. Dieser Text ist lizenziert unter der GNU Affero General Public License 3 + jeder späteren Version und/oder unter der Creative Commons Attribution-ShareAlike 4.0 International.