DjVu-Viewer Integration: Unterschied zwischen den Versionen
Wf (Diskussion | Beiträge) |
Wf (Diskussion | Beiträge) |
||
| Zeile 57: | Zeile 57: | ||
|} | |} | ||
== | == 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] | |||
|} | |||
== Vorgehen == | |||
<code>djvu_migration.py</code> — Teil des [https://github.com/WolfgangFahl/djvu-viewer djvu-viewer]-Projekts — kapselt alle Schritte: | |||
# Batch auswählen (z.B. <code>--prefix A</code> für alle Dateien mit Anfangsbuchstabe A) | |||
# Drei Quellen abfragen und Ergebnisse zusammenführen | |||
# 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. | |||
== Server-Topologie == | |||
{| class="wikitable" | |||
! wikiId !! URL !! Standort | |||
|- | |||
| <code>djvu-wiki</code> || [http://djvu-wiki.genealogy.net djvu-wiki.genealogy.net] || vm2180 — Testumgebung | |||
|- | |||
| <code>genwiki39e</code> || [http://genwiki39e.genealogy.net genwiki39e.genealogy.net] || vm2180 — zukünftiges Produktivwiki | |||
|- | |||
| <code>genwiki-farm</code> || [http://genwiki-farm.genealogy.net genwiki-farm.genealogy.net] || vm2180 — Farm-Kern | |||
|- | |||
| <code>genwiki39</code> || [https://genwiki39.genealogy.net genwiki39.genealogy.net] || separater öffentlicher Docker-Server | |||
|- | |||
| Produktion || [https://wiki.genealogy.net wiki.genealogy.net] || Hetzner | |||
|} | |||
== Gitlab == | |||
* [https://gitlab.genealogy.net/genwiki/update-auf-1.39/-/issues/17 Issue #17: DjVu - temporäres Test-Wiki für DjVu-Migration] | |||
* [https://gitlab.genealogy.net/genwiki/update-auf-1.39/-/issues/53 Issue #53: Hostsharing Server] | |||
== Siehe auch == | |||
* [[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/genwiki2024 genwiki2024 auf GitHub] | |||
* [https://stackoverflow.com/questions/45984437/djvu-thumbnails-werden-ueberhaupt-nicht-erzeugt Ursprüngliche Problemstellung (StackOverflow 2017)] | |||
== Siehe auch == | == Siehe auch == | ||
Version vom 20. Februar 2026, 15:37 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) |
djvu-viewer |
http://djvu.bitplan.com | fur.bitplan.com (nur Intranet) |
| Produktion | https://wiki.genealogy.net | hetzner |
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
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
|
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 |
Vorgehen
djvu_migration.py — Teil des djvu-viewer-Projekts — kapselt alle Schritte:
- Batch auswählen (z.B.
--prefix Afür alle Dateien mit Anfangsbuchstabe A) - Drei Quellen abfragen und Ergebnisse zusammenführen
- 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.
Server-Topologie
| wikiId | URL | Standort |
|---|---|---|
djvu-wiki |
djvu-wiki.genealogy.net | vm2180 — Testumgebung |
genwiki39e |
genwiki39e.genealogy.net | vm2180 — zukünftiges Produktivwiki |
genwiki-farm |
genwiki-farm.genealogy.net | vm2180 — Farm-Kern |
genwiki39 |
genwiki39.genealogy.net | separater öffentlicher Docker-Server |
| Produktion | wiki.genealogy.net | Hetzner |
Gitlab
Siehe auch
- Semantifizierung
- Hauptseite
- djvu-viewer Dokumentation (BITPlan Wiki)
- djvu-viewer auf GitHub
- genwiki2024 auf GitHub
- Ursprüngliche Problemstellung (StackOverflow 2017)