Teil 3 der RAG-Studienreihe: Automatisierte Chunks und XML – Vom PDF zum flexiblen RAG-System
Einleitung
In der vorangegangenen Studie mit dem Titel „Strukturierte Daten und intelligente Chunking-Strategien für RAG-Systeme“ stand das Thema Chunking im Mittelpunkt – also die Frage, wie große Textmengen sinnvoll in kleinere, verarbeitbare Einheiten für Retrieval-Augmented-Generation-(RAG-)Systeme zerlegt werden können. Dabei haben wir nicht nur zahlreiche Strategien und Methoden untersucht, sondern auch zentrale Problemfelder identifiziert: Unterschiedliche Ursprungsformate wie PDF, Word oder HTML liefern sehr uneinheitliche Ausgangsdaten; struktur-relevante Informationen gehen bei der Verarbeitung oft verloren; und viele bestehende Ansätze koppeln die Datenstruktur zu eng an ein konkretes Sprachmodell oder eine spezifische Anwendung.
Diese Studie geht nun einen Schritt weiter: Im Fokus steht die Entwicklung einer Lösung zur systematischen, modell-unabhängigen Datenstrukturierung. Wir zeigen, wie Inhalte unabhängig von der späteren Chunking-Strategie gespeichert werden können – und wie dafür ein ganzer Kosmos an spezialisierten Formaten und Formatschichten notwendig ist.
Zentrales Ziel ist es, eine strukturierte, aber chunk-neutrale Datenbasis zu schaffen, aus der sich beliebige Chunkings flexibel und regelbasiert erzeugen lassen – etwa Token-basiert für LLMs, absatzbasiert für didaktische Anwendungen oder semantisch für Fachportale. Diese Datenbasis wird durch zwei Schlüsselkonzepte getragen:
-
das Pivot-Format exHTML, das semantische Strukturen aus unstrukturierten Formaten wie PDF rekonstruiert, und
-
das darauf aufbauende ChunkML, das als neutraler Container für späteres Chunking dient.
Anhand des Beispiels PDF → exHTML → ChunkML zeigen wir detailliert, wie aus einem visuell geprägten, strukturell „flachen“ Format wie PDF eine vollständig rekonstruierbare, medienneutrale Inhaltsstruktur erzeugt werden kann – und wie daraus wiederum alle erdenklichen Ausgabeformate generiert werden können: von Markdown über JSON bis zu vollständig annotierten HTML-Dokumenten für Web-RAG-Systeme.
Unser Ansatz schafft damit nicht nur die technologische Grundlage für flexible und leistungsfähige RAG-Pipelines, sondern stellt auch sicher, dass Inhalte zukunftssicher, interoperabel und modell-agnostisch verwaltet werden können – unabhängig davon, welche LLMs oder Ausleitungssysteme in Zukunft zum Einsatz kommen.
Zusammenfassung
Automatisierte Datenaufbereitung am Beispiel von PDF
Diese Studie zeigt, wie unstrukturierte PDF-Dokumente automatisiert für die Nutzung in Retrieval-Augmented-Generation-(RAG-)Systemen aufbereitet werden können. Der Prozess beginnt mit einer feingranularen Layout-Analyse, bei der jedes Zeichen hinsichtlich Position, Schriftart und Format extrahiert wird. Daraus entsteht ein detailliertes Low-Level-Format, ergänzt durch eingebettete XMP-Metadaten (z. B. Autor, Titel, Schlagworte).
Im nächsten Schritt werden die PDFs in verschiedene Ausgabeformate transformiert:
-
PDF-Einzelseiten für wissenschaftliche Zitation
-
SVG (Pfad & Text) für visuelle und interaktive Anwendungen
-
Octpmlx-Format für zeilenbasierte Volltextsuche mit Positionsangaben
-
Match-Format für exakte Verortung von Treffern im Text
Diese Formate ermöglichen die positionsgenaue Rückverfolgbarkeit von Informationen und bilden die Grundlage für eine präzise semantische Verarbeitung.
Das Ziel ist die vollautomatische Erzeugung eines semantisch strukturierten Pivot-Formats (exHTML), das als Basis für weitere Transformationen dient – etwa Chunking, Metadaten-Anreicherung oder multimediale Ausleitungen.
Pivot-Format und Hubsystem
Im Zentrum der gesamten RAG-Pipeline steht ein zweistufiges Strukturmodell, das aus dem semantisch strukturierten Pivot-Format exHTML und dem darauf aufbauenden ChunkML-Format besteht. Diese Formate bilden gemeinsam die Grundlage für eine modulare, medienneutrale und zukunftsfähige Inhaltsverarbeitung – unabhängig vom Ausgangsformat, von der Zielplattform oder dem verwendeten Large Language Model (LLM).
exHTML: Das semantisch angereicherte Pivot-Format
Das exHTML-Format dient als zentrale Austauschstruktur nach der Layout- und Zeichenanalyse. Es überführt die aus PDFs gewonnenen Daten in eine HTML5-kompatible, logisch gegliederte Repräsentation, in der semantische Strukturelemente wie Absätze, Überschriften, Tabellen, Fußnoten, Referenzen und sogar visuelle Zonen explizit markiert sind. Dabei stehen weniger stilistische Informationen im Vordergrund, sondern funktionale, maschinenlesbare Strukturmerkmale.
Ziel dieses Formats ist es, aus visuell bestimmten Dokumenten (wie PDF oder InDesign) eine interpretierbare inhaltliche Struktur zu rekonstruieren, die sowohl für automatisierte Chunking-Prozesse als auch für die Publikation, Annotation oder semantische Suche genutzt werden kann.
Ein besonderer Vorteil von exHTML ist seine Rollenvielfalt:
-
Als semantisches Zwischenformat für die ChunkML-Generierung
-
Als Basis für zielgruppenspezifische Ausleitungen (PDF, EPUB, DOCX, HTML, H5P)
-
Als zentrale Struktur für Referenzierung, Metadatenanbindung und Annotation
-
Als Brücke zwischen „rohem“ Layout-Modell und logischer Inhaltsstruktur
ChunkML: Strukturierte Vorbereitung für das Chunking
Aus dem exHTML-Format wird das ChunkML erzeugt – ein auf HTML und XML basierendes, stark vereinfachtes Format zur chunk-neutralen Speicherung von Inhalten. Anders als klassische XML-Ausleitungen ist ChunkML nicht auf Präsentation, sondern auf strukturierte Zerlegbarkeit hin optimiert. Es enthält keine festen Chunks, sondern bildet eine logische Einheit von Dokumentinhalt, aus der – je nach Anwendungsfall – verschiedene Chunking-Strategien erzeugt werden können:
-
Token-basiert für LLMs wie GPT-4
-
Absatzzentriert für didaktische Anwendungen
-
Überschriftenbasiert für wissenschaftliche Retrieval-Systeme
-
Semantisch-dynamisch mit Hilfe von LLM-Annotation
Das Hub-System: Steuerzentrale und Orchestrierungskern
Sowohl exHTML als auch ChunkML werden im Hub-System gespeichert – einer XML-zentrierten Verarbeitungsumgebung, die alle Dokumente, Metadaten und Konfigurationsparameter zentral bündelt. Der gesamte Verarbeitungspfad ist deterministisch aufgebaut und beruht auf den folgenden Technologien:
-
XSLT: Transformation und Chunk-Erzeugung
-
XQuery: Abfrage, semantische Filterung, Textsuche
-
XProc: Orchestrierung von Verarbeitungsworkflows
-
Python: Tokenisierung, Preprocessing, Dateiverwaltung, Modell-Integration
Das Hub-System sorgt nicht nur für vollständige Transparenz und Reproduzierbarkeit, sondern auch für eine hohe technologische Offenheit: Es kann mit verschiedenen Vektorformaten, LLMs, Datenbanken und Zielsystemen gekoppelt werden. Chunking-Strategien, Ausgabeformate und semantische Anreicherungen sind konfigurierbar, ohne dass das Ursprungsdokument verändert werden muss.
Zukunftssicherheit und Flexibilität
Der modulare Aufbau macht das Hub-System robust gegenüber technologischen Veränderungen:
-
Neue LLMs mit anderen Token-Limits? → Nur Chunking-Strategie ändern
-
Wechsel von JSON zu YAML oder Markdown? → Nur Serialisierungsformat anpassen
-
Neue Zielplattformen? → Transformation per XSLT aus dem gleichen Hub
Durch die Trennung von Inhalt, Struktur, Verarbeitung und Modellanbindung entsteht ein skalierbares, kontrollierbares Framework für KI-gestützte Inhaltsbereitstellung – sowohl im wissenschaftlichen als auch im kommerziellen Kontext.
Ausblick
Content Delivery Service (CDS) als nächste Ausbaustufe
Der nächste Teil der RAG-Studienreihe widmet sich der Implementierung eines Content Delivery Services (CDS), der als intelligente Vermittlungsschicht zwischen den strukturierten Formaten der RAG-Pipeline (z. B. ChunkML, RDF) und den nachgelagerten Komponenten wie LLMs, Embedding-Systemen oder Chatbots fungiert.
Der CDS soll eine regelbasierte Bereitstellung von Inhalten ermöglichen, die exakt auf die Anforderungen der jeweiligen Anwendung zugeschnitten ist – granular, kontextbewusst und formatneutral. Dabei wird er sowohl als technische Zugriffsschicht als auch als semantisches Filtersystem eingesetzt:
-
Über RDF-Metadaten (z. B. dc:title, schema:about) können Inhalte gezielt ausgewählt, kombiniert und gewichtet werden.
-
SPARQL-Endpunkte erlauben komplexe Anfragen auf semantischer Ebene – z. B. für themenspezifische Antwortkontexte, Quellenverweise oder Zitierketten.
-
Inhalte werden bei Bedarf in Containern verpackt (z. B. iiRDS, OCF), um Metadaten, Originaldaten und strukturierte Chunks gebündelt auszuliefern.
Ein besonderes Augenmerk gilt der Entkopplung der Architektur: Der CDS verwaltet Inhalte unabhängig von ihrer konkreten Nutzung – sei es im Retrieval, im Prompting oder in der Web-Ausgabe. Dies schafft die Voraussetzung für skalierbare, modulare Systeme, in denen mehrere Bots, Interfaces oder LLMs gleichzeitig auf eine konsistente Wissensbasis zugreifen können.
Die nächste Studie wird untersuchen, wie ein solcher CDS technisch umgesetzt, in bestehende XML-Hub-Systeme integriert und in verschiedenen Anwendungsszenarien – etwa Fachportale, Publikationssysteme oder Multi-Agent-Umgebungen – produktiv eingesetzt werden kann.
1 Vom PDF zum ChunkML
1.1 Struktur und Layout-Modell von PDF-Dokumenten
PDF-Dateien gehören zu den am weitesten verbreiteten Dokumentformaten im digitalen Publikationswesen. Ihr wesentlicher Vorteil liegt in der layout-getreuen Darstellung von Inhalten – unabhängig von Plattform, Software oder Ausgabegerät. Dieser Vorteil ist zugleich eine Herausforderung: Die visuelle Präsentation ersetzt eine logische Inhaltsstruktur, was eine maschinelle Verarbeitung, insbesondere im Kontext von Retrieval-Augmented Generation (RAG), erschwert.
Im Gegensatz zu Formaten wie HTML oder XML, die semantische und hierarchische Strukturen (z. B. Überschriften, Absätze, Listen-Elemente) explizit auszeichnen, ist die interne Struktur eines PDF-Dokuments flach und auf die visuelle Positionierung reduziert. Für eine analytische Weiterverarbeitung muss daher eine Layout-Analyse auf niedrigster Ebene erfolgen, bei der alle darstellungsrelevanten Informationen extrahiert werden: Position, Textfluss, Schriftart, Stilvarianten und Zeichenabfolge.
1.1.1 Low-Level-Layout-Format
Ein typisches Ergebnis einer solchen Analyse ist das sogenannte „Primärformat“ oder „Low-Level-Layout-Format“, wie es beispielsweise durch OCR- oder Parsing-Engines wie Octopus erzeugt wird. Dieses Format bildet die Ausgangsschicht für alle weiteren Verarbeitungs- und Chunking-Schritte und lässt sich exemplarisch an folgendem Originalfragment illustrieren:
<block bbox="70.944 76.489978 156.5 97.14498">
<line bbox="70.944 76.489978 156.5 97.14498" wmode="0" dir="1 0">
<font name="BundesSansOffice-Bold" size="15">
<char quad="70.944 78.24498 78.444 78.24498 70.944 96.24498 78.444 96.24498"
x="70.944" y="92.53998" color="#000000" c="2"/>
</font>
<font name="Arial-BoldMT" size="15">
<char quad="78.504 76.489978 82.674 76.489978 78.504 97.14498 82.674 97.14498"
x="78.504" y="92.53998" color="#000000" c=" "/>
</font>
<font name="BundesSansOffice-Bold" size="15">
<char quad="92.544 78.24498 105.264 78.24498 92.544 96.24498 105.264 96.24498"
x="92.544" y="92.53998" color="#000000" c="M"/>
<char quad="105.264 78.24498 112.449 78.24498 105.264 96.24498 112.449 96.24498"
x="105.264" y="92.53998" color="#000000" c="e"/>
<char quad="112.449 78.24498 117.909 78.24498 112.449 96.24498 117.909 96.24498"
x="112.449" y="92.53998" color="#000000" c="t"/>
<char quad="117.969 78.24498 126.114 78.24498 117.969 96.24498 126.114 96.24498"
x="117.969" y="92.53998" color="#000000" c="h"/>
<char quad="126.114 78.24498 134.019 78.24498 126.114 96.24498 134.019 96.24498"
x="126.114" y="92.53998" color="#000000" c="o"/>
<char quad="134.019 78.24498 142.119 78.24498 134.019 96.24498 142.119 96.24498"
x="134.019" y="92.53998" color="#000000" c="d"/>
<char quad="142.119 78.24498 145.929 78.24498 142.119 96.24498 145.929 96.24498"
x="142.119" y="92.53998" color="#000000" c="i"/>
<char quad="145.929 78.24498 153.474 78.24498 145.929 96.24498 153.474 96.24498"
x="145.929" y="92.53998" color="#000000" c="k"/>
<char quad="153.38 78.24498 156.5 78.24498 153.38 96.24498 156.5 96.24498"
x="153.38" y="92.53998" color="#000000" c=" "/>
</font>
</line>
</block>
Code-Ausschnitt aus: PDF2ChunkML\02_PDF_Raw\EingangsBeispiel_char.xml.
Dieser Datenblock stammt aus Seite 9 des analysierten Dokuments. Die enthaltenen Informationen lassen sich wie folgt interpretieren:
-
<block>: Repräsentiert einen Layout-Block mit einer Bounding Box (bbox) – hier konkret ein rechteckiger Bereich auf der Seite (Koordinaten x0, y0, x1, y1).
-
<line>: Beschreibt eine Textzeile innerhalb des Blocks mit Textrichtung (dir="1 0") und Schreibmodus (wmode="0", d.h. horizontal).
-
<font>: Definiert einen Schriftbereich mit Namen und Schriftgröße. Innerhalb desselben Fonts werden Zeichen (<char>) gruppiert.
-
<char>: Jedes Zeichen wird einzeln mit folgenden Merkmalen beschrieben:
-
quad: Vier Koordinatenpunkte für das Zeichenquadrat (Polygon),
-
x, y: Referenzposition des Zeichens (oft baseline links unten),
-
color: Farbinformation im hexadezimalen RGB-Format,
-
c: Der eigentliche Zeichencode (z. B. "M" oder "e").
-
Das Resultat dieser detaillierten Zeichenkette ist die visuelle Darstellung des Textstrings „2 Methodik“ – allerdings nicht als Wort oder semantische Einheit, sondern als Zusammenfügung einzelner Glyphen mit präziser Positionierung.
1.1.2 Vom Layout-Modell zum Verarbeitungskontext: Verlust durch Plaintext-Extraktion
Das Layout-Modell stellt für unsere Arbeit an Octopus lediglich ein technisches Rohformat dar – eine niedrigschwellige Repräsentation der PDF-Inhalte auf Zeichen- und Layout-Ebene. Es enthält sämtliche für die maschinelle Rekonstruktion von Struktur und Kontext potenziell relevanten Informationen, darunter:
-
Seitennummer und exakte Position (→ Rekonstruktion von Lesereihenfolge)
-
Font-Typen und -Größen (→ Unterscheidung von Überschriften, Fließtext, Fußnoten)
-
Textausrichtung und Bounding Boxes (→ Layout-Analyse, z. B. Spalten, Tabellen)
-
Zeichenbasierte Interpunktion, Abstände und Zeichenketten (→ Formel-Erkennung, Trennung von Wörtern/Sätzen)
Trotz dieser inhaltlichen Dichte erfolgt in der Praxis der meisten KI-basierten Systeme ein drastischer Reduktionsschritt: Die Extraktion des sogenannten „Plaintext“.
Definition 1.1
|
---|
Plaintext-Extraktion: Der systematische Informationsverlust Unter Plaintext versteht man eine reine Textdarstellung ohne Layout-, Stil- oder Strukturinformationen. In den gängigen PDF-Parsern und OCR-Werkzeugen wird aus dem Rohformat lediglich die Zeichenkette extrahiert – also eine Aneinanderreihung von Zeichen, idealerweise in der korrekten Lesereihenfolge. Alle weiteren Merkmale wie Seitenkontext, visuelle Gliederung, semantische Blöcke oder typografische Hinweise gehen dabei vollständig verloren. |
Beispielhaft wird aus dem vorher dargestellten Code-Block:
<font name="BundesSansOffice-Bold" size="15">
<char ... c="2"/>
</font>
...
<char ... c="M"/>
<char ... c="e"/>
...
<char ... c="k"/>
lediglich der String:
2 Methodik
extrahiert. Während dieser Text aus menschlicher Sicht problemlos lesbar ist, fehlt dem maschinellen System jegliche Kontextualisierung:
-
Wo auf der Seite befand sich dieser Text?
-
War es eine Überschrift, ein Listenpunkt oder ein Absatzbeginn?
-
Wie lautet der Zusammenhang zur vorherigen/nächsten Seite?
-
Gibt es visuelle Hinweise auf semantische Zugehörigkeit (z. B. Fettung, Einrückung, Hervorhebung)?
Diese Reduktion stellt insbesondere im Bereich der Retrieval-Augmented Generation (RAG) ein gravierendes Problem dar, da für die gezielte Generierung kontextbezogener Antworten strukturelle Hinweise von zentraler Bedeutung sind. Die rein textuelle Repräsentation ist häufig nicht ausreichend, um komplexe Relationen wie Verweise, Gliederungen oder Argumentationslinien zu rekonstruieren.
Trotz der Betonung des strukturerhaltenden Layout-Modells bietet das von uns eingesetzte Framework Octopus selbstverständlich auch eine Möglichkeit zur Plaintext-Extraktion. Diese kann – je nach Anwendung – ergänzend eingesetzt werden, etwa zur einfachen Preview oder zum Vergleich mit strukturverlustbehafteten Standardverfahren.
Ein konkreter Anwendungsfall ist in der Datei PDF2ChunkML\02_PDF_Raw\EingangsBeispiel_char.xml dokumentiert.
1.2 Metadaten als strukturierte Kontextschicht im PDF
Neben der Layout-Struktur enthält ein PDF-Dokument in der Regel auch eine zusätzliche Metadatenebene, die unabhängig vom sichtbaren Inhalt Informationen über das Dokument selbst bereitstellt. Diese Metadaten sind unter anderem im sogenannten XMP-Standard (eXtensible Metadata Platform) gespeichert, der von Adobe entwickelt und seit PDF 1.4 Bestandteil des ISO-Standards ist (heute ISO 16684-1).
Die XMP-Metadaten werden direkt im PDF eingebettet, meist im Metadata-Objekt innerhalb des Datei-Headers. Sie liegen im RDF/XML-Format vor und folgen einem standardisierten Namensraummodell. Ein typisches Beispiel aus unserer Pipeline zeigt den Inhalt der Datei PDF2ChunkML\04_PDF_meta\EingangsBeispiel_metadata.xml:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.1-c001">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
<xmp:CreateDate>2023-08-02T13:45:24+02:00</xmp:CreateDate>
<xmp:ModifyDate>2023-08-03T13:38:53+02:00</xmp:ModifyDate>
<dc:title>
<rdf:Alt><rdf:li xml:lang="x-default">Digitalisierung und ökologische Nachhaltigkeit in Unternehmen</rdf:li></rdf:Alt>
</dc:title>
<dc:creator>
<rdf:Bag><rdf:li>Bundesnetzagentur</rdf:li></rdf:Bag>
</dc:creator>
<pdf:Keywords>Digitalisierung … Großunternehmen Stand: August 2023</pdf:Keywords>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
Wesentliche Informationskategorien in der XMP-Struktur:
Die XMP-Metadaten lassen sich in mehrere semantisch relevante Klassen unterteilen:
-
Erstellungs- und Bearbeitungsdaten,
z. B. xmp:CreateDate, xmp:ModifyDate, xmpMM:DocumentID, xmpMM:InstanceID – nützlich für Versionierung und Änderungsverfolgung. -
Dokumentidentifikation,
z. B. dc:title, dc:description, dc:format, dc:creator – zur eindeutigen Beschreibung des Inhalts und Urhebers. -
Inhaltsklassifikation,
z. B. dc:subject, pdf:Keywords – zur thematischen Einordnung und Verschlagwortung.
Diese Daten sind hoch strukturiert und eignen sich ideal für die Anreicherung von Chunking-Ergebnissen mit Kontextinformationen. In unserer RAG-Pipeline werden sie z. B. in RDF-basierte Metadatenobjekte überführt und mit den jeweiligen Chunks verknüpft.
1.3 Automatisierte Seitenextraktion und Mehrformat-Generierung
Im Rahmen unserer RAG-gestützten Dokumentanalyse werden sämtliche PDF-Dateien vorverarbeitet, indem sie vollautomatisch in Einzelseiten segmentiert und in mehreren Ausgabeformaten gespeichert werden. Dieser Prozess dient dazu, die vielfältigen Anforderungen unterschiedlicher Anwendungsbereiche abzudecken – von wissenschaftlicher Zitierfähigkeit bis hin zur visuell präzisen Textadressierung im Browser-Kontext.

Am Beispiel von Seite 9 der Ausgangsdatei wurde der Ablauf exemplarisch umgesetzt. Die resultierenden Dateien befinden sich unter folgenden Pfaden:
-
Einzelseiten-PDF:
05_PDF_split\EingangsBeispiel_009.pdf -
SVG mit Pfaden (Vektoren):
05_PDF_SVG_path\EingangsBeispiel_path_009.svg -
SVG mit eingebetteten Textobjekten:
05_PDF_SVG_text\EingangsBeispiel_text_009.svg
Verarbeitungsschritte:
-
Segmentierung: Das PDF wird in einzelne Seiten aufgesplittet (Seitenextraktion).
-
Formatkonvertierung:
Die Einzelseite wird im Originalformat (PDF) erhalten.
Zusätzlich erfolgt die Konvertierung in zwei SVG-Varianten:-
eine pfadbasierte Darstellung (grafisch, keine Textelemente),
-
eine textbasierte Darstellung (mit <text>-Knoten für jedes Zeichen/Wort).
-
1.3.1 Anwendung der Augabeformate in RAG
Diese Mehrformat-Strategie ist zentral für verschiedene Nutzungsziele im Kontext von Retrieval-Augmented Generation (RAG):
Formattyp |
Funktion |
Anwendung |
PDF (Einzelseite) |
Belegdokument |
|
SVG mit Pfaden |
Layout-Replikation |
|
SVG mit Texten |
Interaktive Suche |
|
Der Zugriff auf diese Formate erfolgt regelbasiert innerhalb der RAG-Pipeline – je nach Zielsystem (z. B. Fachportal, Verlagssystem, Chatbot mit Antwortbelegen) werden die entsprechenden Ausgabeformate referenziert oder ausgeliefert.
Definition 1.2
|
|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SVG – Pfade vs. Texte
Die pfadbasierte SVG-Version sichert die visuelle Authentizität, etwa für wissenschaftliche Reproduktionen oder Druckabbildungen. Die textbasierte SVG hingegen erlaubt eine adressierbare Interaktion, etwa zur Markierung von Suchtreffern in RAG-Systemen. |
1.3.2 Bedeutung für RAG-Systeme
Durch diese Strategie wird jede Antwort, die das RAG-System liefert, auf Wunsch mit einer visuell identifizierbaren Belegseite verknüpft. Diese Referenzierbarkeit ist ein zentraler Baustein für Transparenz, Revisionssicherheit und wissenschaftliche Anschlussfähigkeit. Gleichzeitig ermöglichen die SVG-Formate eine präzise Einbindung in Webinterfaces, z. B. durch semantische Verlinkung einzelner Textsegmente mit Chunk-IDs, Retrieval-Hits oder Annotationen.
1.4 Zeilenorientierte Textextraktion mit Positionsbezug: Das Octpmlx-Format
Um eine zuverlässige, positionsbezogene Volltextsuche auf Basis von PDF-Dokumenten zu ermöglichen, wird das ursprüngliche Zeichenformat zu einem zeilenbasierten Suchformat aggregiert. Dieses sogenannte Octpmlx-Format (Octopus PDF Markup Language X) bildet eine intermediäre Repräsentation, die sowohl die Inhalte aller Seiten als auch ihre exakte Positionierung innerhalb des Dokuments abbildet – ohne dabei auf strukturierende Elemente wie Überschriften, Absätze oder logische Sektionen Rücksicht zu nehmen.
Die Zeilen werden aus dem Layout-Modell generiert und in strukturierter Form in einer XML-Datei gespeichert. Die Daten des Beispiels stammen aus PDF2ChunkML\06_PDF_octpmlx\EingangsBeispiel_octpmlx.xml, und repräsentieren exemplarisch Seite 9 des Dokuments. Ein typischer Ausschnitt lautet:
<line _lnr="150" _icount="6" _xifLoc="18-23" _xifText=" |2| |Met|hodik| |" x="7094.4" y="80808"
font-family="BundesSerifOffice" font-size="9">
<inline _items="2-2" _xifLoc="19-19" font-family="BundesSansOffice-Bold"
font-size="15" font-weight="bold">2</inline>
<inline _items="4-6" _xifLoc="21-23" font-family="BundesSansOffice-Bold"
font-size="15" font-weight="bold">Methodik </inline>
</line>
1.4.1 Aufbau des Octpmlx-Formats
Die wesentlichen Strukturmerkmale lassen sich wie folgt beschreiben:
Element / Attribut |
Bedeutung |
<line> |
Ein logisches Textelement auf Zeilenebene, mit eindeutiger ID (_lnr). |
x, y |
Absolute Position der Zeile auf der Seite in typografischen Einheiten. |
_xifText |
Die zeichenweise rekonstruierte Originalzeile; das |-Zeichen signalisiert die Unterteilung im Raw-Format. |
<inline> |
Unterelemente zur Darstellung einzelner Inline-Textobjekte (z. B. ein fett gesetztes Wort). |
1.4.2 Anwendungszweck von Octpmlx: Suche + Position
Das Octpmlx-Format erfüllt zwei zentrale Funktionen:
-
Volltextindexierung
Alle Zeilen eines Dokuments sind sequenziell und durchsuchbar gespeichert – unabhängig von Seitenumbrüchen, Spalten oder Absatzgrenzen. Dadurch lassen sich Textfragmente zuverlässig in großen PDF-Korpora auffinden. -
Positionsrückverfolgung
Durch die Koordinaten (x, y) kann jede Fundstelle in der Originalseite oder einem dazugehörigen SVG-Rendering genau lokalisiert werden. Dies erlaubt z. B. das visuelle Hervorheben von Suchtreffern in Browser-Interfaces oder die Generierung von Deep Links zu bestimmten Textpassagen.
Beispielanalyse: Das Wort „Methodik“
Das Wort „Methodik“ befindet sich in der oben gezeigten Zeile lnr="150":
<inline ...>Methodik </inline>
Die Inline-Darstellung gibt nicht nur das Wort selbst wieder, sondern zeigt auch, dass es:
-
in fetter Schrift (bold) und mit Schriftgröße 15 pt ausgezeichnet ist,
-
in der Nähe des Zeichens „2“ steht – ebenfalls fett, was auf eine Überschrift oder Abschnittsmarkierung schließen lässt,
-
sich auf Position x=7094.4, y=80808 innerhalb von Seite 9 befindet.
1.4.3 Bedeutung für RAG-Systeme
Das Octpmlx-Format bildet die textuelle Infrastruktur für die Suche in PDF-basierten RAG-Systemen. Es ermöglicht:
-
präzises Retrieval von Wörtern oder Phrasen,
-
Highlighting der Fundstellen in SVG-Dokumenten,
-
Verlinkung der Suchergebnisse mit Originalpositionen (z. B. zur Generierung von Belegseiten oder automatisierten Zitaten)
-
und die Definition sinnvoller Chunk-Grenzen basierend auf Zeilenverlauf und Position.
Damit schafft das Format die Brücke zwischen inhaltsgetriebener Suche und visuell orientierter Rückverankerung, ein essenzieller Bestandteil transparenter, belegbarer KI-Ausgaben.
1.5 Positionsgenaue Volltextsuche: Das Match-Format
Zur Ergänzung der reinen Layout-Daten verwenden wir für die inhaltlich-positionelle Volltextsuche ein spezialisiertes XML-Format, das exakt beschreibt, wo auf welcher Seite ein Suchbegriff gefunden wurde. Dieses Format ist das Resultat einer regulären Suchoperation innerhalb der durch Octopus aufbereiteten PDF-Seiten und stellt somit ein funktionales Bindeglied zwischen Textinhalt, visuellem Layout (SVG) und semantischer Struktur (HTML/XML) dar.
Das verwendete Beispiel basiert auf der Datei PDF2ChunkML\07_PDF_match\EingangsBeispiel_match.xml und enthält das Ergebnis einer Suche nach dem Wort „wirtschaft“, die 86 Treffer geliefert hat.
Im Folgenden wird ein konkreter Code-Auszug vorgestellt und erklärt:
<matches count="86" regex="wirtschaft" flags="si">
<match start="1263" length="10" id="m1" tnr1="44" cpos1="60" tnr2="44" cpos2="69" lnrs1="45-47" lnrs2="45-47">
<matchText>Wirtschaft</matchText>
<matchPrecedingText>Die digitale und ökologisch nachhaltige Transformation von </matchPrecedingText>
<matchFollowingText> und Gesellschaft ist eine der zentralen</matchFollowingText>
<matchLocator id="m1">
<matchBegin page="7" lineNr="45" itemNr="25"
itemTextPre="on " itemText="W" itemTextPost="irt"
y="11270" x="32950.56"
xpre="31607.952" xpost="33909.708"
xcorr="0"/>
<matchEnd page="7" lineNr="45" itemNr="30"
itemTextPre="f" itemText="t " itemTextPost="und G"
y="11270" x="37110.852"
xpre="36776.196" xpost="37673.592"
xcorr="-281.37"/>
</matchLocator>
</match>
</matches>
1.5.1 Struktur und Bedeutung der Elemente
Element / Attribut |
Beschreibung |
<matches> |
Container-Element für alle Treffer einer regulären Suchanfrage (count="86" Treffer für regex="wirtschaft"). |
<match> |
Einzelner Treffer mit eindeutiger ID, Start- und Endposition (in Text und Dokument). |
start / length |
Byte-Offset und Länge im linearen Dokument-Textstream. |
tnr1, cpos1, tnr2, cpos2 |
Token- und Zeichenpositionen im Suchindex. |
lnrs1, lnrs2 |
Zeilenspanne des Fundes (hier von Zeile 45 bis 47 auf Seite 7). |
<matchText> |
Exakter gefundener Textstring. |
<matchPrecedingText> / <matchFollowingText> |
Kontext-Text für semantische Gewichtung, Vorschau, Snippets, etc. |
<matchLocator> |
Detaillierte Lokalisierung des Treffers in Koordinaten. |
page |
Seitennummer des Treffers. |
lineNr, itemNr |
Position in der Zeile bzw. im Zeichen-Token-Fluss. |
itemTextPre, itemText, itemTextPost |
Einzelzeichen vor, im und nach dem Fund – wichtig für OCR-Korrektur oder semantisches Matching. |
x, y |
Koordinaten auf der Seite (1/1000 Punktmaß). |
xpre, xpost |
Start- und Endkoordinaten des Tokens, mit Korrekturinformationen. |
xcorr |
Korrekturwert zur Verbesserung der SVG-Darstellung bei nichtlinearem Zeichenfluss. |
1.5.2 Praktischer Nutzen in der RAG-Pipeline
Durch diese feingranulare Positionsinformation lassen sich in der RAG-Pipeline u. a.:
-
SVG-Dokumente mit hervorgehobenen Treffern erzeugen (über Koordinaten-Referenzierung),
-
Chunk-Bewertungen gewichten, je nachdem ob ein Treffer z. B. in einer Überschrift, Tabelle oder Fußnote vorkommt,
-
Verlinkungen zu Originalstellen im PDF erzeugen (z. B. Deep Links in einem Viewer).
Zudem lässt sich dieses Format programmatisch mit den HTML-/XML-Strukturen aus Octopus abgleichen, was eine semantische Kontextualisierung des Fundortes erlaubt. So kann ein Treffer, der in einem <h1>-Tag vorkommt, höher gewichtet oder als „strukturell wichtig“ markiert werden.
1.5.3 Generierung über eine performante XML-Datenbank
Die im Folgenden beschriebene Suchfunktionalität basiert nicht auf klassischen String-Durchläufen oder externen Indizes, sondern wird direkt aus einer nativ XML-basierten Datenbank generiert. Diese Datenbank wird dynamisch mit den zeilenbasierten Octpmlx-Dokumenten befüllt. Mithilfe von XQuery-Abfragen erfolgt die Suche hoch performant, da:
-
jede Zeile eines jeden Dokuments strukturiert vorliegt,
-
Suchoperationen vollständig innerhalb der Datenbank durchgeführt werden (keine Datei-Zugriffe),
-
und Trefferdaten direkt in einem präzisen Match-XML-Format ausgegeben werden.
Dieser Ansatz erlaubt es, in Echtzeit über sehr große Korpora hinweg zu suchen – inklusive Rückverweis auf exakte Positionen innerhalb der Originaldokumente (PDF, SVG, HTML). Dabei sind dokumentübergreifende Volltextsuchen ebenso möglich wie semantisch fokussierte Teilmengen-Suchen (z. B. nur Überschriften, Fußnoten, Tabellen, etc.).
1.6 exHTML als zentrale Strukturquelle für Chunking (Vorläufer zu ChunkML)
Nach der Extraktion von Zeichen, Layout-Daten und positionsbasierten Treffern liegt nun mit exHTML (exchange HTML) ein Format vor, das als strukturierter Zwischenschritt zwischen Eingangsformat und finaler Chunk-Repräsentation dient. exHTML ist nicht das eigentliche Chunking-Format – diese Rolle übernimmt das nachfolgende ChunkML –, bildet aber die inhaltlich-semantische Grundlage, auf der das Chunking durchgeführt wird.
Die strukturierte Datei zu diesem Abschnitt befindet sich unter PDF2ChunkML\08_PDF_XML-Strukturformate\EingangsBeispiel_match_exhtml.zip.
1.6.1 Was ist exHTML?
exHTML ist ein eigens entwickeltes, HTML5-kompatibles Austauschformat der Octopus-Plattform, das als semantisch angereicherte Strukturquelle für die Weiterverarbeitung dient. Es standardisiert Inhalte aus unterschiedlichsten Quellformaten (z. B. PDF, DOCX, EPUB, XLSX, HTML) und bereitet sie einheitlich, logisch gegliedert und medienneutral auf.
Durch seine Nähe zu HTML5 bietet exHTML maximale Anschlussfähigkeit an Webtechnologien und semantische XML-Standards. Es ermöglicht:
-
die strukturelle Erkennung von Textbereichen (z. B. Überschriften, Absätze, Tabellen),
-
die semantische Annotation durch Klassen, IDs oder data-*-Attribute,
-
die Aggregation komplexer Inhaltsbereiche (z. B. Listen, Verweise, Layout-Zonen).
1.6.2 exHTML als Ausgangspunkt für medienneutrale Ausleitungen
Neben seiner Rolle als strukturierte Quelle für das spätere Chunking (→ ChunkML), übernimmt exHTML im Octopus-Framework noch eine weitere Schlüsselrolle: Es ist zugleich das Eingangsformat für die medienneutrale Generierung zahlreicher Ausgabeformate – insbesondere PDF, DOCX, EPUB oder HTML5-Module.
Diese Doppelfunktion – als semantischer Vorverarbeitungskern und Ausgabeschnittstelle – macht exHTML zu einem Pivot-Format im klassischen Crossmedia-Sinn: Es ist einmal erzeugt, mehrfach verwendbar, und kann je nach Anwendungsszenario zielgerichtet konfiguriert werden.
Use Case: Ausleitung kapitelweiser Inhalte
Ein typischer Anwendungsfall ergibt sich z. B. im wissenschaftlichen Verlagswesen:
Ein RAG-System soll mit dem gesamten Back-Katalog eines Verlages gespeist werden. Die Zielgruppe sind Wissenschaftler, die kapitelweise Inhalte referenzieren, zitieren oder weiterverarbeiten möchten.
In diesem Szenario lassen sich aus dem exHTML-Format folgende zielgruppengerechte Ausleitungen erzeugen:
Ausgabeformat |
Zielsetzung |
Besonderheit |
DOCX (Microsoft Word) |
Nutzerfreundliche Weiterverarbeitung durch Wissenschaftler |
Kapitelweise exportierbar, vollständig strukturiert, zitierfähig |
|
Einheitliche, formatierte Ansicht der Originalinhalte |
Plattform- und quellformatunabhängiges Design, z. B. Corporate Layout |
HTML / EPUB |
Online-Leseansicht, mobile Ausgabe |
Responsive, Chunk-basiert, interaktiv verlinkbar |
H5P |
Interaktive Lerneinheiten |
Direkte Transformation von strukturierten Abschnitten (z. B. Übungen, Definitionen) |
Da exHTML bereits die logischen und semantischen Struktur-Elemente enthält (z. B. <section>, <h1>, <table>), können diese in den Zielmedien gezielt gerendert oder ausgeblendet werden. Kapitelmarken, Metadaten oder Chunk-Grenzen lassen sich bei der Ausleitung programmgesteuert berücksichtigen.
1.6.3 Vorteile dieser Architektur
Die Nutzung von exHTML als Ausleitungskern bringt folgende strategische Vorteile mit sich:
-
Einheitlichkeit: Alle Ausleitungen (PDF, DOCX, etc.) basieren auf einem gemeinsamen semantischen Ausgangspunkt – unabhängig vom Ursprungsformat (z. B. PDF, DOCX, EPUB).
-
Zielgruppenorientierung: Inhalte können rollenbasiert ausgegeben werden – z. B. kapitelweise DOCX für Wissenschaftler, kompaktes PDF für Reviews.
-
Automatisierung: Die Ausleitung erfolgt regelbasiert und lässt sich vollständig automatisieren – etwa bei Neuerscheinungen oder Updates.
-
Design-Kohärenz: Besonders bei PDF-Ausleitungen kann ein verlags-eigenes Layout (z. B. Templates, Farben, Schriften) global durchgesetzt werden – unabhängig von der ursprünglichen Gestaltung der Quellformate.
1.6.4 Warum exHTML für das Chunking zentral ist
Während andere Formate (PDF-Rohdaten, Octpmlx, Match-Format) vor allem auf Layout, Zeichenfolge oder Position fokussiert waren, stellt exHTML eine semantisch strukturierte Repräsentation dar, in der:
-
logische Gliederungseinheiten (z. B. <section>, <article>, <figure>, <table>) klar ausgewiesen sind,
-
hierarchische Überschriften (<h1> bis <h6>) eine semantische Gewichtung ermöglichen,
-
und strukturgebende HTML-Elemente (z. B. <ul>, <div>, <blockquote>, <aside>) eine Grundlage für regelbasiertes Chunking bieten.
Diese Elemente dienen als Ansatzpunkte für die spätere Transformation in ChunkML – dem Format, das explizit für das spätere Chunking dient.
2 ChunkML: Chunk-neutrale Strukturierung für RAG-Systeme
In der Praxis der automatisierten Medienproduktion ist das Strukturproblem ein alter Bekannter. Wer Inhalte für Print, ePub, PDF, Web, InDesign oder Apps verfügbar machen will, weiß: Nur eine medienneutrale, formatunabhängige Strukturierung ermöglicht die flexible und konsistente Wiederverwendung!
Auch im Kontext von Retrieval-Augmented Generation (RAG) gilt dieses Prinzip – allerdings mit einem neuen Ziel: Die Inhalte sollen nicht nur ausgabe-fähig, sondern auch flexibel chunk-fähig sein. Genau hier setzt ChunkML an.
2.1 Was ist ChunkML?
ChunkML ist ein speziell entwickeltes, stark vereinfachtes und fehlertolerantes XML-Format auf HTML-Basis, das als strukturierte, chunk-neutrale Pivot-Struktur dient. Es enthält bewusst nur einen reduzierten Satz von HTML-Elementen, um die Komplexität gering zu halten, aber zugleich die semantische Differenzierung und Modularisierung von Inhalten zu ermöglichen.
ChunkML ist kein Endformat – sondern das strukturierte Hub-Format, aus dem sich beliebige Chunking-Strategien ableiten lassen.
Dabei gilt: ChunkML enthält keine konkreten Chunks, sondern stellt die Inhalte so bereit, dass Chunks kontextabhängig, regelbasiert oder dynamisch erzeugt werden können, z. B.:
-
Token-basiert (für GPT),
-
satz- oder absatzbasiert (für BERT),
-
mit konfigurierbarem Overlap (für semantisches Retrieval).
2.1.1 Gruppierung der in ChunkML erlaubten Elemente
Der Elementkatalog ist stark reduziert, aber vollständig ausreichend für typisierte Inhalte. Die erlaubten Elemente lassen sich funktional wie folgt gliedern:
1. Strukturelle Container
-
<html>, <head>, <body>, <section>, <div>, <page>
2. Textgliederung
-
Überschriften: <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
-
Absatzgliederung: <p>, <br>
3. Textauszeichnung
-
<b> (fett), <i> (kursiv), <u> (unterstrichen), <span>, <a>
4. Listenelemente
-
Ungeordnet: <ul>, <li>
-
Geordnet: <ol>, <li>
5. Tabellenstruktur
-
<table>, <thead>, <tbody>, <tr>, <td>, <th>, <colgroup>, <col>
6. Medien-Elemente
-
<img>
7. Metainformation
-
<meta>
Diese Auswahl orientiert sich am Ziel, lesbare, strukturierte und regelbasiert wandelbare Dokumente zu erzeugen, die ohne Konvertierungsfehler von XML- und HTML-Engines verarbeitet werden können.
2.1.2 Warum ChunkML kein Chunk-Format ist – sondern der Ursprung davon
ChunkML ist kein Container für statisch geschnittene Inhalte (z. B. 300 Token). Stattdessen basiert es auf dem Konzept der chunk-neutralen Strukturierung: Die Inhalte werden strukturgetreu, aber nicht vorsegmentiert gespeichert. Dies ermöglicht die spätere Anwendung diverser Chunking-Strategien, ohne das Ausgangsformat zu verändern.
Beispiele:
-
Ein GPT-Modell erhält ChunkML in Token-basierten Fragmenten mit konfigurierbarer Überlappung.
-
Ein eLearning-System erzeugt aus denselben Daten kapitelweise Lerneinheiten.
-
Ein semantisches Retrieval-System identifiziert Chunks anhand von semantischen Trennmarkern wie <h2> oder <table>.
2.1.3 Technologischer Unterbau
ChunkML ist eingebettet in ein modulares Verarbeitungssystem, das auf etablierten und leistungsfähigen XML-Technologien basiert. Dazu zählen:
-
XSLT – zur regelbasierten Chunk-Extraktion, HTML-Konvertierung und Format-Transformation
-
XProc – zur orchestrierten Abarbeitung ganzer Dokument-Pipelines
-
XQuery – für performante, präzise Volltextsuche und Chunk-Bildung über große Korpora hinweg
-
Python – für Tokenisierung, semantisches Chunking, Preprocessing
-
lokale LLMs – zur Inhaltsklassifikation, semantischen Labeling und Chunk-Priorisierung
-
XML-Datenbanken – für persistente, strukturierte Ablage und Massenverarbeitung
Dieses bewusst modulare Setup ist in Umgebungen wie technische Dokumentation, Crossmedia-Publishing oder akademisches Wissensmanagement etabliert und erlaubt höchste Kontrolle, Flexibilität und Automatisierung.
2.1.4 Fazit: ChunkML als technischer Kern der RAG-Strukturierung
ChunkML ist das Pivot-Format für alle Chunking-Strategien: Es strukturiert Inhalte medienneutral und chunk-neutral – und erlaubt, auf dieser Basis beliebige Chunks zu erzeugen. Es bildet den strategischen Kern der Datenstrukturierung in unserer RAG-Architektur, weil es:
-
semantisch ausdrucksstark,
-
technologisch anschlussfähig (XML, HTML, Web, Print),
-
fehlertolerant und robust ist,
-
und automatisiert wandelbar in alle Zielmedien und Modelle.
Damit stellt ChunkML sicher, dass Inhalte nicht an ein konkretes Zielsystem gebunden sind, sondern dynamisch – gemäß Nutzungsanforderung – in die jeweils benötigte Form gebracht werden können.
2.1.5 Referenzdokument für Ausleitungsbeispiele: sampleChunkML.html
Zur Veranschaulichung der im vorherigen Abschnitt beschriebenen Strukturprinzipien sowie der praktischen Anwendung von ChunkML in konkreten Ausleitungsszenarien, verwenden wir im Folgenden ein speziell konstruiertes Beispieldokument: PDF2ChunkML\01_ChunkML\sampleChunkML.html.
Dieses Dokument dient als strukturierte Demonstrationsgrundlage für verschiedene Verarbeitungsschritte in unserer Pipeline. Es enthält:
-
mehrere logisch getrennte Inhaltsblöcke, wie sie typisch für Fachtexte, Lehrmaterialien oder wissenschaftliche Artikel sind,
-
zahlreiche semantische Strukturmarker (z. B. <section>, <h1>, <table>, <ul>),
-
exemplarische Metastrukturen und Inline-Auszeichnungen (z. B. <b>, <a>, <i>),
-
sowie erweiterte Inhaltskomponenten wie:
-
Fußnoten und Endnoten
-
Tabellen mit mehrspaltigem Aufbau und Überspannungen
-
Literaturverweise und Quellennachweise
-
allgemeine Metadaten zu Autorenschaft, Publikationsdatum, Fachdomäne u. a.
-
Zweck und Rolle des Beispieldokuments:
Das sampleChunkML-Dokument wurde gezielt so gestaltet, dass es die zentralen Verarbeitungslogiken unseres Systems unter realitätsnahen Bedingungen abbildet. Es erfüllt dabei mehrere Rollen:
-
Referenzstruktur für Chunking-Strategien (regelbasiert oder dynamisch),
-
Testumgebung für Transformationen in verschiedene Ausgabeformate (PDF, DOCX, HTML, Markdown),
-
Evaluationsbasis für Annotation, Metadatenverknüpfung und Retrieval-Mapping.
3 Das Hub-System als Kern der RAG-Pipeline
3.1 Motivation und Ausgangslage
Die Verarbeitung großer Textkorpora für Retrieval-Augmented-Generation-(RAG-)Systeme erfordert flexible, automatisierte und zukunftssichere Datenpipelines. Inhalte aus unterschiedlich strukturierten Quellen müssen in geeigneter Form für Large Language Models (LLMs) bereitgestellt werden – dabei sind sowohl Strukturierung, Transformation als auch Formatvielfalt zentrale Anforderungen. Unser Ansatz basiert auf einem XML-zentrierten Hub-System, das als technologische Grundlage für die gesamte RAG-Pipeline dient.
3.2 Das Hub-Prinzip im Überblick
Das Hub-System bildet eine medienneutrale Drehscheibe, in der alle Inhalte unabhängig vom Ursprungsformat vereinheitlicht im ChunkML-Format gespeichert werden. Ob aus PDF, Markdown, JATS oder HTML gewonnen – sämtliche Daten werden in eine einheitliche, strukturierte XML-Form überführt, die sich ideal für nachgelagerte Transformations- und Analyseprozesse eignet.
Aus diesem zentralen Hub heraus erfolgt die Weiterverarbeitung über eine vollständig programmatisch aufgebaute Pipeline, die auf den vier Kerntechnologien XSLT, XProc, XQuery und Python basiert. Diese Pipeline ist deterministisch, d. h. alle Schritte und Ausgaben sind reproduzierbar und basieren auf expliziten Regeln – nicht auf stochastischen KI-Ergebnissen. Dadurch ist die Verarbeitung transparent, kontrollierbar und validierbar.
Die zentrale Konfigurationsdatei (HubConfiguration.xml) beschreibt regelbasiert, welche Chunking-Strategien und Transformationen anzuwenden sind. Die zugehörige XSD-Datei (HubConfig.xsd) stellt sicher, dass diese Konfigurationen formal korrekt und interoperabel bleiben.
3.3 Von ChunkML zu Chunk: Die modulare Verarbeitungskette
Ein exemplarischer Ablauf zeigt: Eine Datei im ChunkML-Format, etwa ein wissenschaftlicher Artikel oder Lehrtext, wird im Hub gespeichert – strukturiert nach Kapiteln, Absätzen, Tabellen, Fußnoten oder semantischen Sektionen wie Abstract, Methodik oder Ergebnisse. Anschließend kommt die deterministische Verarbeitungskette zum Einsatz:
-
XSLT generiert Ausgabeformate wie HTML, JSON oder Markdown.
-
XProc orchestriert die Verarbeitungsschritte, steuert die Datenflüsse und verarbeitet mehrere Dokumente in Pipelines.
-
XQuery wird für Abfragen, Filterung und gezielte Umstrukturierungen innerhalb der XML-Daten verwendet.
-
Python ergänzt die Verarbeitung mit Funktionen wie Tokenisierung, Formatumwandlung, Skript-Integration oder Dateiverwaltung.
Die Erzeugung der Chunks ist nicht statisch, sondern vollständig regelgesteuert und flexibel. Sie erfolgt z. B. nach:
-
Tokens, Zeichen oder Absätzen
-
mit oder ohne Überlappung
-
optional mit semantischer Anreicherung, Referenzierungen oder Zusatzinformationen
-
in verschiedenen Ausgabeformaten wie JSON, YAML oder Markdown
Optional kann die Pipeline zusätzlich auf LLMs zurückgreifen, etwa zur automatisierten Anreicherung durch Klassifikation, Themen-Erschließung oder Textzusammenfassungen. Diese LLM-Komponenten – beispielsweise lokal betriebene Open-Source-Modelle über Ollama – werden nicht als Grundlage der Pipeline, sondern ausschließlich für ergänzende Aufgaben verwendet. Der Kern der Verarbeitung bleibt deterministisch und nachvollziehbar.
3.4 Vorteile des Hub-Ansatzes
Der XML-Hub bietet zentrale strategische Vorteile für den Aufbau moderner, KI-gestützter Informationssysteme:
Technologieneutralität
Durch die Trennung von Daten, Regeln und Verarbeitungstechnologien besteht keine Abhängigkeit von einzelnen Anbietern. LLMs, Embedding-Modelle, Vektordatenbanken oder Zielsysteme lassen sich flexibel kombinieren.
Zukunftssicherheit
Neue Anforderungen – beispielsweise andere Chunking-Vorgaben oder Ausgabestrukturen – können durch Anpassung der Konfigurationsdateien und Transformationen realisiert werden, ohne die Datenbasis zu verändern.
Modularität und Anpassbarkeit
Ein einziges Hub-Dokument kann für verschiedene Ausgabeszenarien verwendet werden – etwa für unterschiedliche LLMs, Benutzergruppen oder Medienformate.
Deterministische Verarbeitung
Die Pipeline erzeugt reproduzierbare, regelbasierte Ergebnisse – ideal für kontrollierte Anwendungen, Qualitätssicherung, Dokumentation und wissenschaftliche Workflows.
Automatisierung
Durch den Einsatz von XProc als Steuerzentrale, Python als Integrationsschicht und optionalen lokalen LLMs zur Anreicherung ist eine hochgradig automatisierte Gesamtlösung realisierbar.
Effizienz
Die einmalige Transformation in das Hub-Format reduziert Redundanz und ermöglicht eine zentrale Steuerung aller Ausgaben, Formate und Anwendungszwecke.
4 Die Konfiguration des Hub-Systems
Die Datei HubConfiguration.xml ist das zentrale Steuerelement der Pipeline. Sie legt regelbasiert fest, wie Inhalte verarbeitet, angereichert, dargestellt und ausgegeben werden. Die Konfiguration ist modular aufgebaut und entspricht einer logischen Repräsentation der Pipelineprozesse. Sie wird durch eine XSD-Datei (HubConfig.xsd) validiert und ermöglicht eine deterministische, transparente Steuerung sämtlicher Transformationsschritte.
4.1 Import: Strukturverhalten beim Chunking
<Import>
<KeepSection enabled="true"/>
</Import>
Der Import-Abschnitt steuert die Grundlogik der strukturellen Zerlegung beim Einlesen von Dokumenten. Die Option <KeepSection enabled="true"/> bewirkt, dass die Chunk-Erzeugung sich nach <section>-Elementen richtet – selbst dann, wenn die hierarchische Gliederung der Überschriften (z. B. <h1> bis <h6>) nicht exakt mit der internen Abschnittsstruktur übereinstimmt.
Diese Einstellung ist besonders nützlich bei Dokumenten, in denen die logische Struktur semantisch über <section> ausgezeichnet ist. Wird stattdessen der Wert false gesetzt, erfolgt das Chunking ausschließlich auf Basis der Überschriften-Hierarchie.
4.2 Metadata: Steuerung der Metadatenverarbeitung
<Metadata enabled="true">
<MetadataFilter>
<SupportAll enabled="true"/>
<SupportUnFilter enabled="deleteAll"/>
<Filter>
<Key name="Author" action="deleteAll"/>
<Key name="Autor" action="deleteKeyNotText"/>
<Key name="Surname" action="map" new="Nachname"/>
<Key name="keywords" action="map" new="stichwort"/>
<Key name="keyword" action="map" new="stichwort"/>
<Key name="key" action="map" new="stichwort"/>
<Key name="keys" action="map" new="stichwort"/>
</Filter>
</MetadataFilter>
</Metadata>
Dieser Abschnitt aktiviert die Verarbeitung und Transformation von Metadaten. Im Beispiel ist die Option SupportAll aktiv – alle Metadaten werden zunächst zugelassen. Gleichzeitig entfernt die Regel SupportUnFilter mit dem Wert deleteAll sämtliche Metadaten, die nicht explizit im Filter aufgeführt sind. So entsteht ein gezieltes und kontrolliertes Metadatenprofil.
Dieser Mechanismus erlaubt die Vereinheitlichung vieler unterschiedlicher Metadatenkonzepte, da davon auszugehen ist, dass Inhalte aus unterschiedlichsten Dokumenten mit sehr heterogenen Metadatenstrukturen stammen. Statt jeden Metadatenstil einzeln behandeln zu müssen, können Regeln zentral definiert werden, um Redundanz, Inkonsistenzen oder widersprüchliche Benennungen (z. B. „Author“, „Autor“, „Surname“) zu bereinigen und zu normalisieren.
4.3 Citation: Verarbeitung von Quellenverweisen
<Citation enabled="true" />
Wenn aktiviert, werden Zitationsinformationen berücksichtigt – z. B. Seitenzahlen aus PDFs oder URL-basierte Verweise. Diese Informationen können innerhalb der Chunks erhalten und zur besseren Rückverfolgbarkeit eingebettet werden.
Anstelle einer abstrakten Quellenangabe wird damit eine präzise Verbindung zur Originalseite im PDF hergestellt. Die Chunking-Strategie selbst kann diese exakte Pagina häufig nicht selbstständig rekonstruieren, da semantische Einheiten nicht immer exakt mit Seitenumbrüchen übereinstimmen. Durch die Angabe der PDF-Seite wird jedoch eine nachvollziehbare Referenz geschaffen, die Vertrauen erzeugt und dem Nutzer ermöglicht, gesichert und überprüfbar zu zitieren.
4.4 DisplayOriginalFormats: Bereitstellung ursprünglicher Quelldateien
<DisplayOriginalFormats>
<Format type="pdf" split="true"/>
</DisplayOriginalFormats>
Hier wird festgelegt, ob das ursprüngliche Dokument – z. B. ein PDF – als Download zur Verfügung gestellt wird. Mit der Option split="true" kann das PDF sogar seitenweise bereitgestellt werden.
Trotz Chunking bleiben damit die originalen Pagina-Informationen verfügbar. Dies ist entscheidend für Transparenz und wissenschaftliche Zitierfähigkeit. Der Nutzer kann genau nachvollziehen, woher ein Inhalt stammt, und die Seitenreferenz im PDF mit dem zitierten Inhalt abgleichen.
4.5 DisplayGeneratedFormats: Ausgabe alternativer Dateiformate
<DisplayGeneratedFormats>
<Format type="pdf" />
<Format type="docx" />
<Format type="xlsx" />
</DisplayGeneratedFormats>
Dieser Abschnitt definiert, welche vom System generierten Formate zusätzlich zum Original bereitgestellt werden. Anders als bei DisplayOriginalFormats handelt es sich hier nicht um Quellformate, sondern um automatisch erzeugte Repräsentationen, etwa zur Weiterverarbeitung oder Benutzerinteraktion.
Diese Formate werden nicht auf Basis des Hub-XMLs (ChunkML) erzeugt, sondern – wenn möglich – auf Grundlage des exHTML, einer exakten, layout-treuen Darstellung. exHTML enthält mehr visuelle und typografische Informationen als ChunkML, wodurch Ausgabeformate wie Word oder PDF deutlich präziser und layout-näher generiert werden können. Auch audio-basierte Formate wie MP3 (z. B. zum Vorlesen) wären über erweiterte Workflows möglich. Systeme wie Octopus unterstützen hier eine Vielzahl zusätzlicher Formate.
4.6 EmbeddingSoftware: Dokumentation der Embedding-Strategie
<EmbeddingSoftware name="Doc2Vec" />
Dieser Eintrag ist optional. Wenn gesetzt, beschreibt er die genutzte Embedding-Software – beispielsweise zur Vektorisierung von Chunks oder Metadaten. Anders als bei vielen Systemen wird dieser Eintrag nicht primär zur Dokumentation verwendet, sondern um auf potenzielle Fallstricke bei der Verarbeitung hinzuweisen.
Beispielsweise können bestimmte Embedding-Modelle (etwa bei rekonstruierten Fußnoten, Tabellen oder Sonderzeichen) problematische Ausgaben erzeugen. Die Pipeline kann, sofern ein Modell angegeben ist, strategiebasierte Korrekturen oder Empfehlungen aktivieren, etwa zur Entfernung redundanter Fußnoten, zur Bereinigung von Sonderzeichen oder zur Umkodierung von Tabellen in flache Strukturen.
Wird kein Eintrag gesetzt, erfolgt keine explizite Referenzierung – die Verarbeitung ist in diesem Fall unabhängig von einer bestimmten Vektorisierungsmethode.
4.7 ChunkingStrategy: Steuerung der Zerlegung von Texten in Chunks
Die Sektion <ChunkingStrategy> regelt die zentrale Funktion der Pipeline: Wie ein längerer Text in kleinere, besser verarbeitbare Einheiten (Chunks) unterteilt wird. Diese Entscheidung beeinflusst maßgeblich die Qualität und Effizienz nachgelagerter Prozesse – etwa Retrieval, Embedding oder Inferenz mit LLMs.
4.7.1 Chunking-Strategien im Überblick
Die Konfiguration erlaubt die Auswahl einer oder mehrerer Strategien, abhängig vom Dokumenttyp, der gewünschten Genauigkeit und der Verwendungsform der Chunks. Jede Strategie bringt spezifische Stärken und Schwächen mit sich:
Typ |
Beschreibung |
Vorteile |
Nachteile |
FixedLength |
Aufteilung in gleich große Einheiten (nach Wörtern, Zeichen oder Tokens) |
Einfach, konstant, schnell zu berechnen |
Kann Satzgrenzen oder semantische Einheiten zerschneiden |
Recursive |
Zerlegung entlang natürlicher Strukturen, wie Absätzen, Sätzen oder Sections |
Inhaltlich kohärent, flexibler |
Abhängig von gut strukturierten Eingangsdaten |
DocumentBased |
Jedes Dokument bleibt ein einzelner Chunk |
Maximaler Kontext |
Kann zu lang für LLMs sein |
Hierarchical |
Mehrstufig: Kapitel → Sektionen → Absätze |
Ideal für strukturierte Langtexte |
Komplexeres Mapping |
SentenceBased |
Aufteilung anhand vollständiger Sätze |
Gut lesbar, semantisch stabil |
Variierende Länge, ineffizient bei langen Sätzen |
ParagraphBased |
Chunking nach Absätzen und anderen Block-Level-Elementen |
Klarer Aufbau, leserfreundlich |
Unterschiedlich große Chunks |
SemanticBased |
Inhaltlich gesteuert (z. B. Themenwechsel) |
Hohe Präzision, bessere Retrieval-Qualität |
Aufwändig, meist LLM-gestützt |
Agentic |
Aufgabenbasiert (Definition, Beispiel, Übung) |
Besonders effektiv für didaktische oder interaktive Szenarien |
Bedarf klarer inhaltlicher Markierungen |
In der gegebenen Konfiguration ist derzeit Hierarchical aktiv. Diese Strategie ist besonders nützlich für strukturierte Inhalte, wie wissenschaftliche Artikel, Handbücher oder technische Dokumentationen. Sie erlaubt eine flexible Zerlegung auf mehreren Ebenen, z. B. von Kapitelüberschriften bis zu Unterabschnitten und Absätzen.
<ChunkingStrategy>
<Strategy type="Hierarchical" />
...
</ChunkingStrategy>
4.7.2 Erweiterte Optionen im <Additional>-Block
Der Block <Additional> erlaubt eine feingranulare Steuerung des Chunking-Verhaltens:
<Additional>
<Duplicate enabled="true" />
<AllowOverlap enabled="true" />
<Referencing enabled="true" />
<Superchunks enabled="true" />
<Counting>
<Type>Word</Type>
<Type>Character</Type>
</Counting>
</Additional>
4.7.2.1 <Duplicate enabled="true"/>
Aktiviert die gezielte Wiederholung referenzieller Inhalte in überlappenden Chunks – insbesondere Fußnoten, Literaturangaben und andere auf Referenzierung beruhende Strukturen.
Wenn ein Abschnitt eine Fußnote enthält, wird dieser zweimal ausgegeben:
-
einmal mit der vollständigen Fußnote,
-
und einmal ohne, also in der überlappenden Version bereinigt.
Dieses Vorgehen stellt sicher, dass im ersten Vorkommen der vollständige Kontext mit allen Referenzen verfügbar ist, während in den Folge-Chunks Redundanz vermieden wird. Es bleibt also der Kontext erhalten, ohne dass wiederholte Fußnoten die Modellverarbeitung oder Lesbarkeit stören.
4.7.2.2 <AllowOverlap enabled="true"/>
Überlappende Chunks werden erzeugt, um an den Segmentgrenzen keine semantischen Brüche entstehen zu lassen. Dies ist besonders wichtig bei Embeddings und Retrieval, um Kontextfluss über Chunk-Grenzen hinweg zu sichern.
4.7.2.3 <Referencing enabled="true"/>
Chunks erhalten explizite Referenzmarker – etwa Fußnoten-IDs, Literaturverweise, Absatznummern oder interne Kontext-Anker.
Diese Referenzen ermöglichen eine zielgenaue Rückverfolgbarkeit sowohl innerhalb der Ausgabeformate (z. B. HTML, JSON) als auch in semantischen Retrieval-Systemen.
Wichtig: Die konkrete Art und Tiefe der Referenzierung ist abhängig von der eingesetzten Embedding-Software bzw. vom Retrieval-System.
Manche Vektordatenbanken oder semantische Suchsysteme können komplexe Verknüpfungen (z. B. ID-basierte Rückverweise oder Positions-Anker) verarbeiten, andere nur einfache Kontextblöcke. Die Referenzierung muss daher modell- und systemkonform gestaltet werden, um Funktionalität und Zitationsfähigkeit zu gewährleisten.
4.7.2.4 <Superchunks enabled="true"/>
Ermöglicht die Bildung von Makro-Chunks, also größeren Einheiten über mehrere reguläre Chunks hinweg. Diese eignen sich z. B. zur Generierung von Zusammenfassungen auf Kapitelebene, zur Erstellung thematischer Cluster oder als Antwortvorlagen für agentenbasierte Systeme.
4.7.2.5 <Counting>
Aktiviert die statistische Auswertung pro Chunk – also die automatische Zählung von:
-
Wörtern (<Type>Word</Type>)
-
Zeichen (<Type>Character</Type>)
-
Tokens (<Type>Token</Type>)
Diese Zählwerte können je nach Konfiguration einzeln oder kombiniert ausgegeben werden. Sie sind besonders hilfreich:
-
zur Kontrolle von Längenlimits, etwa in LLM-Prompts, API-Calls oder bei Vektorisierungen,
-
zur Visualisierung der Chunk-Verteilung in Tools oder Dashboards,
-
zur Optimierung der Chunking-Strategie – etwa beim Vergleich unterschiedlicher Methoden (z. B. Recursive vs. FixedLength).
4.8 StructureFormat: Formatierung und Optimierung der Chunk-Ausgabe
Der Abschnitt <StructureFormat> legt fest, in welchem Format die Chunks ausgegeben werden, bevor sie an ein nachgelagertes System übergeben werden – insbesondere an ein Large Language Model (LLM). Darüber hinaus steuert er, ob eine zusätzliche Optimierung der Datenstruktur erfolgen soll, um die Verständlichkeit und Verarbeitbarkeit für das Modell zu verbessern.
Beispielhafte Konfiguration:
<StructureFormat value="markdown" optimize="true" />
In diesem Beispiel wird jeder Chunk im Markdown-Format ausgegeben, und die Option optimize="true" aktiviert zusätzliche Anpassungen zur Verbesserung der LLM-Kompatibilität.
4.8.1 Mögliche Werte für value
-
txt: Reiner Text ohne Markup – minimalistisch, aber informationsarm
-
markdown: Leichtgewichtiges Markup – besonders gut geeignet für GPT-Modelle
-
html: Strukturierter, web-orientierter Output – nützlich bei visuellen Layouts oder verlinkten Inhalten
-
rtf: Rich Text Format – z. B. für Desktop-Export oder Word-Verarbeitung
Die Pipeline erlaubt es, verschiedene Ausgabeformate bereitzustellen, weil LLMs unterschiedlich auf strukturelle Formate reagieren. Manche Modelle (z. B. GPT-4) sind mit Markdown besonders effektiv, andere tun sich mit HTML oder verschachtelten XML-Formaten schwer oder interpretieren sie unvollständig. Durch die Bereitstellung mehrerer Strukturvarianten können systematische Tests durchgeführt werden, um:
-
Modellreaktionen auf Formatunterschiede zu evaluieren
-
Fehlerquellen wie Missinterpretation von Tags zu identifizieren
-
die optimale Kombination aus Chunk-Struktur und LLM-Typ zu bestimmen
4.8.2 Bedeutung von optimize="true"
Wenn diese Option aktiviert ist, werden zielgerichtete Transformations- und Reinigungsmaßnahmen angewendet, um das Format für LLMs lesbarer und robuster zu machen. Dazu gehören insbesondere:
-
Vereinfachung verschachtelter Strukturen (z. B. bei HTML-Listen oder XML-Nesting)
-
Reduktion auf lineare Lesbarkeit – z. B. durch die Umwandlung komplexer Tabellen in Fließtext und die Auflösung von Spalten- und Zeilenüberspannungen (colspan/rowspan)
Diese Maßnahmen dienen dazu, typische Parsing-Probleme bei LLMs zu reduzieren und die Lesbarkeit auch in längeren Kontexten zu verbessern.
Ziel dieser Optimierung:
Die strukturelle Optimierung des Formats dient mehreren Zwecken:
-
Verbesserte Eingabeklarheit für das LLM
-
Geringeres Risiko für „Halluzinationen“ oder fehlerhafte Modellinterpretationen
-
Höhere Genauigkeit bei Retrieval und Antwortgenerierung
-
Kompaktere, effizientere Embeddings bei Verwendung vektorisierter Chunks
4.9 Encoding
4.9.1 Warum Tokens in Chunks enthalten sein sollten
Hintergrund
Beim Einsatz großer Sprachmodelle (LLMs) wie GPT-4 oder text-ada-001 ist die Verarbeitungseinheit nicht primär ein Wort oder Satz, sondern ein sogenannter Token. Tokens sind minimale Bedeutungseinheiten, die vom jeweiligen Modell-Tokenizer erzeugt werden – je nach Sprachstruktur und Modellarchitektur. Das Verständnis und die Steuerung der Tokenisierung ist daher ein zentraler Bestandteil effizienter LLM-Nutzung.
Gründe für die Speicherung von Tokens im Chunk
Die explizite Aufbewahrung der Tokens in den Chunks – also als Teil der strukturierten Ausgabedaten – bringt eine Reihe analytischer und praktischer Vorteile:
-
Nachvollziehbarkeit und Debugging
Bei Fehlverhalten (z. B. Halluzination, unerwünschte Kürzungen) hilft die Token-Liste zu verstehen, wie das Modell den Input interpretiert hat. -
Vergleichbarkeit zwischen Modellen
Verschiedene Modelle verwenden unterschiedliche Tokenizer. Die Token-Informationen erlauben es, das Verhalten unterschiedlicher Modelle nachvollziehbar zu vergleichen. -
Optimierung der Kontextfensternutzung
Viele LLMs arbeiten mit festen Token-Grenzen (z. B. 4096 oder 8192 Tokens). Die Kenntnis der Token-Anzahl pro Chunk ermöglicht es, diese Grenzen gezielt zu nutzen, ohne Trunkierungen zu riskieren. -
Modellgerechte Chunk-Steuerung
Die Token-Anzahl kann zur präzisen Steuerung von:-
Chunk-Längen
-
semantischer Überlappung
-
inhaltlicher Kohärenz
genutzt werden.
-
-
Integration in nachgelagerte Systeme
RAG-Architekturen und Suchsysteme profitieren von Token-Listen, z. B. für:-
Maskierung
-
semantische Repräsentation
-
granularen Re-Ranking-Prozesse
-
Beispiel: Zielformat eines Chunks
Die Ausgabe eines Chunks im Hub-System folgt einer standardisierten JSON-Struktur. Beispiel:
{
"id": "2",
"content": "Die digitale und ökologisch nachhaltige Transformation...",
"tokens": ["Die", " digit", "ale", " und", " ök", "..."],
"token_ids": [32423, 16839, 1000, 3318, 928, "..."],
"count_tokens": 270,
"count_words": 92,
"count_characters": 777
}
-
tokens: Die dekodierten Token-Segmente (Strings)
-
token_ids: Die numerischen IDs, wie vom Modell verwendet
-
count_tokens: Anzahl Tokens in diesem Chunk (wichtig für Steuerung)
-
count_words / count_characters: Klassische Referenzgrößen
4.9.2 Token-Konfiguration im Hub-System
Das Hub-System bietet eine standardisierte, modulare XML-Konfiguration, mit der sich für jeden Verarbeitungsschritt gezielt festlegen lässt, welcher Tokenizer verwendet werden soll. Die Auswahl erfolgt entweder über ein bekanntes Modell (LLM) oder direkt über einen spezifischen Encoding-Namen.
Konfigurationsstruktur:
Die Konfiguration erfolgt über ein <Token>-Element mit folgenden Optionen:
-
<Llm>
Definiert den Modellnamen (z. B. gpt-4, meta-llama/Meta-Llama-3-8B).
Der passende Tokenizer wird automatisch über ein internes Mapping gewählt. -
<EncodingName>
Erlaubt die manuelle Angabe eines Encodings (z. B. cl100k_base, p50k_base).
Dies bietet maximale Kontrolle für gezielte Einsätze.
Regeln:
-
Entweder <Llm> oder <EncodingName> muss angegeben werden.
-
Wenn beide vorhanden sind, hat <Llm> Vorrang.
-
Bei ungültigen Werten liefert das System strukturierte Hinweise zur Korrektur.
Beispiele:
Modellreferenziert:
<Token>
<Llm>gpt-4</Llm>
</Token>
Encoding-explizit:
<Token>
<EncodingName>cl100k_base</EncodingName>
</Token>
Vorteile:
-
Einfache Steuerung: Modell- oder Encoding-basiert
-
Flexibilität: Für manuelle oder automatisierte Workflows
-
Robustheit: Mit Fallback-Logik und Fehlerbehandlung
Die Speicherung von Tokens pro Chunk und die modulare Steuerung der Tokenizer-Strategie im Hub-System sind zentrale Bestandteile für eine transparente, kontrollierte und leistungsfähige LLM-Integration. Sie ermöglichen datengetriebene Chunk-Steuerung, Cross-Modell-Analysen und eine fein abgestimmte Kontrolle über den gesamten Token-Fluss – von der Quelle bis zum Modellkontext.
4.10 SerializationFormat: Steuerung der Ausgabeform für Speicherung und Weiterverarbeitung
Der Abschnitt <SerializationFormat> legt fest, in welchem strukturellen Format die einzelnen Chunks serialisiert werden – d. h. wie sie zur Speicherung, Übertragung oder zur weiteren Verarbeitung aufbereitet werden. Die gewählte Serialisierungsform beeinflusst maßgeblich die Interoperabilität mit anderen Systemen, die Lesbarkeit durch LLMs sowie die Komplexität nachgelagerter Workflows.
Beispielhafte Konfiguration:
<SerializationFormat value="json" />
In diesem Fall wird jeder Chunk im JSON-Format gespeichert und exportiert. Das bedeutet, dass die Inhalte als strukturierte Schlüssel-Wert-Paare vorliegen – eine Form, die sowohl von LLMs als auch von APIs und Web-Diensten sehr gut verarbeitet werden kann.
4.10.1 Zulässige Werte für value
-
json: Strukturiertes Schlüssel-Wert-Format; weit verbreitet, LLM-freundlich, ideal für APIs und semantische Workflows
-
xml: Hierarchisches Markup; hervorragend geeignet für semantisch reichhaltige Inhalte mit klarer Struktur
-
txt: Reiner Text ohne Struktur oder Markup; maximale Einfachheit, aber Verlust jeglicher Metadaten
-
csv: Komma-getrenntes Format
-
yaml: Menschlich gut lesbare, strukturierte Auszeichnung; Alternative zu JSON
4.10.2 Zweck und Wirkung
Die Wahl des Serialisierungsformats wirkt sich auf mehrere Ebenen aus:
-
Speicherung: Die Datenbank oder der Dateispeicher muss das Format unterstützen (z. B. JSON für NoSQL, XML für XQuery-basierte Systeme).
-
Übertragung: APIs, Webhooks oder Bus-Systeme bevorzugen oft JSON oder YAML.
-
Verarbeitung durch LLMs: Während Plaintext und Markdown direkt interpretiert werden, müssen strukturierte Formate wie XML oder JSON für LLMs ggf. vorab normalisiert oder vereinfacht werden.
-
Nachvollziehbarkeit & Debugging: YAML und JSON sind gut lesbar, während XML sich besser für Validierung und maschinelle Analyse eignet.
4.11 ArchiveFormat: Verpackung und Sicherung von Chunk-Daten
Der Abschnitt <ArchiveFormat> definiert, ob und in welcher Form die erzeugten Chunk-Dateien archiviert und komprimiert werden sollen. Dies betrifft sowohl interne Verarbeitung (z. B. zur Paketierung fürs Deployment) als auch externe Verteilung oder Speicherung – etwa bei systemübergreifender Nutzung oder Bereitstellung über Netzwerke.
Beispielhafte Konfiguration:
<ArchiveFormat>
<Format type="zip" passwordProtected="true" password="XMLF0r3v3r" enabled="true" />
</ArchiveFormat>
In diesem Beispiel werden die Chunks beim Export in ein ZIP-Archiv gepackt, das mit einem Passwort gesichert ist. Die Archivierung ist aktiv.
4.11.1 Zulässige Werte für type
-
zip: Standardformat mit breiter Unterstützung in Betriebssystemen, Tools und APIs
-
rar: Proprietäres Format mit hoher Kompression – erfordert spezielle Software (z. B. WinRAR)
-
7z: Offenes Format mit hoher Kompressionsrate und Unterstützung für Verschlüsselung sowie „solid archiving“
4.11.2 Attribute
-
type: Gibt den gewünschten Archivtyp an
-
passwordProtected: Steuert, ob das Archiv passwortgeschützt ist
-
password: Optionales Passwort für verschlüsselte Archive (nicht erforderlich bei passwordProtected=“false“)
-
enabled: Aktiviert oder deaktiviert die Archivierung als Funktion
4.11.3 Inhalt des Archivs
Das Archiv enthält nicht nur die Chunks, sondern kann zusätzlich auch weitere datei-basierte Ergebnisse der Pipeline enthalten. Typische Beispiele:
-
Original-PDFs, etwa auf Einzeldateien je Seite aufgeteilt (wenn split="true" gesetzt ist)
-
Word-Dateien, z. B. generierte .docx-Versionen des Inhalts
-
Excel-Tabellen oder strukturierte .csv-Dateien
-
exHTML- oder Markdown-Fassungen für Web- oder LLM-Einsatz
-
ggf. MP3-Dateien oder andere Medienformate, wenn entsprechende TTS-Module verwendet werden
Diese gebündelte Ablage macht das Archiv zu einem vollständigen Content-Paket, das für menschliche Nutzer ebenso wie für Maschinen lesbar ist. Besonders bei Übergabe an Drittanbieter, Archivierung oder Offline-Verarbeitung ist das ZIP-Format ideal geeignet.
5 Das Octopus Container Format (OCF)
5.1 Motivation und Zweck
Das Octopus Container Format (OCF) dient als modularer Archiv-Container für die strukturierte, multimodale und verarbeitungsspezifische Ablage von Dokumentinhalten innerhalb der RAG-Pipeline. Es fungiert als standardisierte ZIP-Struktur, die alle relevanten Daten eines Dokuments umfasst – vom Originaleingang über Layout-, Text- und Metadaten bis hin zu den erzeugten Ausgabestrukturen.
OCF wurde entwickelt, um alle Verarbeitungsergebnisse konsistent, transparent und medienneutral zu speichern. Dies ermöglicht nicht nur eine vollständige Rückverfolgbarkeit aller Zwischenschritte, sondern auch die sofortige Wiederverwendbarkeit einzelner Formate für unterschiedliche Zielsysteme (z. B. Browser-Darstellung, LLM-Prompting, Export).
5.2 Strukturübersicht
Die Containerstruktur eines OCF-Archivs gliedert sich wie folgt:
OCF/
│ manifest.xml
│
├── processing/
│ └── octprocmeta.xml
│
└── content/
├── EingangsBeispiel.json
└── ai/
├── source/ → Originaldokumente (z. B. PDF)
├── raw/ → Zeichenbasierte Layout-Daten
├── plain/ → Strukturfreier Klartext
├── meta/ → XMP-Metadaten in XML
├── split/ → Einzelseiten (PDF, JPG, PNG)
├── svg_path/ → Vektorbasierte SVGs (layout-getreu)
├── svg_text/ → Textbasierte SVGs (DOM-suchbar)
├── octpmlx/ → Zeilenorientierte Textstruktur
├── chunkML/ → Chunk-neutrales HTML-/XML-Format
├── exHTML/ → Strukturierte HTML-Ausleitung
├── chunkstrategy/ → Konfigurationsdateien (z. B. HubConfiguration.xml)
└── displayGeneratedFormats/ → Generierte Zielmedien (PDF, DOCX)
5.3 Bedeutung der Hauptverzeichnisse
5.3.1 manifest.xml
Zentrale Container-Beschreibung, die alle enthaltenen Bestandteile verlinkt und klassifiziert. Dient als Einstiegspunkt für maschinelle Systeme.
5.3.2 processing/octprocmeta.xml
Dokumentiert die Verarbeitungsparameter, Versionen und eingesetzten Module der RAG-Pipeline. Diese Datei ist wichtig für Auditierung und Debugging.
5.3.3 content/ai/
Hier befinden sich sämtliche Verarbeitungsartefakte des Dokuments:
-
source/: Enthält das Originaldokument (z. B. PDF).
-
raw/: Layout-Daten im Zeichenformat (siehe EingangsBeispiel_char.xml), notwendig für präzises Parsing.
-
plain/: Reiner Fließtext, z. B. für Previews oder Vergleich mit OCR.
-
meta/: XMP-Metadaten im RDF-/XML-Format, maschinenlesbar und anreicherbar.
-
split/: Einzelseiten in mehreren Formaten – ideal für seitenbasiertes Retrieval.
-
svg_path/ und svg_text/: Layout-exakte bzw. DOM-interaktive SVG-Varianten.
-
octpmlx/: Format für positionsgenaue, zeilenbasierte Volltextsuche.
-
chunkML/: HTML-basierte, chunk-neutrale Pivot-Struktur für strukturierte Ausleitungen.
-
exHTML/: Medienneutrale HTML-Ausgabe mit CSS und Assets (Bilder, etc.).
-
chunkstrategy/HubConfiguration.xml: Steuerdatei für die Chunking-Logik.
-
displayGeneratedFormats/: Endformate für Nutzer oder Zielsysteme (PDF, DOCX, etc.).
5.4 Technologischer Hintergrund
Die Container-Architektur orientiert sich an bekannten ZIP-basierten Archivstandards wie EPUB, JAR oder OpenDocument – ist jedoch speziell auf semantische Content-Verarbeitung im KI-Kontext ausgelegt. Alle Inhalte innerhalb des Containers sind entweder:
-
XML-basiert (→ maschinenverarbeitbar, semantisch),
-
HTML-basiert (→ visuell interpretierbar, strukturiert),
-
medienbasiert (→ PDF, Bildformate, SVG),
-
oder Metadaten-kompatibel (→ RDF/XMP/JSON).
Die klare Trennung der Ebenen – von raw bis chunkML – erlaubt eine deterministische, dokumentierte Wiederherstellung der Verarbeitungslogik zu jedem Zeitpunkt. Insbesondere für wissenschaftliche Kontexte, Audits oder LLM-Training mit erklärbarer Datenbasis ist diese Transparenz essenziell.
5.5 Vorteile des OCF-Formats in der RAG-Pipeline
-
Modularität: Jedes Format ist separat adressierbar.
-
Nachvollziehbarkeit: Alle Schritte sind vollständig dokumentiert.
-
Interoperabilität: XML-/HTML-Standards ermöglichen systemübergreifende Nutzung.
-
Automatisierbarkeit: Der Container kann durch Pipelines erstellt, verarbeitet und wiederverwendet werden.
-
Langfristige Nutzbarkeit: Ideal als Archiv-, Trainings- oder Revisionspaket für KI-Modelle.