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.

Code Repository

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 https://ub-basel.atlassian.net/wiki/spaces/MD/pages/336855177 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: https://ub-basel.atlassian.net/wiki/spaces/MD/pages/642220068

Code Repository

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: https://ub-basel.atlassian.net/wiki/spaces/MD/pages/643563580

  • Global: Normalisierung von Datumsangaben, Trägertyp, Sprache und Genre
    Details zu Trägertyp, Sprache und Genre siehe:
    Details zu Datumsangaben siehe:

Code Repository

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.