DjVu-Viewer Integration: Unterschied zwischen den Versionen
Wf (Diskussion | Beiträge) (DjVu-Viewer Integration Dokumentation auf Deutsch) |
Wf (Diskussion | Beiträge) |
||
| (47 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= DjVu-Viewer Integration = | = DjVu-Viewer Integration = | ||
== Gitlab == | |||
== | * [https://gitlab.genealogy.net/genwiki/update-auf-1.39/-/issues/17 Issue #17: DjVu Probleme im Rahmen MediaWiki 1.39 upgrade] | ||
* | * [https://gitlab.genealogy.net/genwiki/update-auf-1.39/-/issues/53 Issue #53: Hostsharing Server] | ||
* | |||
== Server-Topologie == | == Server-Topologie == | ||
| Zeile 22: | Zeile 19: | ||
| <code>genwiki39d</code> || http://genwiki39d.bitplan.com || fur.bitplan.com (nur Intranet) | | <code>genwiki39d</code> || http://genwiki39d.bitplan.com || fur.bitplan.com (nur Intranet) | ||
|- | |- | ||
| Produktion || https://wiki.genealogy.net || hetzner | |||
| Produktion || https://wiki.genealogy.net || | |||
|} | |} | ||
== 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 == | == Hintergrund == | ||
* Ursprung: [https://stackoverflow.com/questions/45984437/djvu-thumbnails- | * Ursprung: [https://stackoverflow.com/questions/45984437/djvu-thumbnails-werden-ueberhaupt-nicht-erzeugt DjVu-Thumbnails werden überhaupt nicht erzeugt] (2017) | ||
* 1,5 Jahre Entwicklung → [https://github.com/WolfgangFahl/djvu-viewer djvu-viewer] - | * 1,5 Jahre Entwicklung → [https://github.com/WolfgangFahl/djvu-viewer djvu-viewer] - see [https://wiki.bitplan.com/index.php/Djvu-viewer wiki.bitplan.com/Djvu-viewer] | ||
* Grundursache: Nicht-gebündelte (indirekte) DjVu-Dateien verursachen <code>DjVuImage::getMultiPageInfo: multi-page DJVU file contained no pages</code> | * Grundursache: Nicht-gebündelte (indirekte) DjVu-Dateien verursachen <code>DjVuImage::getMultiPageInfo: multi-page DJVU file contained no pages</code> | ||
* Lösung: '''Ausschließlich gebündelte DjVu-Dateien verwenden''' | * Lösung: '''Ausschließlich gebündelte DjVu-Dateien verwenden''' | ||
| Zeile 42: | Zeile 40: | ||
* djvu-viewer (nur Intranet) verwendet derzeit Tar-Pakete; direkte <code>.djvu</code>-Lesefunktion geplant | * djvu-viewer (nur Intranet) verwendet derzeit Tar-Pakete; direkte <code>.djvu</code>-Lesefunktion geplant | ||
== Aufgabe == | |||
Das [https://wiki.genealogy.net GenWiki] wird von [https://www.mediawiki.org/wiki/MediaWiki_1.35/de MediaWiki 1.35] auf [https://www.mediawiki.org/wiki/MediaWiki_1.39/de MediaWiki 1.39 LTS] migriert (siehe [https://genwiki39.genealogy.net/Migration2025-11 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 [https://gov.genealogy.net 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 [https://wiki.bitplan.com/index.php/Djvu-viewer djvu-viewer] löst dieses Problem durch Konvertierung zu gebündelten TAR-Paketen. Auf <code>fur.bitplan.com</code> sind die Dateien bereits vorbereitet: | |||
* <code>/hd/yuyu</code> (4 TB SSD) — konvertierte TAR-Pakete (1,8 TB), bis auf 10 Fehler vollständig | |||
* <code>/hd/luxio</code> (10 TB HDD) — gebündelte <code>.djvu</code>-Dateien | |||
Da vm2180 nur ~1 TB Platz hat, werden zunächst die Dateien mit Präfix '''A und B''' (333 Dateien) übertragen. Das [[Hauptseite|djvu-wiki]] dient als Testumgebung; Hardlinks nach <code>genwiki39e</code> 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 [https://github.com/WolfgangFahl/genwiki2024 genwiki2024]-Projekt: | |||
{| class="wikitable" | |||
! Quelle !! Inhalt !! Beispiel-Queries | |||
|- | |||
| Wiki-Datenbank (MariaDB) || Welche DjVu-Dateien und Wiki-Seiten existieren || [https://github.com/WolfgangFahl/genwiki2024/blob/main/genwiki_examples/wiki_queries.yaml wiki_queries.yaml] | |||
|- | |||
| DjVu-Viewer Datenbank (SQLite) || Konvertierungsstatus, Seitenanzahl, Fehler, gebündelt ja/nein || [https://github.com/WolfgangFahl/genwiki2024/blob/main/genwiki_examples/queries.yaml queries.yaml] | |||
|- | |||
| GOV ([https://gov.genealogy.net SPARQL] / [https://github.com/WolfgangFahl/pyomnigraph pyomnigraph]) || Ortsverknüpfungen zu den Dokumenten || [https://github.com/WolfgangFahl/genwiki2024/blob/main/genwiki_examples/gov-queries.yaml gov-queries.yaml] | |||
|} | |||
== Demo-Dateien == | == Demo-Dateien == | ||
Logarithmische Seitengrößen, alle gebündelt, alle A | Logarithmische Seitengrößen, alle gebündelt, alle mit Dateinamen-Präfix A oder B, alle mit Tar-Paketen. | ||
Hinweis: <code>AB1934-Oelde.djvu</code> enthält zwar "Oelde" im Namen, fängt aber mit '''A''' an. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Zeile 59: | Zeile 90: | ||
|} | |} | ||
== | == Vorgehen == | ||
<code>djvu_migration.py</code> — Teil des [https://github.com/WolfgangFahl/djvu-viewer djvu-viewer]-Projekts — kapselt die notwendigen Migrations Schritte: | |||
# Batch auswählen (z.B. <code>--prefix A</code> fü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 [https://wiki.bitplan.com/index.php/Djvu-viewer djvu-viewer] übernommen. | |||
== Siehe auch == | == Siehe auch == | ||
* [[Hauptseite]] - | * [[Semantifizierung]] | ||
* [[Hauptseite]] | |||
* [https://wiki.bitplan.com/index.php/Djvu-viewer djvu-viewer Dokumentation (BITPlan Wiki)] | |||
* [https://github.com/WolfgangFahl/djvu-viewer djvu-viewer auf GitHub] | * [https://github.com/WolfgangFahl/djvu-viewer djvu-viewer auf GitHub] | ||
* [https:// | * [https://github.com/WolfgangFahl/genwiki2024 genwiki2024 auf GitHub] | ||
* [https://stackoverflow.com/questions/45984437/djvu-thumbnails- | * [https://stackoverflow.com/questions/45984437/djvu-thumbnails-werden-ueberhaupt-nicht-erzeugt Ursprüngliche Problemstellung (StackOverflow 2017)] | ||
Aktuelle Version vom 20. Februar 2026, 15:44 Uhr
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.