Logo heiEDITIONS

Verarbeitung

Die TEI-Arbeitsdaten der von der UB Heidelberg betreuten Editionsprojekte werden für die Publikation und Archivierung durch eine sog. Pipeline aufbereitet, die in der Regel aus einer Verkettung von diversen Skripten besteht (vorzugsweise XSLT). Diese Skripte werden im GitLab-Projekt ↪ heiEDITIONS Pipeline im Ordner ↪ transformations gepflegt. Aus diesen Bausteinen kann mit der XProc-Technologie für jedes Projekt eine individuelle Pipeline konfiguriert werden.

Häufig verwendete XSLT-Skripte deklarieren wir als sog. XProc-Schritte in einer XProc-Bibliothek (↪ transformations/steplibrary.xpl). Diese Schritte unterstützen einen Debugging-Modus, der für Zwecke der Fehlersuche beim Pipeline-Aufruf aktiviert werden kann und dafür sorgt, dass der Stand der Verarbeitung nach dem Durchlaufen eines Schritts zu einer Datei serialisiert wird.

Erläuterung einzelner Verarbeitungsaufgaben

Auflösung der Kopieranweisung (Attribut @copyOf)

Das Attribut @copyOf, das an einem Element auf eine @xml:id eines anderen Elements verweist, wird so interpretiert, dass in das Element, das @copyOf trägt, alle Kindknoten und Attribute des Elements, auf das mit @copyOf verwiesen wird, eingesetzt werden und der sämtliche bisherige Inhalt (Kindknoten und Attribute) des Elements, das @copyOf trägt, verworfen wird. Ausgenommen davon ist das Attribut @xml:id, das weder verworfen noch kopiert wird.1)

Die Verarbeitungsaufgabe ist implementiert im XSLT-Skript ↪ text_resolveCopyOf.xsl sowie gekapselt im XProc-Schritt text_resolveCopyOf in ↪ transformations/steplibrary.xpl.

Kennzeichnung von Wortteilen an physischen Umbrüchen

Um eine einheitliche Darstellung von ggf. automatisch erzeugten Trennstrichen am Zeilenende und ggf. auch eine sinnvolle Indexierung zu gewährleisten, werden in nicht tokenisierten Texten die Wortteile, die sich im Zeilenumbruch (und ggf. Spalten- und Seitenumbruch u. Ä.) befinden, mit <w>-Elementen umschlossen, die das Attribut @part tragen.

Die Verarbeitung ist implementiert im XProc-Schritt text_wrapWordPartsAtLineBreaks in ↪ transformations/steplibrary.xpl, der die folgenden XSLT-Skripte nacheinander ausführt:

Diese Verarbeitung ist nur für nicht tokenisierte Texte sinnvoll. Es muss sichergestellt werden, dass zuvor Leeraum in Nachbarschaft von Elementen, die physische Umbrüche dokumentieren, entfernt worden ist (mit dem XProc-Schritt text_trimWhitespaceAdjacentToPhysicalBeginnings).

Extraktion editorischer Inhalte aus Zeilen

In bestimmten Fällen ist es erforderlich, Elemente mit editorischem Inhalt (wie Überschriften oder Anmerkungen) für die Quellenansicht aus <line>-Elementen, in denen sie während der Erzeugung der sourceDoc-Kodierung zunächst platziert wurden, zu extrahieren und sie außerhalb von <line> zu stellen. Für editorische Inhalte innerhalb von <zone> und außerhalb von <line> sieht das ›heiEDITIONS Schema‹ das eigene Element <hei:editorialContent> vor, in dem beliebige editorische Inhalte untergebracht werden können, die in der Quellenansicht zwischen Zeilen des Primärtextes angezeigt werden sollen.

Die aktuelle Implementierung erwartet im Parameter elements eine durch Leerzeichen getrennte Liste von Elementnamen. Nur für die so aufgelisteten Elemente wird die Extraktion vorgenommen. Außerdem müssen die betreffenden Elemente an @ana als › hc:EditorialContent ‹ gekennzeichnet sein. Elemente, auf die beide Bedingungen zutreffen und die sich innerhalb von <line> befinden, werden vor die jeweilige Zeile verschoben.

Die Verarbeitungsaufgabe ist implementiert im XSLT-Skript ↪ sourceDoc_extrapolateEditorialContent.xsl sowie gekapselt im XProc-Schritt sourceDoc_extrapolateEditorialContent in ↪ transformations/steplibrary.xpl.




Anmerkungen

1 Diese Sonderbehandlung des Attributs @xml:id ist allerdings bis auf Weiteres nur für das Element selbst, das @copyOf trägt, implementiert, und nicht rekursiv für mögliche Elemente mit @xml:id in dessen neuem (kopiertem) Inhalt. Es gibt ebenfalls keine Behandlung von sonstigen möglichen Verweisen auf solche Elemente mit @xml:id.
decoration