goobi_opac.xml

In der Konfigurationsdatei goobi_opac.xml wird die Kommunikation von Goobi workflow mit externen Datenquellen festgelegt. Dies betrifft zumeist Systeme wie Bibliothekskataloge. Die Datei befindet sich üblicherweise an folgendem Speicherpfad:

/opt/digiverso/goobi/config/goobi_opac.xml

Beispielhaft sieht diese Konfigurationsdatei wie folgt aus:

goobi_opac.xml
<?xml version="1.0" encoding="UTF-8"?>
<opacCatalogues>
    <doctypes>
        <type title="monograph" isContainedWork="false" isMultiVolume="false" isPeriodical="false" rulesetType="Monograph" rulesetChildType="Special Monograph" tifHeaderType="Monographie">
            <label language="de">Monographie</label>
            <label language="en">Monograph</label>
            <mapping>Aa</mapping>
            <mapping>Oa</mapping>
            <mapping>Monograph</mapping>
        </type>
        <type title="periodical" isContainedWork="false" isMultiVolume="false" isPeriodical="true" rulesetType="Periodical" rulesetChildType="PeriodicalVolume" tifHeaderType="Band_Zeitschrift">
            <label language="de">Zeitschrift</label>
            <label language="en">Periodical</label>
            <mapping>Ab</mapping>
            <mapping>Ob</mapping>
            <mapping>Periodical</mapping>
        </type>
        <type title="multivolume" isContainedWork="false" isMultiVolume="true" isPeriodical="false" rulesetType="MultivolumeWork" rulesetChildType="Volume" tifHeaderType="Band_MultivolumeWork">
            <label language="de">Mehrbändiges Werk</label>
            <label language="en">Multivolume work</label>
            <mapping>Of</mapping>
            <mapping>Af</mapping>
            <mapping>OF</mapping>
            <mapping>AF</mapping>
            <mapping>MultiVolumeWork</mapping>
        </type>
    </doctypes>
    <catalogue title="K10Plus">
        <config opacType="PICA" description="K10plus" protocol="http://" address="kxp.k10plus.de" port="80" database="2.1" charset="UTF-8" iktlist="IKTLIST-GBV.xml" ucnf="UCNF=NFC&amp;XPNOFF=1" />
        <searchFields>
            <searchField label="LCCN" value="12" />
            <searchField label="ISBN" value="7" />
            <searchField label="ISSN" value="8" />
        </searchFields>
		<specialmapping type="multivolume" />k10_multivolume</specialmapping>
		<specialmapping type="periodical" />k10_periodical</specialmapping>
    </catalogue>
    <catalogue title="Library of Congress">
        <config opacType="GBV-MARC" description="Library of Congress SRU (Voyager)" address="http://opac.intranda.com/sru/DB=1" port="80" database="1" iktlist="IKTLIST.xml" ucnf="XPNOFF=1" />
        <searchFields>
            <searchField label="LCCN" value="12" />
            <searchField label="ISBN" value="7" />
            <searchField label="ISSN" value="8" />
        </searchFields>
    </catalogue>
    <catalogue title="UBBI">
        <config opacType="ALMA-MARC" description="Katalog UB Bielefeld" address="https://hbz-ubbi.alma.exlibrisgroup.com/view/sru/49HBZ_BIE" port="80" database="1" iktlist="IKTLIST.xml" ucnf="XPNOFF=1" />
        <searchFields>
            <searchField label="HBZHT" value="alma.other_system_number_035_a_exact"/>
            <searchField label="MMS ID" value="mms_id"/>
            <searchField label="ISBN" value="alma.isbn"/>
            <searchField label="ISSN" value="alma.issn"/>
        </searchFields>
        <beautify>
            <setvalue tag="tag1" subtag="21" value="a">
                <condition tag="tag2" subtag="22" value="s" />
          	</setvalue>
 			<setvalue tag="tag3" subtag="33" value="m">
                <condition tag="tag4" subtag="33" value="s" />
            </setvalue>
		</beautify>
    </catalogue>
</opacCatalogues>

Publikationstypen

In dem Element <doctypes> können mehrere Publikationstypen definiert werden. Jeder Typ steht in einem eigenen <type>-Element und hat einige Eigenschaften, die über Parameter und Unterelemente angegeben werden.

Eigenschaften eines Publikationstyps

Alle wichtigen Eigenschaften eines Publikationstyps werden als Parameter im <type>-Element angegeben. Folgende Parameter können verwendet werden:

Übersetzung des Titels

Die im title-Parameter angegebene Bezeichnung eines Publikationstyps wird softwareintern verwendet und ist daher für Anwender nicht immer gut lesbar und wird nicht automatisch übersetzt. Daher kann der Name des Publikationstyps mit dem <label>-Element in verschiedene Sprachen übersetzt werden. Mit dem language-Parameter wird das Sprach-Kürzel angegeben. Je nach Konfiguration werden üblicherweise folgende Sprachen unterstützt:

<type title="periodical">
    <label language="de">Deutsche Übersetzung</label>
    <label language="en">Englische Übersetzung</label>
    <label language="es">Spanische Übersetzung</label>
    <label language="fr">Französische Übersetzung</label>
    <label language="it">Italienische Übersetzung</label>
    <label language="iw">Hebräische Übersetzung</label>
    <label language="nl">Niederländische Übersetzung</label>
    <label language="pt">Portugiesische Übersetzung</label>
</type>

Mapping zu anderen Datenformaten

Es kann vorkommen, dass ein Publikationstyp mit einer Suchfunktion oder mit externen Datenformaten über bestimmte Bezeichnungen oder Kürzel gefunden werden können soll, die nicht aus dem Titel ableitbar sind. Dazu können für jeden Typen mit dem Unterelement <mapping>id42</mapping> weitere Bezeichnungen angegeben werden. Wird dann zum Beispiel nach der ID id42 gesucht, so wird der entsprechende Publikationstyp gefunden.

Kataloge

Goobi kann Metadaten aus verschiedenen Katalogen verwenden. Diese werden mit dem <catalogue> Element direkt im <opacCatalogues> Element eingetragen. Für jedes Katalog-Element wird mit dem title Parameter der offizielle Name des jeweiligen Katalogs angegeben.

Konfiguration eines Katalogs

Einige weitere Eigenschaften eines Katalogs werden im Unterelement <config> als Parameter angegeben. Folgende Parameter können verwendet werden:

Optionen für die Suche

Metadaten werden in Katalogen mithilfe bestimmter Nummern identifiziert (zum Beispiel ISBN oder ISSN). Sollen in Goobi Metadaten anhand einer vorgegebenen Nummer aus dem jeweiligen Katalog importiert werden, können mit dem ` Element verschiedene Nummernsysteme aufgelistet werden. Ein Anwender kann dann im folgenden Beispiel eine ISBN-Nummer eingeben und dazu passend das ISBN-Feld auswählen:

<searchFields>
    <searchField label="LCCN" value="12" />
    <searchField label="ISBN" value="7" />
    <searchField label="ISSN" value="8" />
</searchFields>

Dabei stellt jedes <searchField> Element eine Option in dem zugehörgigen Dropdown-Menü dar. Der in label angegebene Text wird auf der Nutzeroberfläche dargestellt. Der in value definierte Wert ist die interne ID des Nummernsystems. Je nach Katalog kann auch eine textbasierte ID verwendet werden. Das kann zum Beispiel so aussehen:

<searchField label="ISBN" value="alma.isbn"/>
<searchField label="ISSN" value="alma.issn"/>

Detailierte Informationen über unterstützte Nummernsysteme können von der jeweiligen Katalog-API abgefragt werden. Dies ist eine XML-Datei, die direkt im Browser aufgerufen werden kann. Die Domain muss entsprechend dem verwendeten Anbieter angepasst werden.

https://opac.intranda.com/XML=1.0/IKTLIST
https://kxp.k10plus.de/XML=1.0/IKTLIST

Mapping zu Publikationstypen

Wie oben beschrieben, können Publikationstypen mit alternativen Bezeichnungen gefunden werden. Zusätzlich ist es in <catalogue> Elementen möglich, mit dem <specialmapping> Element katalogspezifische Bezeichnungen (und damit auch Kataloge) zu Publikationstypen zu verknüpfen. Damit können über die alternativen Bezeichnungen eines Katalogs passende Publikationstypen definiert und gefunden werden.

Dabei verweist der type-Parameter des <specialmapping>-Elements auf den title des zuvor definierten Publikationstypen. Das <specialmapping> Element beinhaltet eine alternative Bezeichnung. Folgendes Beispiel würde für einen K10Plus-Katalog den Suchbegriff k10plus_periodical mit dem Publikationstyp periodical verknüpfen:

<doctypes>
    <type title="periodical">
    ...
    </type>
</doctypes>
...
<catalog title="K10Plus">
    <specialmapping type="periodical">k10plus_periodical</specialmapping>
</catalog>

Anpassen von Datensätzen aus MARC-Dateien

Werden Datensätze aus Katalogen abgefragt, so werden diese unter anderem über MARC-Dateien in Goobi importiert. Datensätze aus diesen Dateien können durch bestimmte Ersetzungsmuster angepasst werden. Dazu wird das <beautify> Element als direktes Unterelement des entsprechenden <catalogue> Elements verwendet und kann beliebig viele <setvalue> Befehle enthalten.

Da die Bearbeitung der MARC-Daten mit diesen Befehlen sehr komplex werden kann, werden hier auf Basis des folgenden MARC-Daten-Ausschnitts nur ein paar einfache Beispiele beschrieben.

...
<datafield tag="book" ind1="" ind2="">
    <subfield code="author">Alice April</subfield>
    <subfield code="title">Garden tips</subfield>
    <subfield code="year">1930</subfield>
    <subfield code="other_id">aaa01</subfield>
</datafield>
<datafield tag="book" ind1="" ind2="">
    <subfield code="author">John Doe</subfield>
    <subfield code="title">The small world</subfield>
    <subfield code="year">1920</subfield>
    <subfield code="other_id">aaa02</subfield>
</datafield>
<datafield tag="paper" ind1="" ind2="">
    <subfield code="author">Dr. Arthur Williams</subfield>
    <subfield code="title">Complex numbers</subfield>
    <subfield code="year">1910</subfield>
    <subfield code="other_id">aaa03</subfield>
</datafield>
...

Mit dem folgendem Befehl können bestimmte Werte ersetzt werden. Stellt sich zum Beispiel heraus, dass manche Datensätze vom Typ book eine ungültige Jahreszahl (year) haben, können falsche Daten korrigiert werden. Der setvalue-Befehl bestimmt, dass in jedem mit der inneren <condition> angesprochenen datafield mit Tag book das subfield mit dem Parameter code="year" den Wert 1900 bekommen soll. Die <condition> besagt, dass alle datafield Elemente berücksichtigt werden sollen, die das Tag book haben und bei denen ein Unterelement mit code="year" und dem Wert 190 vorhanden ist.

<beautify>
    <setvalue tag="book" subtag="year" value="1900">
        <condition tag="book" subtag="year" value="190" />
    </setvalue>
</beautify>

Daten können mit dem <setvalue>-Befehl gefiltert werden. Möchte man zum Beispiel die other_id Elemente entfernen, kann deren Wert mit einer leeren Zeichenkette überschrieben werden.

Hinweis: Ein Sternchen (*) ist ein Platzhalter für ein beliebigen Wert. Reguläre Ausdrücke werden nicht unterstützt.

<beautify>
    <setvalue tag="*" subtag="other_id" value="">
        <condition tag="*" subtag="other_id" value="*" />
    </setvalue>
</beautify>

Datensätze können auch um neue Eigenschaften ergänzt werden. Dies funktioniert allerdings nur bedingt, weil nur auf die Daten aus der MARC-Datei und aus dem <setvalue> Befehl zurückgeriffen werden kann. So ist es zum Beispiel möglich, Datensätze mit bestimmten Inhalten neue Tags zu vergeben:

<beautify>
    <setvalue tag="paper" subtag="target_group" value="students">
        <condition tag="paper" subtag="author" value="Dr. Arthur Williams" />
    </setvalue>
</beautify>

Hinweis: Bitte beachten Sie, dass Goobi ursprünglich auf die Kommunikation mit PICA-Katalogen ausgerichtet war. Mittlerweile werden auch viele weitere verschiedene Katalogsysteme unterstützt. Diese bedingen jedoch oftmals eine sehr individuelle Konfiguration z.B. für die Kommunikation über das Protokoll Z39.50 oder unter Nutzung von SRU.

Zuletzt aktualisiert