Importschritte
Data Delivery
Die Datengeber legen ihre Daten (Metadaten, evtl. Medienobjekte, evtl. Thumbnails) in einem akzeptierten Format auf dem internen sFTP-Server ab.
Text File Validation
Jede Textdatei, die im sFTP-Unterordner des Recordsets vorhanden ist, wird in Bezug auf Kodierung, Dateiformat und Komprimierung validiert. Diese Überprüfung basiert auf den Dateierweiterungen. Sollte die Validierung auf eine unbekannte Dateierweiterung stoßen, wird ein Fehler zurückgegeben. Derzeit werden die Dateiformate CSV, TSV, XLS, XLSX und XML angenommen, als Codierung wird UTF-8 erwartet.
Structural Normalization
Um möglichst viele Datenformate akzeptieren zu können, normalisiert dieser Schritt die vielen verschiedenen Formate und Strukturen in ein einfaches, flaches JSON-Format. Diese Normalisierung wird durch jeweils separate Dienste je nach Dateiformat durchgeführt.
Tabellen
Dieser Service wandelt Tabellendaten aus CSV, TSV, XLS oder XLSX in eine Key-Value-Map um, die dann als JSON serialisiert wird. Die Schlüssel der Map werden aus der Kopfzeile (die konfiguriert werden kann) und die Werte aus den jeweiligen Datenzeilen entnommen. Die Eigenschaftsnamen in der Kopfzeile dürfen nur alphanumerische Buchstaben, Leerzeichen, Unterstriche und Bindestriche verwenden. Der Service benötigt ausserdem eine Spalte, die die eindeutigen Identifier je Zeile liefert. Diese Spalte muss in jeder Zeile einen eindeutigen, nicht leeren Wert haben.
XML
Dieser Service nutzt die XSLT-Konfiguration, um ein beliebiges XML in ein einfaches JSON-Format zu transformieren.
RDF Resource and Property Mapping
In diesem Schritt wird das ursprüngliche Datenmodell auf Memobase RDF auf einer property by property Basis abgebildet. Ein einzelner Metadatensatz von der Datengeberin wird in der Regel in mehrere RDF-Ressourcen übersetzt (Record, Instantiation digitalObject, Instantiation physicalObject). Dieser Service verwendet eine als YAML serialisierte Mapping-Konfiguration, um eine Key-Value-Map-Eingabe in die RDF-Ressourcen von Memobase RDF zu mappen. In diesem Schritt ist es nicht möglich, die Werte der Felder zu ändern. Er bildet jedes Feld der Eingabestruktur auf eine RDF-Ressource oder Eigenschaft ab. Zudem können fixe Werte zu allen Datensätzen hinzugefügt werden (z.B. Zugangsinformationen). Für die Syntax der Mapping-Konfiguration (mapping.yml) siehe: Mapping für die Transformation
Media Resources Integration and Preparation
In diesem Schritt werden die Medienobjekte mit den Metadaten verknüpft und, wenn möglich, technische Metadaten von Medien erfasst.
In einem ersten Schritt werden die Medienobjekte auf dem sFTP-Server mit ihrer jeweiligen RDF-Ressource verknüpft und neue RDF-Ressourcen für eventuell vorhandene Thumbnails erstellt. Dazu werden die Medienobjekte im sFTP-Unterordner “media”, die Thumbnails in “thumbnails” erwartet. Die Dateien müssen jeweils mit dem ursprünglichen Identifier benannt werden, der im vorangegangenen Schritt hinzugefügt wurde. Der ursprüngliche Bezeichner wird auf die Datensatzressource gesetzt.
In einem zweiten Schritt werden die Medienobjekte für die Anreicherung mit technischen Metadaten vorbereitet. Auf Basis der Herkunft eines Medienobjekts (bspw. SRF, Youtube, Vimeo, lokal) wird entschieden, welche zusätzlichen Informationen maximal aus dem Medienobjekt extrahiert werden können. Ist ein Medienobjekt zugänglich (d.h. lokal gespeichert oder zwecks Analyse downloadbar), wird der nächste Schritt angegangen, andernfalls erübrigt sich die Anreicherung.
Im dritten und letzten Schritt werden technische Metadaten mittels den Tools Siegfried (MIME-Type und PRONOM-ID), ffmpeg (AV-Metadaten-Extraktion und AV-Validierung) sowie imagemagick (Bild-Metadaten-Extraktion und Bild-Validierung) extrahiert. Fehler bei der Extraktion werden ignoriert, stattdessen wird versucht, so viele Informationen wie möglich zu extrahieren.
Metadata Normalization and Enrichment
Dieser Service wird verwendet, um die Daten innerhalb von RDF-Ressourcen mit Hilfe von Konfigurationen und Mappings anzupassen und anzureichern. Der Service ist modular mit Transformationen aufgebaut. Jedes Modul ist für eine bestimmte Art der Transformation zuständig und kann separat konfiguriert werden. dabei wird unterschieden zwischen globalen Modulen (gültig für alle Importe) und lokalen Modulen (gültig für ein einzelnes Record Set). Derzeit sind folgende Module vorhanden:
Lokal: Splitten von Entitäten, Normalisierung von Personennamen
Für die Konfiguration siehe: Konfiguration Local TransformsGlobal: Normalisierung von Datumsangaben, Trägertyp, Sprache und Genre
Details zu Trägertyp, Sprache und Genre siehe: Anreicherung Sprache, Genre, Format
Details zu Datumsangaben siehe: Datumsangaben
Metadata Validation
Ein Service, der die Definitionen der Shapes Constraint Language (SHACL) verwendet, um die Form der generierten RDF-Ressourcen zu validieren. Die Sprache verwendet RDF als Syntax, als Syntax wird Turtle empfohlen.