March 25, 2026

DIKW database for a warehouse robot

 The following DIKW pyramid was simplified to only 2 bottom layers. Its stored in a json database with 2 different tables. The data layer stores the numerical sensor data like lidar_distance and battery voltage of the robot, while the information layer stored semantic tags. The task for the robot is to translate between both layers back and forth which is called symbol grounding. 

{
  "dikw_model": {
    "data_layer": {
      "lidar_distance_cm": 12.5,
      "ultrasonic_proximity": 0.15,
      "camera_rgb_average": [120, 120, 120],
      "encoder_ticks": 4502,
      "battery_voltage": 11.2
    },
    "information_layer": {
      "spatial_context": ["obstacle", "near_field"],
      "navigation_tag": "left_quadrant_blocked",
      "surface_type": "concrete",
      "status": "low_battery_warning",
      "motion_state": "decelerating"
    }
  }
}

Line breaking algorithm in typst

There are only few information available about the line breaking algorithm in typst. According to internet forums it is more advanced than a simple greedy algorithm used in Libreoffice, but less elaborated like the knuth plass algorithm used in LaTeX. So its located in between them with possible future improvements.

To investigate if the current quality of typst typesetting fulfills the needs of an academic paper let us benchmark the algorithm for a complex example, which is 3 column typesetting. In a 3 column layout, each column is very small which makes it harder for the algorithm to avoid white spaces between the words.

Of course, there are some white spaces available but in general the output has an average quality. LaTeX would be able to reduce the white spaces by microtypography tricks not available in typst. Its a subjective opinion which of the systems is preferred.

March 24, 2026

Language parsing with a DIKW pyramid

In a role playing game there is an npc quest available which asks the human player to collect an item in the wood. To verify if the human player has fulfilled the quest, the game engine needs to understand the words which is equal to downwards in the DIKW pyramid. A sentence consists of single words, these words are associated with sprites in the game engine and also with location in the map. The association between an abstract word and the information in the game engine is stored in a DIKW pyramid which is a database.

A single sentence can be submitted to the dikw database and the database resolves the request so that it will become machine readable. Going upwards and downwards in the DIKW pyramid is equal to symbol grounding.

A DIKW pyramid consists of layers which are storing different sort of information. The lowest layer is accessible for a computer program and consists of location in a map, trajectories, sprites, tile maps and numerical color information. A possible entry might be [100,30] for a position in a map or (100,120,90) for a RGB color information.

On the next layer "information" a different sort of information are stored which are words. A word is a string which can be understand by a human but doesn't provide sense for a computer. For a human the word "wood" makes sense, but for a computer the same string is only an array of characters without any meaning. Its the task of the DIKW pyramid to link the word "wood" with a location in the map. The link allows the computer to resolve the meaning.

March 23, 2026

Language enabled artificial intelligence

AI resarch in the past was dominated by an algorithm centric bias. The goal was mostly to invent an advanced computer program which simulates intelligence. The idea was inspired by a chess engine which is searching in the game state for the next action. Robotics projects were engineered with the same objective. Notable algorithms are RRT for kinodynimaic planning or genetic algorithm for artificial life.

In the 1990s and until 2000s this paradigm was accepted as state of the art attempt to realize artificial intelligence. Unfortunately. none of the described techniques was successful. The robots are not working and the Artificial life simulation didn't evolve into a life form.

There was something missing until the 2000s for enabling artificial intelligence, and the missing element is natural language. On the first look this explanation doesn't make sense because there are lots of examples for text adventures and language understanding AI projects in the past, so the principle isn't new and can't be the explanation how to realize AI. Typical well known examples from the past are SHDRLU, the Maniac mansion game which was based on a simple 2 word 'English parser and a speech enabled robot from 1989 (SAM by Michael Brown). 

The breakthrough technology after 2010 was to focus again on language guided robotics and implement these projects with more effort. Instead of programming a video game like Maniac mansion the goal was to program a text interface for robot control. Instead of realizing the parser in a simple C code, the parser is realized with a neural network. So we can say, that AI after the year 2010 has put natural language into the center of attention and created new algorithms and software around the problem. This attempt was very successful. It is possible to control robots with language and very important its even possible to scale up the approach so that the robot will understand more words and solve more demanding tasks.

From a birds eye perspective the situation until 2010 was to implement closed systems. AI was imagined as an autonomous system which is operating with algorithms and has no need to talk to its environment. In contrast, AI after the year 2010 works as open system. The robot receives commands from the human operator and sends signals back to the operator. In other words, modern robotics is always remote controlled with a text based interface. Its not possible to implement Artificial intelligence somehow else, but text based interaction is the core element of any AI system.

Its only a detail question how to program such an open system in detail. One attempt might be to utilize neural networks and learn the language from a dataset. Another attempt is to program the parser in a classical computer program without neural networks, while the third technique is to invent a domain specific language used for human to robot interaction. All these approaches have in common that natural language is the core building block. Natural language is used as an abstraction mechanism to compress the complex reality into a list of words. A typical entry level robot knows around 200 words to describe the environment including possible actions. These words are used by the robot to interact with a human operator. So the AI problem is mostly a communication problem, similar to transmit messages over a wire.

The paradigm shift from former computation into modern communication is the breakthrough technology for enabling artificial intelligence. Natural language used for human communication is also a powerful tool for human to robot communication. The English vocabulary is seen as a hammer for solving problems. Any problem in robotics gets reformulated into a language problem. There is no limit visible, but all the problems like biped walking, navigation in a maze and pick&place can be reformulated as language games.

Such kind of utilization of natural language wasn't available before the year 2010. The only thing known were isolated projects which explored if language might be useful for robotics. There was no understanding available that natural language is the core element in AI and needs to implemented in any possible robot or AI problem.

March 22, 2026

Instruction following for videogames

The most advanced AI model yet is "Google Sima 2" from the year 2025.[1] The most remarable element isn't the inner working of the agent but its interaction with a human. Its basically a teleoperated video game based on natural language. The human operator enters a command and the AI is translating the text into action.

In other words, the AI itself isn't running a sophisticated algorithm and tries to win any game, but the AI is a text to action converter known as "instruction following". Similar to a large language model the working thesis is, that natural language is the key element for abstract thinking. Describing the next action of character in a videogame in English provides an abstraction mechanism. Instead of mathematical state space used for early chess games based on alpha beta pruning, the "Sima 2" agent utilizes natural language as communication tool.

Of course the input command can be generated by human operators and by large language models both. In the second case the agent will be controlled autonomously like a fully working ingame AI. So the human operator enters only the general command like "win the game" and the large language model will generate all the sub commands and submits them to the Sina 2 agent.

Let me explain the mechanism from a different point of view. Suppose the parser gets removed from the Sina 2 agent so he won't no longer understand natural language. In such a case, the AI can't do anything. It is not able to play the game or solve very simple puzzles. In other words, the intelligence of the AI depends entirely on natural language understanding. The agent needs to know what the term "jump" is about and needs to localize objects like "wall" and "coin" in the game. The software is utilizing the power of English which consists of verbs, adjectives and nouns to interact with videogames.

[1] Bolton, Adrian, et al. "Sima 2: A generalist embodied agent for virtual worlds." arXiv preprint arXiv:2512.04797 (2025).

March 19, 2026

Wissenschaftliche Texte schreiben mit typst

 Anstatt hier die technische Bedienung des Textsatzsystems typst zu erläutern, welche gut dokumentiert ist und große Ähnlichkeit mit LaTeX aufweist will ich ein wenig auf die sozialen Aspekte eingehen, wie genau der Switch vom altgedienten Kohledampfer LaTeX auf das neuartige Dieselschiff typst funktioniert. 

Zuerst einmal sollte man sich die Mühe machen, LaTeX lebewohl zu sagen was in Linux mit dem Befehl "apt remove textlive-*" funktioniert. Dieser Befehl löscht LaTeX von der Festplatte inkl. der zahlreichen ungenutzten Fonts, der Sprachpakete und der obsoleten Zusatzpakete. Wenn alles reibungslos funktioniert ist es danach nicht länger möglich über die Kommandozeile LaTeX Dokumente ins PDF Format zu kompilieren. Dadurch entsteht ein Bedarf nach einer Lösung die besser ist als gar keine Lösung.

Wenn man dringend eine Abschlussarbeit schreiben muss, aber es keine Software dafür gibt, ist jede Software besser als keine. Dadurch blickt man über eventuelle Schwächen großzügig hinweg. Z.B. gibt es in Typst keinen Knuth plass algorithmus wie bei LaTeX ... machts nichts hauptsache es wird überhaupt ein PDF gerendert. Es ist nur sehr umständlich möglich eine Titelzeile zu erzeugen .. .ist nicht weiter schlimm, hauptsache ist dass irgendwo auf der Seite eine Überschrift auftaucht.

Es macht wenig Sinn typst direkt mit Latex zu vergleichen, weil die Software anders funktioniert. Man wird immer irgendwelche Feinheiten finden in den typst Schwächen hat und die bei LaTeX besser gelöst wurden, nur darum geht es nicht. Entscheidend ist dass man überhaupt Text plus grafiken in eine PDF Datei rendern kann und solange die Schrift nicht kleiner ist als 5 pt und die Bilder irgendwie angezeigt werden ist die Aufgabe erfüllt.

Anstatt auf die Details der Typst Software einzugehen macht es mehr Sinn sich mit den Schwächen des LaTeX Ökosystems zu beschäftigen. Der Sourcecode der TeX engine gilt als Spaghetti code. Er wurde in den 1970er geschrieben und verwendet Rekursion als standardprogrammiertechnik. Die meisten Pakete wie Lamport Tex und Bibtex wurden in den 1990er Jahren erstellt und seitdem nicht mehr verbessert. Es gab mal ein Projekt namens latex3, was aber nie realisiert wurde. Von außen Betrawchtet erinnert LaTeX an einen Commodore 64 im Jahr 1994, wo also eine treue Fangemeinde neue Spiele in Assembler programmierte aber nicht einsehen wollte, dass die Welt eine andere ist. Mitte der 1980er Jahre war der 8bit Heimcomputer von Commodore mal state of the Art technologie, aber Mitte der 1990er Jahre war die selbe Technologie veraltet. Und genau das ist die Ist situation mit LaTeX. Die kompletten 8 GB welche eine texlive installation auf der Festplatte in Beschlag nimmt bestehen aus obsoleten Packages, ungewartetem Code, endlosen Makros und immer weiteren Softwareschichten die keinen Sinn machen.

Um eine wissenschaftliche Arbeit zu erstellen braucht es folgende Features: zweispaltensatz, Tabellen, Einbindung von Bildern, Fließtext, Fußnoten und ein Inhaltsverzeichnis. All das stellt typst bereit. Es gibt sogar noch weitere Extras wie Gleitumgebungen, Silbentrennung und dreispaltensatz. Man kann also sagen, dass typst die Anforderungen übererfüllt. Damit ist es gut geiegnet um damit Texte zu erstellen.

Die software ist schön klein, arbeitet sehr schnell, ist umfassend dokumentiert und es gibt online foren für weitere informationen. Also alles verfügbar was man so braucht. Die geringe Anzahl von Nutzer die typst derzeit nutzen ist kein Nachteil sondern ein Vorteil, damit ist sichergestellt dass jeder neue Nutzer der eine Anfängerfrage stellt begeistert empfangen wird und sofort Hilfestellung erhält.


March 18, 2026

Nähere Bekanntschaft mit dem Typst Textsatzsystem

Die Typst software könnte man als Latex clone bezeichnen. Es ist das wohl ambitionierste Projekt mit dieser Zielstellung. Es ist deutlich mächtiger als z.B. lout oder Sile welche ebenfalls angetreten sind um Latex Konkurrenz zu machen.

Selbstverständlich ist dort alles anders und deutlich moderner. Der größte Vorteil von typst ist, dass man nicht 7 GB für die texlive installation benötigt sondern es reichen 50 MB auf der Festplatte aus. Zusätzliche fonts oder packages sind unnötig, weil typst die Linux eigenen Schriften verwendet und mit den default parametern für alle wichtige Aufgaben gerüstet ist.

Im screenshot ist ein Beispieldokument zu sehen inkl. zweispaltensatz, Inhaltsverzeichnis, einer Überschrift die über die ganze Seite geht, eingebundenen Bildern und Blocksatz. Man kann also vereinfacht sagen, dass typst als Ersatz für latex gedacht ist. Im besten fall erfüllt es genau dieselbe Aufgabe.

Die Stärken werden vor allem beim Erstellen von wissenschaftlichen Arbeiten sichtbar die im Normalfall sehr umfangreich sind und viele Gleitabbildungen enthalten. Ferner ist das Prinzip eines Textsatzsystem nützlich bei der Datenbank-Ausgabe, wenn man also CSV Daten als PDF rendern möchte.

In der Summe ist typst das bessere Latex, wenn auch mit einer großen Einschränkung. Der verwendete linebreaking algorithmus ist nicht etwa die Knuth-plass globaloptimierung sondern es ist ein simpler greedy algorithmus der auch in Libreoffice oder in lout verwendet wird. Als Folge entstehen gerade beim Spaltensatz unschöne leerräume zwischen den Wörtern. Hier ist LaTeX deutlich fortschrittlicher auch wenn es Ende der 1970er Jahren entwickelt wurde.

Man wird bei genauer Betrachtung noch weitere Nachteile von typst entdecken. Das Hauptproblem dürfte sein dass es kein LaTeX ist und damit inkompatibel zum bewährten Ökosystem. Nur, das ist weniger eine technische Einschränkung als vielmehr eine soziale. Das also die typst community anders funktioniert und andere Ziele verfolgt als die Latex community.

Um typst würdigen zu können muss man zunächst einmal die Schwächen von TeX kennen. TeX war mal bis ca. Ende der 1990er Jahre das führende Textverarbeitungssystem in der Informatik. Es war schnell, überzeugte durch eine hohe Ausgabequalität, war gut dokumentiert und war offen für neue User. Das ist heute im Jahr 2026 leider nicht mehr so. LaTeX hat heute ähnlichkeit mit einem verrosteten Tanker der groß und schwerfällig an die Vergangenheit denkt und mit geänderten Anforderungen nicht mehr schritt hält. Die vielzahl an LateX implementierungen wie pdflatex, xelatex, Lualatex, context, plaintex, Lyx usw. zeugen davon dass die Community sich aufgespalten hat. Es gab innerhalb des TeX universums durchaus Versuche sich zu erneuern wie z.B. durch das Overleaf projekt, was eine webbasiertes Frontend ist oder durch die Luatex engine, welche das Erstellen von SCripten vereinfacht. Doch wegen der erforderlichen Rückwärtskompatiblität wirken diese Projekte eher wie zusätliche Layer in einem chaotischen Ökosystem was ähnlich wie initd in Linux als obsolet gilt.

Anstatt innerhalb des Latex Ökosystems nach Veränderung zu rufen ist es wohl besser sich auf eine neue technische Basis zu fokussieren wie z.B. das typst Projekt. Diese Software ist effizienter, kann alle wichtige Formatierungsaufgaben erfüllen, benötigt weniger Speicherplatz und ist gut dokumentiert, das einzige was fehlt sind noch die Nutzer.


Typst ausprobiert

 Das Textsatzsystem LaTeX ist in der wissenschaftlichen Community zum Quasi Standard aufgestiegen. 98% aller Dokumente in der Informatik, Mathematik und Physik werden mit diesem Tool formatiert. Durch GUI Frontends wie Overleaf und Lyx findet LaTeX zunehmend auch in den Geisteswissenschaften Anklang. Leider hat LaTeX mehrere Nachteile, wie dass die Installation mehrere Gigabyte an Speicher benötigt, dass es historisch gesehen sehr viele Packages gibt und das die Kernsoftware, die TeX Engine, in einer heute unüblichen Programmiersprache erstellt wurde.

Eine mögliche Alternative ist Typst, welche in 2023 erstmals vorgestellt wurde. Die aktuelle Version ist noch etwas unausgereift, man kann damit aber bereits PDF Dokumente erzeugen. Nach dem Download der nur 16 Megabyte großen ausführbaren Datei von der Website des Projekts ist das erste was auffällt die hohe Geschwindigkeit. Anders als bei pdflatex und speziell bei lualatex wird nicht jede Seite des Dokuments einzeln formatiert, sondern das fertige PDF file steht quasi sofort bereit wenn man typst auf die Input Datei anwendet. Die Syntax ist ähnlich wie bei LaTex, es gibt also eine Trennung zwischen Inhalt und Layout. Defaultmäßig werden neue Dokumente im "Libertinus Serif" Font gesetzt, was man aber ändern kann auf „Nimbus Roman“ oder "New Computer Modern". Hier ist ein Beispieldokument für ein 2 spaltiges Dokument inkl. Float-Abbildung. Es wird in das PDF Format übersetzt mit ./typst compile hello.typ.

Ach ja, es gibt mehrere kleinere bugs in typst. zum einen ist die Überschrift nicht mittig und zweitens ist der optische Randausgleich im zweispalten Layout im unteren Bereich nicht verfügbar. Ob man diese Probleme durch andere Parameter lösen kann ist unklar. Im Zweifel muss man damit leben. Das heißt anders als LaTeX wurde typst eben nicht über Jahre hinweg verbessert sondern das Projekt befindet sich noch in einem frühen Stadium. Was aber zumindest funktioniert sind die Basics des Textsatzes wie Tabellen, Seitennummerierung, Blocksatz und Silbentrennung.

Vielleicht noch ein kleiner Hinweis wie der Umstieg von LaTeX auf Typst etwas gefälliger verläuft. Am besten beginnt man die Reise damit, dass man "apt remove texlive-*" eingibt, also das bisherige Textsatzsystem auf der Festplatte löscht. Dadurch gewinnt man Speicherplatz um etwas neues zu verwenden. 

#set page(
  paper: "a4",
  margin: (x: 2cm, y: 2cm,bottom: 3cm,),
  numbering: "1",
  columns: 2,
)

#set par(
  justify: true,
  spacing: 0.65em,
  first-line-indent: 1em,
)
#set text(
  // font: "New Computer Modern",
  font: "Nimbus Roman",
  size: 11pt
)
#title[
  Example typst document
]

= chapter1

This is a text.

- item
- item
- item

This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. 

This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. 

The equation $Q = rho A v + C$ defines the glacial flow rate.

$ v := vec(x_1, x_2, x_3) $

#figure(
  image("zk.webp", width: 80%),
  caption: [a picture with a Zettelkasten],
  placement: auto,
) <zk>