Skip to main content
DocLang ist ein offenes Dokumentformat, das für KI-Systeme und nicht für Menschen oder Drucker konzipiert wurde. Es ist das Ausgabeformat, das wir für FineParser empfehlen.

Was DocLang ist

Die meisten Dokumentformate wurden für die Darstellung konzipiert. PDF beschreibt, wo Pixel gezeichnet werden, und HTML teilt einem Browser mit, wie eine Seite zu layouten ist – doch keines von beiden sagt einem Sprachmodell, was ein Dokument enthält. Parser, die solche Formate für KI-Zwecke konvertieren, raten am Ende die Lesereihenfolge, reduzieren Tabellen auf Zeichenketten und verlieren Abbildungen und Metadaten. DocLang ist ein eingeschränktes XML-Format, das für LLM-Tokenizer entwickelt wurde, sodass jedes Element genau einem Modell-Token entspricht. Jedes Element trägt eine semantische Rolle, die Koordinaten seines Begrenzungsrahmens und eine Position in der Lesereihenfolge; Tabellen behalten ihre vollständige Rasterstruktur. Es handelt sich um eine Spezifikation und nicht um ein Produkt: Jeder Parser kann sie erzeugen und jedes Werkzeug sie verarbeiten. Gegründet wurde die Arbeitsgruppe von IBM, NVIDIA, Red Hat, ABBYY, HumanSignal und Forgis; die Spezifikation wird unter Joint Development Foundation Projects als LF AI & Data-Projekt entwickelt.

Warum FineParser es ausgibt

Klartext lässt sich einem Modell günstig übergeben, weil dabei die Struktur wegfällt, während HTML und Markdown die Struktur zwar bewahren, aber viele Tokens für deren Beschreibung verbrauchen. DocLang erhält die Struktur zu einem Bruchteil der Kosten. Eine mit dem OTSL-Schema von DocLang kodierte Tabelle kommt mit fünf strukturellen Tokens aus, während das entsprechende HTML achtundzwanzig benötigt. DocLang legt außerdem für jede Art von Inhalt eine kanonische Darstellung fest, sodass jedes Werkzeug, das DocLang unterstützt, für dasselbe Dokument dieselbe Ausgabe erzeugt. Code, der für die Ausgabe von FineParser geschrieben wurde, funktioniert mit jedem anderen DocLang-Produzenten, und Ihre Dokumente bleiben portabel, falls Sie später den Parser wechseln.

Beispiel

Das folgende DocLang-Fragment beschreibt eine Überschrift und eine kleine Tabelle, jeweils mit dem zugehörigen Begrenzungsrahmen auf der Seite.
Die vier <location>-Elemente geben die Ecken des Begrenzungsrahmens an. Innerhalb der Tabelle leitet <ched/> eine Spaltenkopfzelle ein, <fcel/> eine Datenzelle, und <nl/> beendet die Zeile.

Dateien

FineParser schreibt DocLang als einzelne .doclang-Datei, die das Markup enthält. Die DocLang-Spezifikation definiert darüber hinaus ein .dclx-Archiv – ein ZIP-Paket, das das Markup zusammen mit extrahierten Bildern und weiteren Assets bündelt. Diese Form erzeugt FineParser jedoch nicht.

Weitere Informationen

Die Website doclang.ai bietet eine Projektübersicht und einen interaktiven Viewer. Die vollständige Spezifikation und das Referenz-Toolkit finden Sie im doclang-project-Repository auf GitHub, das zudem das Python-Paket doclang zum Validieren und Verpacken von DocLang-Dateien bereitstellt.