Wer sich mit Familienforschung beschäftigt, kennt das Problem vielleicht: Die Digitalisierung durch Portale wie Matricula Online ist ein Segen, aber die Suche bleibt mühsame Handarbeit. Man benötigt relativ viele zusätzliche Daten oder blättert digital tausende Seiten durch, immer in der Hoffnung, den entscheidenden Namen in der Kurrentschrift nicht zu übersehen.
Naiverweise habe ich angenommen, dass es doch "Indexe" zu den einzelnen Registern gibt - leider hat sich recht schnell herausgestellt, dass diese Indexe nicht garantiert komplett sind (Eintrag im Register selbst - aber nichts im Index)
Nachdem ich für meine eigene "Forschung" im Raum Leoben vor diesem Berg an Seiten stand, habe ich mich gefragt:
Kann man hier als Softwareentwickler mit modernen Mitteln eine kleine Hilfestellung bauen?
Der pragmatische Ansatz: Hilfe statt Perfektion
Ich muss dazu sagen: Ich habe keinen theoretischen Hintergrund in Genealogie oder Stammbaumforschung. Ich bin kein Historiker und kein Experte für alte Handschriften. Ich stand schlicht vor dem Problem, dass ich meine eigenen Vorfahren finden wollte, ohne Jahre mit dem manuellen Blättern in digitalen Büchern zu verbringen.
Mir war schnell klar: Eine perfekte Transkription von Handschriften des 17./18./19. Jahrhunderts ist mit Standardmitteln kaum machbar. Aber für die meine Zwecke brauchte ich keine perfekte Abschrift – ein funktionierender Suchindex reicht völlig aus.
Der Weg zum "durchsuchbaren Schrott"
Ich habe in den letzten Tagen/Wochen mit verschiedenen Ansätzen experimentiert, um eine „Brücke“ zwischen den digitalen Bildern und einer schnellen Suche zu schlagen. Der Weg war geprägt von "Trial and Error":
Die Erkenntnis: Einfache Standard-OCR-Systeme scheitern kläglich an der Handschrift. VLMs bzw. Multimodal LLMs Halluzinieren für meine Zwecke aktuell zu viel (oder Skill-Issue ;) ).
Erst der Einsatz von spezialisierten Modellen (wie Kraken mit passenden Modellen) brachte Ergebnisse, mit denen man arbeiten konnte. (Danke eScriptorium)Die Rechenlast: Da mein lokaler Rechner mit der Masse von ca. 18.000 Seiten überfordert war (die Verarbeitung hätte Wochen gedauert), habe ich die Pipeline kurzzeitig auf Miet-GPUs (Vast.ai) ausgelagert.
Fuzzy Search: Da das OCR natürlich Fehler macht, habe ich eine fehlertolerante Suche implementiert. Sie sucht nicht nach der exakten Schreibweise, sondern nach Ähnlichkeiten. So wird ein Name auch dann gefunden, wenn das OCR Zeichen falsch interpretiert hat. (Trigram FTS und Fuzzy Search)
Die Architektur im Überblick
Um den Prozess zu verdeutlichen, hier eine grobe Visualisierung der Pipeline.
Wichtig dabei: Mein System speichert keine Bilder, sondern baut lediglich einen Index auf, der als Wegweiser zurück zu den Originalquellen dient.
graph TD
subgraph "Externe Quellen"
M[Matricula Online]
end
subgraph "Indizierungs-Pipeline (Python/Kraken)"
S[Image Fetcher] --> I[Processing]
I --> OCR[GPU-HTR / Kraken Cluster]
OCR --> DB[(SQLite FTS5 Index)]
end
subgraph "Suche (Go/Wails)"
U[Suchanfrage] --> FZ[Fuzzy Search Logic]
FZ --> DB
DB --> R[Trefferliste]
end
R -- "Direktlink zum Buch" --> M
style M fill:#f9f,stroke:#333,stroke-width:2px
style DB fill:#bbf,stroke:#333,stroke-width:2px
style OCR fill:#dfd,stroke:#333,stroke-width:2pxDas Ergebnis für Leoben
Das Ergebnis ist eine kleine Anwendung, die ich für meinen Eigenbedarf nutze. Sie zeigt mir für die Pfarren in Leoben in Sekundenbruchteilen mögliche Fundstellen an. Ein Klick führt direkt zum Originalbild auf Matricula Online.
Es ist technisch gesehen ein „unsauberer“ Index – viele Einträge sind fehlerhaft oder kryptisch. Aber als Suchhilfe ist es ein enormer Zeitgewinn. Es erlaubt mir, die Nadel im Heuhaufen zumindest massiv einzugrenzen.
Ein offenes System
Die Pipeline ist so aufgebaut, dass sie theoretisch auch für andere Bestände funktionieren würde. Es ist ein rein privates Projekt ohne kommerziellen Hintergrund. Mir geht es vor allem darum, zu zeigen, wie heutige IT-Werkzeuge uns bei der Erschließung historischer Dokumente unterstützen können, selbst wenn man – wie ich – eigentlich fachfremd ist.
Für Interessierte stelle ich die Methodik und die Skripte gerne zur Verfügung. Vielleicht dient dieser pragmatische Ansatz ja auch anderen Forschern oder Archiven als kleiner Impuls.
Ich habe derzeit noch nichts öffentlich Zugänglich gemacht - aber bei Interesse reicht eine Mail an [email protected] :)