-
Notifications
You must be signed in to change notification settings - Fork 66
aDIS MODS Import via SRU und Datei Upload
Mit Kitodo.Production können durch diese Erweiterung Metadaten im MODS-Format aus dem Bibliothekssystem aDIS über eine SRU-Schnittstelle oder per Datei-Upload importiert werden. Der Import über die aDIS-Schnittstelle, beziehungsweise durch den Datei-Upload ist eine Erweiterung des bestehenden MODS-Plugins und wird im Formular zum Anlegen neuer Vorgänge umgesetzt.
Die Erweiterung wurde durch die Erstellung, beziehungsweise die Anpassung der folgenden Dateien realisiert:
- Die Definition und die Konfiguration der SRU-Schnittstelle, beziehungsweise des Datei-Uploads erfolgt über die Konfigurationsdatei
kitodo_mods_opac.xml
. - Die Definition und die Konfiguration des Metadatenimports erfolgt über die Konfigurationsdatei mappingFile, in diesem Fall
adis2kitodo.xsl
. Die Benennung der Datei kann angepasst werden.
In dem Element wird der Name der XSLT-Datei eingetragen, die die Abbildung von Katalog- auf Kitodo-Metadatenfelder enthält.
<mappingFile>adis2kitodo.xsl</mappingFile>
Siehe auch: https://github.com/kitodo/kitodo-production/wiki/Kalliope-SRU-deutsch#abbildungsdatei
In dem Element wird der XPath des Elements eingetragen, in dem die ID des gesuchten Datensatzes enthalten ist. In diesem Fall SATZNR.
<identifierParameter value="SATZNR" />
In dem Element werden durch die Unterelemente weitere Suchfelder definiert. In diesem Anwendungsfall wird jedoch nur eine Suchmöglichkeit angeboten. Deshalb wird diese Funktion nicht weiter erläutert.
Siehe auch: https://github.com/kitodo/kitodo-production/wiki/Kalliope-SRU-deutsch#suchfelder
In dem Element wird der XPath des Elements eingetragen, mit dem man das Eltern-Element identifizieren kann. Dazu werden über diese Konfiguration auch die übergeordneten Dokumente abgerufen.
<parentElement xpath="//mods:mods/mods:relatedItem[@type='host']" />
In dem Element wird der XPath des Elements eingetragen, in dem das aktuelle Dokument enthalten ist. Im unten angegebenen Beispiel ist es der Pfad zum MODS-Knoten.
<identifierElement xpath="//goobi:metadata[@name='CatalogIDDigital']" />
<parentElement xpath="//mods:mods/mods:relatedItem/mods:identifier[@type='localparentid']" type="reference" />
<recordElement xpath="//srw:searchRetrieveResponse/srw:records/srw:record" />
In dem Element wird die Anzahl der zu berücksichtigenden Kind-Elemente eingetragen. Falls mehr Kind-Elemente als der angegebene Wert vorhanden sind, werden diese nicht importiert.
<maximumChildRecords>50</maximumChildRecords>
In dem Element wird der Import per Datei-Upload aktiviert. In dem Formular zum Anlegen von neuen Vorgängen kann dann zwischen dem Import per Schnittstelle und dem Import per Datei-Upload gewechselt werden.
<fileUpload>true</fileUpload>
In dem Element werden die zum Import zugelassenen Dokumenttypen definiert und die Elemente zu deren Identifizierung beschrieben.
<structuretypes>
<type rulesetType="Monograph">
<mandatoryElement>//mods:mods/mods:originInfo[@eventType='publication']/mods:issuance[text() = 'monographic']</mandatoryElement>
</type>
<type rulesetType="Volume">
<mandatoryElement>//mods:mods/mods:originInfo[@eventType='publication']/mods:issuance[text() = 'multipart monograph']</mandatoryElement>
<mandatoryElement>//mods:mods/mods:relatedItem[@type='host']</mandatoryElement>
</type>
<type rulesetType="MultiVolumeWork">
<forbiddenElement>//mods:mods/mods:originInfo[@eventType='publication']/mods:issuance[text() = 'monographic']</forbiddenElement>
<forbiddenElement>//mods:mods/mods:originInfo[@eventType='publication']/mods:issuance[text() = 'multipart monograph']</forbiddenElement>
<forbiddenElement>//mods:mods/mods:relatedItem[@type='host']</forbiddenElement>
</type>
</structuretypes>
Zu beachten ist, dass die Reihenfolge der Konfiguration von Bedeutung ist. Falls eine Konfiguration auf zwei Dokumenttypen zutrifft, gewinnt immer die erstgenannte Konfiguration.
In der mappingFile werden durch XPath die MODS-Elemente für den Import definiert und dem jeweiligen Kitodo-Element zugewiesen. Es ist möglich, die Inhalte der MODS-Elemente beim Import durch XSLT-Befehle anzupassen.
<!-- ### Titel ### -->
<xsl:template match="mods:mods/mods:titleInfo[not(@type='abbreviated')]/mods:title">
<goobi:metadata name="TitleDocMain">
<xsl:value-of select="normalize-space()" />
</goobi:metadata>
</xsl:template>