Der LayoutWizzard-Workflow in Goobi besteht in aller Regel aus mehreren Goobi-Workflow Schritten die zusammenarbeiten. Ein typischer LayoutWizzard Workflow als Teil eines Goobi-Workflows kann dabei zum Beispiel wie folgt aussehen:
Im ersten Schritt (in diesem Beispiel Automatic Image Analysis
) findet eine automatische Layoutanalse der Bilder zur Prüfung der Rotation, des Inhaltsbereichs sowie zur Position der Buchfalz statt. Dies geschieht üblicherweise in einem externen TaskManager, um die Systemressourcen von Goobi zu entlasten. Im zweiten Schritt (in diesem Beispiel LayoutWizzard
) erfolgt dann eine manuelle Überprüfung und gegebenenfalls eine Korrektur der analysierten Ergebnisse. Diese Bearbeitung erfolgt innerhalb einer eigenen Nutzeroberfläche, die als Goobi-Plugin installiert wurde. Sobald diese manuelle Überprüfung dann abgeschlossen wurde, findet die automatische Speicherung (hier benannt als Automatic Image Cropping
) der zugeschnittenen Derivate statt, auf Basis der zuvor analysierten und eventuell angepassten Daten. Auch diese Speicherung findet üblicherweise innerhalb des TaskManagers statt.
Da die einzelnen Workflow-Schritte des LayoutWizzards auf einem gemeinsamen Datenbestand an Konfigurations- und Analysedaten arbeiten, müssen die Daten zumindest für die Dauer des LayoutWizzard Workflows persistent vorgehalten werden. Dies geschieht in der Datei imageData.xml
im Goobi-Vorgangsordner. Beispielhaft lautet ein solcher vollständiger Pfad zu dieser Datei entsprechend:
Diese Datei enthält sämtliche Konfigurationseinstellungen für den entsprechenden Vorgang sowie die Analysedaten zu jedem Bild, aus denen im abschließenden Speicherschritt die Derivate erstellt werden.
Da die Installation, Konfiguration sowie die technische Arbeitsweise umfangreichere Erläuterungen benötigen, sind diese in jeweilig einzelnen Kapiteln dieser Dokumentation beschrieben. Folgende Kapitel zu den technischen Details stehen zur Verfügung:
Die Installation besteht aus insgesamt vier Programmbibliotheken, die im Apache Tomcat bzw. in Goobi erreichbar sein müssen:
layoutwizzard.jar
Im lib
-Ordner der Goobi webapp im Tomcat
plugin_intranda_step_LayoutWizzard.jar
Im Ordner plugins/step
im Goobi-Arbeitsverzeichnis
plugin_intranda_step_LayoutWizzard-GUI.jar
Im Ordner plugins/GUI
im Goobi-Arbeitsverzeichnis
Neben diesen Programmdateien werden zwei Konfigurationsdateien benötigt, eine für das Goobi-Plugin, und eine für die zugrundeliegende LayoutWizzard-Programmbibliothek.
Die Konfigurationsdatei des Plugins plugin_LayoutWizzardPlugin.xml
muss im Konfigurationsverzeichnis config
innerhalb des Goobi-Arbeitsverzeichnisses liegen. Üblicherweise handelt es sich hierbei um diesen Pfad zur Datei:
Innerhalb dieser Konfigurationsdatei wird der Pfad zur eigentlichen zentralen Konfiguration des LayoutWizzards angegeben. Der Aufbau dieser Datei sieht dabei folgendermaßen aus:
Die eigentliche Konfigurationsdatei gibt für den Vorgang der Layoutanalyse verschiedene Parameter vor. Diese Parameter sind beispielhaft in der folgenden Konfigurationsdatei aufgeführt. Sie befindet sich, wie in der Plugin-Konfigurationsdatei definiert, unter folgendem Pfad:
Beispielhaft hat diese Konfigurationsdatei den folgenden Inhalt:
Details über die Anpassung der Konfigurationen finden sich im Abschnitt zur Konfiguration.
Die Konfigurationsdatei des Goobi Step Plugins, das die Nutzeroberfläche für den LayoutWizzard darstellt, muss im config
Verzeichnis der Goobi-Installation liegen. Ihr Dateiname lautet in aktuellen Goobi-Versionen plugin_intranda_step_LayoutWizzard.xml
.
Üblicherweise lautet der vollständige Pfad zu dieser Konfigurationsdatei wie folgt:
Der Inhalt dieser Konfigurationsdatei ist folgendermaßen aufgebaut:
ACHTUNG: Bitte beachten Sie, dass hier der korrekte Pfad zur Konfigurationsdatei des LayoutWizzards innerhalb des Elements<layout-wizzard-config-path>
angegeben ist.
Die zentrale Konfiguration des LayoutWizzards findet in einer eigenständigen Konfigurationsdatei statt. Diese kann an einem beliebigen Ort im Dateisystem liegen, da ihr Pfad in jedem Programmbestandteil des LayoutWizzards angegeben werden kann. Üblicherweise lautet der Pfad zu dieser zentralen Konfigurationsdatei folgendermaßen:
Der Inhalt einer solchen Konfiguration sieht beispielhaft wie folgt aus:
Die Konfiguration besteht aus einigen allgemeinen Einstellungen und mehreren <analysis>
Blöcken. Die <analysis>
Blöcke regeln im Wesentlichen die Einstellungen für die automatische Analyse. Verschiedene Projekte oder Vorgänge können dabei unterschiedliche Einstellungen verwenden, indem Sie der automatischen Analyse die id
des <analysis>
Blocks übergeben.
Allgemeine Einstellungen betreffen immer alle Vorgänge und werden auch nicht durch vorgangsspezifische Einstellungen überschrieben.
Die folgende Liste an allgemeinen Konfigurationspfaden ist nicht vollständig. Sie enthält jedoch alle Konfigurationen die individuell für eine Installation angepasst werden müssen.
Jeder <analysis>
Block hat ein Attribut id
, das regelt, welcher Block für eine bestimmte Analyse verwendet wird. Der letzte Block muss die id="default"
haben. Einstellungen aus diesem Block werden immer verwendet, wenn einem Analyseaufruf keinen Analyse-Id übergeben wird, oder wenn eine Einstellung nicht im eigentlich verwendeten Block konfiguriert ist. Alle anderen Blöcke bestehen entsprechend aus der Teilmenge an Konfigurationen, die von der default
-Konfiguration abweichen.
Folgende Einstellungen können in jedem <analysis>
Block existieren:
Die Einstellungen in den <analysisStep>
Blöcken betreffen spezifische Parameter der Analyse-Algorithmen. Sie werden hier nicht weiter beschrieben. Benutzer können jedoch in der Oberfläche potentiell jeden Parameter anpassen. Sollten sich so vorgenommene Einstellungen genug bewähren, um in die Konfiguration übernommen zu werden, kann der entsprechende Block in der Konfigurationsdatei auf den neuen Wert gesetzt werden. Der passende Parameter-Block kann hierbei ermittelt werden, indem der <analysisStep>
zum jeweiligen Analyse-Schritt in der Konfigurationsdatei herausgefunden und dort der Block mit dem internen Parameternamen geändert wird. Der interne Parametername wird in der Oberfläche als Tooltip angezeigt, wenn der Mauszeiger über das Label des veränderten Parameters gehalten wird.
Zusätzlich können alle Analyse-Parameter-Blöcke das Attribut visibility
besitzen, das die Sichtbarkeit des Parameters in der Oberfläche regelt. Fehlt dieses Attribut wird der default-Wert HIDDEN
verwendet.
previews/previewsPerPage
Anzahl an Bildern pro Seite der Vorschauansicht im Goobi-LayoutWizzard-Plugin
previews/previewHeight
Höhe der Thumbnail-Datei in Pixeln, die in der Vorschauansicht angezeigt werden. Kleinere Bilder ermöglichen eine schnellere Anzeige, haben aber eine geringere Auflösung.
previews/largePreviewWidth
Breite der Thumbnail-Datei in Pixeln, die für die Einzelseiten-Ansicht des Goobi-LayoutWizzard-Plugins angezeigt wird. Kleinere Bilder ermöglichen eine schnellere Anzeige, haben aber eine geringere Auflösung.
processingThreads
Die maximale Anzahl gleichzeitig laufender Analyse- oder Speichervorgänge. Dies gilt für Goobi und TaskManager separat. Pro Vorgang werden die Bilder sequenziell bearbeitet. Eine gleichzeitige Bearbeitung kann jedoch vorkommen, wenn mehrere LayoutWizzard-Jobs im TaskManager parallel laufen.
analsisTimeout/duration
Dieser Wert gibt die maximale Dauer für die Analyse oder das Speichern eines Bildes an, nach der die Ausführung für das Bild abgebrochen werden soll. Eine wegen Timeouts abgebrochene Analyse wird vermerkt, die Analyse der folgenden Bilder jedoch fortgesetzt. Die fehlenden Analysedaten können in der manuellen Kontrolle nachgetragen werden. Ein abgebrochenes Speichern beendet jedoch immer den TaskManager-Job mit einem Fehler.
Sinnvolle Werte für den Timeout liegen zwischen 4 Sekunden und etwa einer Minute, je nach Leistung und Zuverlässigkeit des Systems, und der Größe und Komplexität der zu analysierenden Bilder.
analysisTimeout/unit
Dieser Wert definiert die Zeiteinheit, in der analysisTimeout/duration
angegeben wird. Mögliche Werte sind MICROSECONDS
, MILLISECONDS
, SECONDS
und MINUTES
.
saving/defaultCompression
Mit diesem Wert wird die Kompressionsstufe festgelegt, die standardmäßig für das Speichern der Derivate verwendet wird. Gültige Werte sind hierbei NONE
oder JPEG
. Das Attribut quality
gibt die Kompressionsqualität bei JPEG-Kompression an. Sie muss zwischen 0
und 100
liegen.
saving/overwriteExistingImages
Mit diesem Wert kann festgelegt werden, ob bereits existierende Bildderivate während des Speicherns überschrieben werden sollen.
saving/ignoreImageMetadataErrors
Hier wird angegeben, ob die Derivate auch gespeichert werden sollen, wenn nicht alle Bildmetadaten übernommen werden können. Dies kann beispielsweise vorkommen, wenn für die Java-Bildbibliothek unbekannte Metadaten vorhanden sind. Es ist daher ratsam diesen Wert immer auf false
zu lassen, solange diese Einstellung nicht explizit benötigt wird.
info/label
Hierbei handelt es sich um die Bezeichnung der Analyse-Einstellung in der Plugin-Oberfläche.
pageMode
Dieser Wert definiert den standardmäßig zu verwendenden Seitenmodus. Die hierfür gültigen Angaben sind innerhalb der
Ordner- und Dateioptionen beschrieben.
externalCommands/@use
An dieser Stelle wird festgelegt, ob die Erzeugung von Bildern für die Analyse und das Speichern der Derivate durch ein externes Programm erfolgen soll. Dies kann die Bilderzeugung unter Umständen erheblich beschleunigen, aber auch fehleranfälliger sein, da die Erzeugung dann außerhalb von Java stattfindet.
externalCommands/convert
Mit dieser Wert wird der Konsolenbefehl definiert, mit dem das externe Programm zum Erzeugen von Bildern aufgerufen werden soll. An diesen Befehl werden die Spezifika der Ausführung angehängt, die dem Format von ImageMagick
folgen. Das aufgerufene Programm muss also mit Parametern aufgerufen werden können, die kompatibel zu ImageMagick
sind.
analysisStep
Dieser Wert enthält alle internen Parameter den jeweiligen automatischen Analyseschritt.
analysisStep/@name
Hiermit wird der interne Name des <analysisStep>
Blocks festgelegt. Er muss einem der folgenden Werte entsprechen:
PAGESKEW
: Seite ausrichten
CONTENTAREA
: Seite zuschneiden
BOOKSPINE
: Falz erkennen
analysisStep/@use
Mit diesem Wert kann festgelegt werden, ob ein Analyseschritt verwendet werden soll. Der Wert false
deaktiviert den Analyseschritt.
analysisStep/@order
An dieser Stelle wird die Reihenfolge des Analyseschrittes innerhalb der gesamten Analyse festgelegt.
VISIBLE
Der Parameter ist in der Oberfläche immer sichtbar, wenn der zugehörige Schritt ausgewählt ist.
HIDDEN
Der Parameter ist in der Oberfläche nur sichtbar, wenn der Analyseschritt-Block in der Oberfläche im erweiterten Modus ist.
INVISIBLE
Der Parameter wird in der Oberfläche gar nicht angezeigt.