DjVu-Viewer Integration
DjVu-Viewer Integration
Gitlab
Server-Topologie
| wikiId | URL | Standort |
|---|---|---|
djvu-wiki |
http://djvu-wiki.genealogy.net | vm2180 (dieser Server) |
genwiki-farm |
http://genwiki-farm.genealogy.net | vm2180 (dieser Server) |
genwiki39e |
http://genwiki39e.genealogy.net | vm2180 (dieser Server) |
genwiki39 |
https://genwiki39.genealogy.net | separater öffentlicher Docker-Server |
genwiki39d |
http://genwiki39d.bitplan.com | fur.bitplan.com (nur Intranet) |
| Produktion | https://wiki.genealogy.net | hetzner |
DjVu-Viewer
- http://djvu.bitplan.de - auf diesem Server (djvu-viewer.genealogy.net DNS Eintrag in Arbeit )
- http://djvu.bitplan.com - fur.bitplan.com (nur Intranet)
Hintergrund
- Ursprung: DjVu-Thumbnails werden überhaupt nicht erzeugt (2017)
- 1,5 Jahre Entwicklung → djvu-viewer - see wiki.bitplan.com/Djvu-viewer
- Grundursache: Nicht-gebündelte (indirekte) DjVu-Dateien verursachen
DjVuImage::getMultiPageInfo: multi-page DJVU file contained no pages - Lösung: Ausschließlich gebündelte DjVu-Dateien verwenden
- Zukünftiges Ziel: djvu-viewer liest
.djvu-Dateien direkt ohne Tar-Pakete
Speicherplatz-Beschränkungen
- vm2180 hat ~2TB — ausreichend nur für Dateien mit Präfix A/B
- 333 gebündelte A/B-Dateien haben Tar-Pakete in
/genwiki/djvu_images/ - Originale
.djvu-Dateien liegen auffur.bitplan.com:/hd/luxio/genwiki/images/ - djvu-viewer (nur Intranet) verwendet derzeit Tar-Pakete; direkte
.djvu-Lesefunktion geplant
Aufgabe
Das GenWiki wird von MediaWiki 1.35 auf MediaWiki 1.39 LTS migriert (siehe Migration2025-11). Die DjVu-Anzeige ist eines von drei Kernproblemen dieser Migration.
Das GenWiki enthält ca. 4000 DjVu-Dateien — überwiegend genealogische Adressbücher — die mit Orten im GOV (Genealogisches Ortsverzeichnis) verknüpft sind. Ca. 50% dieser Dateien lagen unbundled vor, was zusammen mit einzeln gespeicherten Thumbnails zu einem Speicherbedarf von ~4 TB führte.
Der djvu-viewer löst dieses Problem durch Konvertierung zu gebündelten TAR-Paketen. Auf fur.bitplan.com sind die Dateien bereits vorbereitet:
/hd/yuyu(4 TB SSD) — konvertierte TAR-Pakete (1,8 TB), bis auf 10 Fehler vollständig/hd/luxio(10 TB HDD) — gebündelte.djvu-Dateien
Da vm2180 nur ~1 TB Platz hat, werden zunächst die Dateien mit Präfix A und B (333 Dateien) übertragen. Das djvu-wiki dient als Testumgebung; Hardlinks nach genwiki39e stellen sicher dass das zukünftige Produktivwiki dieselben Dateien ohne Zusatzspeicher nutzen kann.
Ziele
- Optische Prüfung: DjVu-Seiten werden im djvu-wiki systematisch dargestellt und sind visuell prüfbar
- Semantische Prüfung: GOV-Verknüpfungen bleiben erhalten und sind per SMW-Query abfragbar (siehe Semantifizierung)
- Batch-Verarbeitung: komplette Anfangsbuchstaben werden in einem Durchgang migriert, mit Statistik über Erfolge und Probleme
- Farm-Ansatz: Die Query-Patterns sind für alle Wikis der Farm wiederverwendbar — DjVu ist ein Thema, GOV ein anderes, dasselbe Werkzeug bedient beides
Drei Quellen — eine Abfragesprache
Alle Quellen werden über named parameterized queries abgefragt — ob SQL, SPARQL oder SMW-Ask spielt keine Rolle. Das Muster kommt aus dem genwiki2024-Projekt:
| Quelle | Inhalt | Beispiel-Queries |
|---|---|---|
| Wiki-Datenbank (MariaDB) | Welche DjVu-Dateien und Wiki-Seiten existieren | wiki_queries.yaml |
| DjVu-Viewer Datenbank (SQLite) | Konvertierungsstatus, Seitenanzahl, Fehler, gebündelt ja/nein | queries.yaml |
| GOV (SPARQL / pyomnigraph) | Ortsverknüpfungen zu den Dokumenten | gov-queries.yaml |
Demo-Dateien
Logarithmische Seitengrößen, alle gebündelt, alle mit Dateinamen-Präfix A oder B, alle mit Tar-Paketen.
Hinweis: AB1934-Oelde.djvu enthält zwar "Oelde" im Namen, fängt aber mit A an.
| Datei | Seiten | Größe | Hash-Pfad |
|---|---|---|---|
AB1938_Kreis-Beckum_Inhaltsverz.djvu |
3 | 50 KB | c/c7
|
Auenheim-Frauweiler_Dokument-1693-03-09.djvu |
10 | 3,9 MB | b/b8
|
AB1934-Oelde.djvu |
105 | 4,1 MB | 5/54
|
Adressbuch_Husum_1900.djvu |
313 | 7,7 MB | d/d1
|
Aachen-Burtscheit-AB-1887.djvu |
676 | 57 MB | a/a0
|
Vorgehen
djvu_migration.py — Teil des djvu-viewer-Projekts — kapselt die notwendigen Migrations Schritte:
- Batch auswählen (z.B.
--prefix Afür alle Dateien mit Anfangsbuchstabe A) - Drei Quellen zu den betroffenen DjVu-Dateien abfragen und Ergebnisse zusammenführen
- DjVu-Dateien unter Bewahrung der Timestamps kopieren
- Hard-Links zwischen den Wikis erstellen
- Wiki-Seiten im djvu-wiki systematisch erstellen mit Vorlage:DjVuViewer und Vorlage:GOV
- Statistik ausgeben: erfolgreich / Fehler / übersprungen — mit Ursachen (eigenartige Codierung, unvollständige Dateien u.a.)
Fehlerbehandlung und Batch-Logik werden aus dem bestehenden djvu-viewer übernommen.