Schreiben von XMP Metadaten in Bilddateien
Dies ist die technische Dokumentation für das Goobi-Plugin zum Schreiben von XMP Metadaten in Bilddateien.
Übersicht
Einführung
Die vorliegende Dokumentation beschreibt die Installation, die Konfiguration und den Einsatz des XMP-Metadaten Plugins in Goobi. Dieses Plugin ermöglicht es, verschiedenste Metadaten aus Goobi in die XMP-Header von Bilddateien zu schreiben. Dabei können sowohl Metadaten auf Werk-Ebene als auch Metadaten auf Bild-Ebene (wie zum Beispiel Zugehörigkeit zu Strukturelementen) geschrieben werden.
Installation
Zur Nutzung des Plugins muss es an den folgenden Ort kopiert werden:
Überblick und Funktionsweise
In Goobi muss das Plugin write-xmp
in den Schritten ausgewählt werden, in denen die Bildmetadaten geschrieben werden sollen. Außerdem sollten diese Schritte als automatisch
markiert werden, damit sie nicht manuell angestoßen werden müssen. Da das Schreiben der Metadaten auf den Daten der METS Datei beruht und eine fertige Paginierung und Strukutrierung erwartet, sollte das Schreiben der XMP-Header erst nach der Metadatenbearbeitung passieren.
Konfiguration
Die Konfigurationsdatei wird unter folgendem Pfad erwartet:
Diese Konfigurationsdatei kann im laufenden Betrieb angepasst werden. Eine Beispielkonfiguration, die alle Möglichkeiten des Plugins zeigt, ist hier zu sehen:
Der <config>
Block ist wiederholbar und kann so in unterschiedlichen Projekten verschiedene Metadaten definieren. Die Unterelemente <project>
und <step>
werden zur Prüfung genutzt, ob der vorliegende Block für den aktuellen Schritt genutzt werden soll. Dabei wird zuerst geprüft, ob es einen Eintrag gibt, der sowohl den Projektnamen als auch den Schrittenamen enthält. Ist dies nicht der Fall, wird nach einem Eintrag für durch den * gekennzeichnete, beliebige Projekte und dem verwendeten Schrittenamen gesucht. Wenn dazu ebenfalls kein Eintrag gefunden wurde, erfolgt eine Suche nach dem Projektnamen und beliebigen Schritten, ansonsten greift der default Block, bei dem sowohl <project>
als auch <step>
* enthalten.
In den beiden Feldern <useDerivateFolder>
und <useMasterFolder>
kann festgelegt werden, ob die Änderungen auf die Dateien im jeweiligen Ordner angewendet werden sollen. Mindestens einer der beiden Werte muss auf true
gesetzt sein.
Mittels <command>
wird das Tool definiert, das zum schreiben der Daten verwendet wird. Hier können je nach Betriebssystem oder verwendeter Dateiformate unterschiedliche Tools verwendet werden.
Das Element <parameter>
definiert die einzelnen Parameter, die beim Aufruf des Tools übergeben werden. Dabei können zwei Variablen verwendet werden. Mittels {FILE}
wird der absolute Pfad zur Datei übergeben, die manipuliert werden soll und {PARAM}
enthält die konfigurierten Elemente.
Die einzelnen Felder können kommasepariert angegeben werden, dann werden sie beim Aufruf als einzelne Parameter übergeben. Sollen hingegen die Werte der Parameter ','
enthalten, können die Parameter mittels "
maskiert werden.
<imageMetadataField>
enthält die Konfiguration für ein einzelnes Feld, dass geschrieben werden soll. Um in einem Aufruf mehrere Felder schreiben zu können, ist dieses Feld wiederholbar. Das Attribut name
ist verpflichtend und enthält den Feldnamen, der geschrieben werden soll.
Innerhalb des Feldes gibt es ein oder mehrere <goobiField>
Elemente. Diese enthalten die in Goobi verwendeten Metadaten, mit denen das XMP-Feld gefüllt werden soll. Für den Fall, dass mehrere <goobiField>
verwendet wurden, kann ein <separator>
definiert werden, der die einzelnen Daten trennt. Führende oder endende Leerzeichen müssen unicode maskiert mittels \u0020
angegeben werden. Die einzelnen Felder werden in der Reihenfolge hinzugefügt, in der sie konfiguriert wurden.
Jedes <goobiField>
Element enthält eine Reihe von Unterelementen. Mittels dieser wird festgelegt, um welches Element es sich handelt. Mögliche Werte sind processproperty
, templateproperty
, workpieceproperty
, staticText
, metadata
oder docstruct
.
Die processproperty
, templateproperty
und workpieceproperty
-Eigenschaften werden in der Goobi Datenbank gesucht. Sie enthalten daher immer identische Werte für alle Bilder. Es werden bis zu drei weitere Unterfelder erwartet:
<name>
: enthält den Namen der Eigenschaft, dessen Wert genutzt werden soll<useFirst>
: enthält dieses Feld den Wert true, wird der erste gefundene Wert genommen, ansonsetn wird nach weiteren Werten gesucht<separator>
: die hier konfigurierten Zeichen werden als Separator genutzt, falls mehr als ein Eintrag gefunden wurde.
Bei der Verwendung von staticText
wird ein zusätzliches Feld <text>
erwartet. Dessen Inhalt wird unverändert übernommen.
Wenn es sich um ein metadata
-Feld handelt, werden eine Reihe von weiteren Unterelementen erwartet.
<name>
: enthält den internen Mame des Metadatums<use>
: definiert, in welchen Strukturelementen nach dem Feld gesucht werden soll. Es sind folgende Werte möglich:logical
: die Suche ist auf das Hauptelement wie Monographie oder Band beschränkt. Hier stehen üblicherweise die Daten aus dem OPAC.anchor
: die Suche ist auf den anchor wie Mehrbändiges Werk oder Zeitschrift beschränkt.physical
: die Suche ist auf das Element physSequence beschränkt. Hier kann zum Beispiel die URN des Werkes gefunden werden.current
: die Suche wird nur in dem Element durchgeführt, dass dem aktuellen Bild zugeordet wurde und in der Hierarchie am tiefsten liegt. Zum Beispiel ein Kapitel oder ein Artikel.page
: die Suche wird nur innerhalb des page Elements durchgeführt. Hier stehen üblicherweise die granulare URNs oder die physische und logische Seitennummerlast
: die Suche wird in allen logischen Elementen durchgeführt, die dem Bild zugeordnet sind. Es wird das Metadatum mit der niedrigsten Hierarchiestufe übernommen.all
: die Suche wird in allen logischen Elementen durchgeführt, die dem Bild zugeordnet sind. Dabei wird mit dem höchsten begonnen. Alle gefundenen Werte werden konkateniert.
<separator>
: die hier konfigurierten Zeichen werden als Separator genutzt, falls mehr als ein Eintrag gefunden wurde.<useFirst>
: enthält dieses Feld den Werttrue
, wird der erste gefundene Wert genommen, ansonsetn wird nach weiteren Werten gesucht<staticPrefix>
: dieser Text wird vor den Metadateninhalt gesetzt<staticSuffix>
: dieser Text wird an den Metadateninhalt angehängt.
Sofern es sich bei dem Metadatum um eine Person handelt, wird der Wert aus displayName genutzt, ansonsten der normale Wert.
Bei docstruct
werden folgende Felder erwartet:
<language>
: hiermit wird definiert, in welcher Sprache der Name der Strukturelemente geschrieben werden soll. Fehlt die Angabe, wird der interne Name genutzt.<use>
: definiert, welches Strukturelement genutzt werden soll. Folgende Werte sind hier valide:first
: Nutze das erste dem Bild zugeordnete Element. Üblicherweise ist dies die Monographie oder der Bandlast
: Nutze das Element, dass dem aktuellen Bild zugeordet wurde und in der Hierarchie am tiefsten liegt. Zum Beispiel ein Kapitel oder ein Artikel.all
: Nutze alle zugewiesenen Strukturelemente, beginnend mit dem höchsten Element.
<separator>
: Dieser Separator wird bei der Verwendung vonall
zur Trennung der einzelnen Strukturelemente genutzt.
Beispiel: Dublin-Core Metadaten in alle Bilder eines Vorgangs schreiben
XMP-Header ermöglichen das Schreiben des vollständigen Dublin-Core Metadatensatzes. Mit folgender Beispielkonfiguration schreibt das Plugin alle Dublin-Core Metadaten aus Goobi heraus in die jeweiligen XMP-Header der Derivate:
Last updated