UNDER CONSTRUCTION
Import Process Bridge
Die Import Process Bridge überführt die Daten in eine JSON-LD-Struktur, welche von den nachfolgenden Services für die verschiedenen Endpoints aufbereitet wird. Sie ist damit das Bindeglied zwischen dem ersten Teil des Import-Workflows, welcher ursprünglich als einzigen Endpoint das Fedora-Repository hatte, und dem zweiten Teil - dem “Post-Processing”, der als Quelle die in Fedora gespeicherten Daten hatte. Die Import Process Bridge existiert für alle drei Importworkflows - Dokumente, Bestände und Institutionen.
IIIF-Manifest-Generierung
Die IIIF-Manifest-Generierung besteht aus zwei Services - IIIF Manifest Creator und IIIF Manifest Ingester. Der erste ist zuständig für die Erstellung der Manifeste, der zweite für die Indexierung in die MariaDB-Datenbank, wo sie vom Medienserver ausgelesen werden können. Der Creator-Service ist so angelegt, dass er grundsätzlich Manifeste gemäss der IIIF Presentation API v2.1 und auch der aktuellen v3 erstellen kann. Allerdings fehlt bisher noch die Implementation für Letztere, da bislang noch keine produktive Bibliothek zur Erstellung der Manifeste gemäss v3 für die JVM existiert (Stand Herbst 2020).
Medienobjekt-Konversion
Der Media Converter kopiert Mediendateien vom sFTP-Server auf ein in Kubernetes eingehängtes Medienverzeichnis, welches vom Medienserver und vom Bildserver zur Auslieferung der lokalen Medienressourcen genutzt wird. Je nach Medientyp konvertiert er darüberhinaus die Daten in ein geeigneteres Format:
Bilddateien (jpg, png): Keine Konversion
Videodateien: Keine Konversion
Audiodateien: Umverpackung des Inhalts in einen mpeg4-Container, welche für das Streaming geeignetere Eigenschaften besitzt.
Für die Identifikation der Mediendateien auf dem sFTP-Server nutzt der Media Converter einen auf dem sFTP-Host laufenden Service (Media File Distributor), welche eine effiziente Identifikation von Dateien basierend auf der Dokumenten-ID zulässt.
Media Metadata Ingest
Der mediametadatatodb Service indexiert die Medienmetadaten zu Handen des Medienserver in eine MariaDB-Datenbank. Neben dem Link zur Medienressourcen werden verschiedene technische Metadaten (Breite, Höhe, Abspieldauer, Mimetype), Zugang (public / closed), Zugangsart (per redirect oder proxy) sowie dem benötigten Playertyp (lokaler Player vs. verschiedene externe Players) festgehalten (für Details s. Schema Medientabelle).
EDM-Transformation
Wie bei der Transformation der Daten für den Suchindex sind die RiC-RDF Metadaten die Grundage für die Datenpipeline. Target Format ist das von Europeana definierte EDM Format. Obwohl sowohl Ausgangs- als auch Zielmodell in RDF abgebildet werden, unterscheiden sie sich stark voneinader. Kommt hinzu, dass wir Ric-RDF in Json-ld serialisieren, das EDM RDF Format jedoch zwingend in RDF-XML serialisiert werden muss.
Die durch die pipeline erstellten EDM RDF-XML Dokumente werden in unserem Elasticsearch Index indexiert (dafür wird der Microservice “Metadaten Ingest” genutzt). Der ES Index (Indexname oai-v*) ist dann die Grundlage für die OAI Schnittstelle. Beispielabfrage mit verb ListRecords und einem set, welches für Europeana erstellt wurde.
Das Mapping der Daten zwischen RiC-RDF und EDM ist recht aufwendig. Ausserdem benötigt man neben den rico Daten noch Informationen aus den institution und record-set Suchindices. Gewichtige Gründe dafür, dieses mapping nicht als ad-hoc Transformation in die oai Schittstelle zu verlegen. (wie das früher zum Teil in http://sru.swissbib.ch gemacht worden ist. Bei anderen Formaten mag das wieder anders sein oder Transformationen können komplett obsolet werden, wenn wir über oai zum Beispiel direkt RicRDF ausliefern wollen. Allerdings wäre wohl, um den OAI Standard gerecht zu werden, eine RDF XML Serialisierung notwendig.
Abschlussbemerkung: Die Basis des service ist ein Scala “functional Extractor” Mechanismus, wie er von Sebastian Schüpbach für den IIIF Manifest Creator zuerst implementiert wurde. Dieser eignet sich sehr gut auch für Metadatenspezialist*innen, sei es im Umfeld memoriav oder Bibliothek. Diese dann auch interaktiven Möglichkeiten, mit denen Datenpipelines- oder Datenanalyseservices auch von einem breiteren Personenkreis erstellt werden können, werden wir in Zukunft ausbauen. Dabei wird der breitere Personenkreis wohl eher Python als Scala verwenden. (es sein denn Scala 3 wird plötzlich doch zu Python für jedermann - man wird sehen….)
Suchindex-Transformation
Dieser Service wird verwendet, um die RiC-RDF-Metadaten in eines von drei Suchindexdokumenten umzuwandeln. Der Dienst verwendet benutzerdefinierte Filter und Transformationslogik, um die RDF-Daten in ein flaches JSON-Dokument umzuwandeln, das einfach für die Suche verwendet werden kann. Der Grund dafür ist, dass die Komplexität des RDF-Modells es komplizierter macht, die Daten direkt für die Suche zu verwenden, und daher eine Reihe von Transformationen dafür notwendig sind. Dies gilt insbesondere auch für die Vorbereitung der Daten für die Facetten.
Metadaten Ingest (in Elasticsearch)
[…]
Siehe: Post-Processing Steps (derzeit noch in Erarbeitung)