Logo

Integration der ICONCLASS-Klassifikation in die Emblembuchbeschreibungen des Projektes »Emblematica Online«

Neben der Entwicklung einer Kernontologie für die Modellierung der in Wolfenbüttel erschlossenen Embleme vgl. Cole et al. 2017 war die Erweiterung der Datenbasis ein wesentliches Ziel des Projektes »Emblematica Online — Linked Open Emblem Data«. Wie bereits in den Vorprojekten wurden Embleme ausgewählter Emblembücher ermittelt und mit einem persistenten Identifikator versehen. Die inhaltliche Erschließung der Embleme erfolgte durch das Bildarchiv Foto Marburg, das für die bildlichen Darstellung der Embleme Systemstellen der ICONCLASS-Notation vergab.

Die Emblembücher sind als XML-Dokumente geführt, in denen die wesentlichen Textstrukturen mit dem Vokabular der Text Encoding Initiative (TEI) kodiert werden. Die Bestandteile eines Emblems – Motto, Pictura, Subscriptio – sind je als Abschnitt div kodiert, der durch ein type-Attribute näher als Motto, Pictura bzw. Subscriptio gekennzeichnet ist. Die Zugehörigkeit zu einem bestimmten Emblem ist durch Belegung des n-Attributs ausgedrückt, das mit der Identifikationsnummer des jeweiligen Emblems belegt ist.

<div type="emblem_pictura" n="E018850" facs="#drucke_xb-4362_00122"/> <div type="emblem_motto" n="E018850" facs="#drucke_xb-4362_00122">   <p xml:lang="de">So muß es mir ergehn, Soll ich sonst fäste Stehn.</p> </div> TEI-kodiertes Emblem E018850

Die Daten wurden von Foto Marburg über eine OAI-Schnittstelle als Emblembuchbeschreibung im Emblem Schema kodiert zur Verfügung gestellt. Hier sind die Emblembestandteile durch spezielle Elemente ausgezeichnet. Notation und bevorzugte Bezeichnung einer ICONCLASS-Klassifikation sind durch Elemente aus dem Namensraum des Simple Knowledge Organization System wiedergegeben, die zu einer Systemstelle gehörenden deutschsprachigen Schlagwörter durch Elemente des Emblem Schema-Namensraums.

<emblem:emblem globalID="http://hdl.handle.net/10111/EmblemRegistry:E018850">   <emblem:motto>     <emblem:transcription xlink:href="http://diglib.hab.de/drucke/xb-4362/start.htm?image=00122" xml:lang="de">       <tei:p xml:lang="de">So muß es mir ergehn, Soll ich sonst fäste Stehn.</tei:p>     </emblem:transcription>   </emblem:motto>   <emblem:pictura medium="engraving" xlink:href="http://diglib.hab.de/drucke/xb-4362/start.htm?image=00122">     <emblem:iconclass>       <skos:notation>86(SO MUSS ES MIR ERGEHN, SOLL ICH SONST FÄSTE STEHN)</skos:notation>       <skos:prefLabel xml:lang="de">Sprichwörter, Redewendungen, etc.</skos:prefLabel>       <emblem:keyword xml:lang="de">Redewendung</emblem:keyword>       <emblem:keyword xml:lang="de">Sprichwort</emblem:keyword>     </emblem:iconclass>     …   </emblem:pictura> </emblem:emblem> Emblem E018850 in Emblem-Schema

Um die ICONCLASS-Erschließung in die TEI-kodierten Emblembuchbeschreibungen zu integrieren müssen bevorzuge Bezeichnung, Notation und zur Notation gehörende Schlagwörter als index und term-Elemente unterhalb der die bildlichen Darstellungen tragenden Abschnitte eingebracht werden.

<div type="emblem_pictura" n="E018850" facs="#drucke_xb-4362_00122">   <p>     <index indexName="notation" facs="#drucke_xb-4362_00122">       <term xml:lang="de" key="86(SO MUSS ES MIR ERGEHN, SOLL ICH SONST FÄSTE STEHN)" type="ICONCLASS">         Sprichwörter, Redewendungen, etc.       </term>       <index indexName="bsw" facs="#drucke_xb-4362_00122">         <term xml:lang="de" key="86(SO MUSS ES MIR ERGEHN, SOLL ICH SONST FÄSTE STEHN)" type="ICONCLASS">           Redewendung         </term>         <term xml:lang="de" key="86(SO MUSS ES MIR ERGEHN, SOLL ICH SONST FÄSTE STEHN)" type="ICONCLASS">           Sprichwort         </term>       </index>     </index>     …   </p> </div> Integrierte ICONCLASS-Erschließung für Emblem E018850

Integration der Erschließungsdaten

Flußdiagramm Flußdiagramm des Ergänzungsalgorithmus

Ein Algorithmus der die Erschließungsdaten im Emblem Schema in die TEI-kodierten Emblembuchbeschreibungen einbringt lässt sich wie folgt beschreiben.

  • Für jedes in den Erschließungsdaten enthaltene Emblembuch wird die Adresse der TEI-kodierten Emblembuchbeschreibung ermitteln und die entsprechende Datei geladen.
  • Für jede in der Datei verzeichnete Pictura werden die zugehörigen emblem:iconclass-Elemente in den Erschließungsdaten ermitteln, in die gewünschten TEI-Strukturen umgewandelt und an den die Pictura repräsentierenden Abschnitt angehangen.
  • Wenn alle Picturae abgearbeitet sind, dann wird ein Änderungsvermerk in den Kopfbereich der Emblembuchbeschreibung eingefügt und die Datei gespeichert.

Umsetzung als XProc 1.0 Pipeline

Dieser Algorithmus wurde in leicht modifizierter Form als XProc 1.0 Pipeline implementiert. Anstatt die Erschließungsdaten für jede Pictura gesondert in TEI umzuwandeln, wurden die emblem:iconclass-Elemente an die Picturae-Abschnitte angehangen und nach Abarbeitung aller Picturae eines Emblembuchs in einer Transformation umgewandelt.

Die Auswahl aller zu einer bildlichen Darstellung gehörenden emblem:iconclass-Elemente wurde in einem eigenen Schritt implementiert. Der Schritt bekommt die ID des Emblems und den Permalink der die Darstellung zeigenden Seite als Parameter übergeben (Zeile 6 und 7). Er besitzt einen primären Eingabe- und einen primären Ausgabeport, über den die Erschließungsdaten ein- bzw. das Ergebnis der Auswahl ausgeleitet wird (Zeile 3 und 4). Die Kombination von Emblem-ID und Permalink der Pictura wird verwendet, um möglichen Fehlern bei der Vergabe der Emblem-ID zu begegnen.

Um den auswählenden Ausdruck dynamisch zu berechnen, wird die Auswahl der Erschließungselemente durch einen p:filter-Schritt vorgenommen (Zeile 9-18). Der auswählende mit XPath-Ausdruck wird mit String-Operatoren aus den übergebenen Parametern zusammengesetzt. Ein- und Ausgabeport dieses Schrittes sind implizit mit dem primären Eingabe- bzw. Ausgabeport verbunden.

<p:declare-step type="emblem:select-iconclass">   <p:input  port="source"/>   <p:output port="result" sequence="true"/>   <p:option name="emblemId" required="true"/>   <p:option name="imageUri" required="true"/>   <p:filter>     <p:with-option name="select"                    select="concat(                      '//emblem:emblem[substring(@globalID, 44) = "',                      $emblemId,                      '"]/emblem:pictura[@xlink:href = "',                      $imageUri,                      '"]/emblem:iconclass'                    )"/>   </p:filter> </p:declare-step> Auswahl der emblem:iconclass-Elemente

Die Hauptverarbeitung liest die Erschließungsdaten vom primären Eingabeport source (Zeile 7) und besitzt keinen Ausgabeport. Sie iteriert über jedes in den Erschließungsdaten enthaltene Emblembuch (Zeile 11 und 12) und lädt die zugehörigen Strukturdaten (Zeile 13 bis 19).

Nun wechselt der Fokus zum geladenen Strukturdatendokument. Ein Auswahlfenster p:viewport wandert über jeden eine bildliche Darstellung repräsentierenden Abschnitt (Zeile 19). Emblem-ID und Permalink der Seite werden berechnet (Zeile 20 und 21) und dem Auswahlschritt übergeben (Zeile 22 bis 28). Der primäre Eingabeport dieses Schrittes wird mit dem primären Eingabeport der Hauptverarbeitung verbunden.

Das Ergebnis des Auswahlschrittes wird als Kind des im Auswahlfenster befindlichen Abschnitts ergänzt (Zeile 29 bis 36). Dazu wird der primäre Eingabeport des Einfügungsschrittes mit dem aktuellen Auswahlfenster (Zeile 30 bis 32) und der die Einfügung aufnehmende sekundäre Eingabeport des Einfügungsschritts mit dem primären Ausgabeport des Auswahlschritts verbunden (Zeile 33 bis 35).

Sind alle bildlichen Darstellungen des geladenen Strukturdatendokuments bearbeitet, dann werden mit einer XSL-Transformation die emblem:iconclass-Elemente in die vorgeschriebenen TEI-Strukturen umgewandelt (Zeile 38 bis 45). Bevor das geladene Strukturdatendokument auf den Datenträger geschrieben wird (Zeile 54 bis 56), wird in einer weiteren Transformation ein Angabe über die vorgenommene Änderung ergänzt (Zeile 46 bis 53).

<p:declare-step name="main" version="1.0"                 xmlns:emblem="http://diglib.hab.de/rules/schema/emblem"                 xmlns:xlink="http://www.w3.org/1999/xlink"                 xmlns:tei="http://www.tei-c.org/ns/1.0"                 xmlns:p="http://www.w3.org/ns/xproc">    <p:input  port="source" primary="true"/>    <p:declare-step type="emblem:select-iconclass">…</p>    <p:for-each>      <p:iteration-source select="//emblem:biblioDesc"/>      <p:variable name="objectUri" select="substring-before((emblem:biblioDesc//@xlink:href)[1], '?')"/>      <p:variable name="structUri" select="concat(…)"/>      <p:variable name="filename"  select="tokenize($objectUri, '/')[5]"/>      <p:load>        <p:with-option name="href" select="$structUri"/>      </p:load>      <p:viewport match="tei:div[@type = 'emblem_pictura']" name="pictura">        <p:variable name="emblemId" select="tei:div/@n"/>        <p:variable name="imageUri" select="concat(…)"/>        <emblem:select-iconclass name="select-iconclass">          <p:with-option name="emblemId" select="$emblemId"/>          <p:with-option name="imageUri" select="$imageUri"/>          <p:input port="source">            <p:pipe step="main" port="source"/>          </p:input>        </emblem:select-iconclass>        <p:insert position="last-child" match="tei:p">          <p:input port="source">            <p:pipe step="pictura" port="current"/>          </p:input>          <p:input port="insertion">            <p:pipe step="select-iconclass" port="result"/>          </p:input>        </p:insert>      </p:viewport>      <p:xslt>        <p:input port="stylesheet">          <p:document href="../xslt/emblem-to-tei.xsl"/>        </p:input>        <p:input port="parameters">          <p:empty/>        </p:input>      </p:xslt>      <p:xslt>        <p:input port="stylesheet">          <p:document href="../xslt/mark-tei-revision.xsl"/>        </p:input>        <p:input port="parameters">          <p:empty/>        </p:input>      </p:xslt>      <p:store method="xml" omit-xml-declaration="true">        <p:with-option name="href" select="concat('file:/s:/drucke/', $filename, '/tei-struct.xml')"/>      </p:store>    </p:for-each> </p:declare-step> Hauptverarbeitung

Fazit

Die in der Hauptverarbeitung definierte Prozessierungspipeline wurde mit XML Calabash ausgeführt und auf die von Foto Marburg zur Verfügung gestellten Erschließungsdaten angewendet. Dadurch konnten 24.195 ICONCLASS-Notationen für 5.011 Embleme in 56 Emblembüchern in die Wolfenbütteler Digitale Bibliothek übertragen werden. Mit XProc und XSLT standen XML-Technologien zur Verfügung, mit denen sich die notwendigen Verarbeitungsschritte maschinenunabhängig als Manipulation von XML-Bäumen ausdrücken und durch einen quelloffenen XProc-Prozessor ausführen ließen.