Tag 8

Heute haben wir uns zuerst den Lerntagebüchern gewidmet, anschliessend haben wir noch viele einzelne Inputs zur Modellierung von Metadaten und zur Nutzung von Schnittstellen erhalten. Zum Schluss haben wir noch das Discovery-System VuFind installiert. Die Installation ging eine Weile länger als gedacht und hat einige Schwierigkeiten mit sich gebracht, jetzt ist es uns aber möglich, die Suchmaschine Solr zu nutzen. Aber kommen wir zuerst zu den verschiedenen Inputs.

XML-Validierung

In der letzten Lektion haben wir Dateien aus OpenRefine exportiert. Wichtig ist, dass die XML-Dateien anschliesssend validiert werden. Es können immer Fehler auftreten. Das beste Beispiel dafür ist, dass auch bei unserem Test im Unterricht ein Fehler in der XML-Datei gefunden wurde.

Um das XML mit dem offiziellen MARC21-Schema abzugleichen, muss das Schema zuerst heruntergeladen werden (auf Ubuntu ist es bereits vorinstalliert):

wget https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd<br>
xmllint *.xml --noout --schema MARC21slim.xsd

Das hier heruntergeladene Programm xmllint sorgt schlussendlich für den Abgleich der eingespeisten XML-Dateien.

XML-Deklaration

Die oberste Zeile eines jeden XML-Dokuments ist die sogenannte XML-Deklaration. Ich habe mich bisher eigentlich nicht wirklich mit dieser auseinandergesetzt. Die Hauptaussage ist eigentlich: “Hier handelt es sich um eine XML-Datei”. In der Deklaration wird festgelegt, welche Version und welcher Zeichensatz (meist UTF-8) verwendet wurde. Dazu kann – wenn gewünscht – noch das Feld “Standalone” hinzugefügt werden. Wenn das Feld mit “yes” codiert wird bedeutet das, dass dazu noch eine DTD existiert, bei “no” nicht. Man kann das Standalone-Feld aber auch auslassen (was in der Praxis oft der Fall ist, darum habe ich es auch noch nie gesehen).

Die Reihenfolge ist zwingend: 1) Version 2) Encoding 3) Standalone

JSON-APIs

Auch zur Nutzung von JSON-APIs, also JSON-Schnittstellen haben wir noch einen kurzen Input erhalten. Moderne APIs liefern ihre Antworten oft in JSON-Format. Dies gilt auch für die lobid-gnd. Diese Rechercheoberfläche haben wir ja bei der Vertiefung von OpenRefine verwendet, um unsere Datensätze mit externen Daten anzureichern.

Da ich mich nicht wirklich damit auskenne, habe ich mich noch weiter mit JSON-APIs auseinandergesetzt. Der heute am weitesten verbreitete Ansatz für neue Programmierschnittstellen ist REST mit JSON. Eine REST-API macht den Austausch von Informationen möglich, wenn diese sich auf unterschiedlichen Systemen befinden. Dank REST-APIs ist es möglich, Informationen und Aufgaben auf verschiedene Server zu verteilen und mit Hilfe eines HTTP-Requests anzufordern. Eine RESTful-API schlüsselt eine Transaktion in eine Reihe kleiner Module auf. Die RESTful-API verwendet HTTP-Anfragen, um per GET, PUT, POST und DELETE auf Daten zuzugreifen. Eine JSON-API ist eigentlich nichts anderes als eine Schnittstelle, die im JSON-Format geschrieben ist.

Das Design einer RESTful-API ist eigentlich sehr einfach. Trotzdem werden diese Schnittstellen von vielen Entwickler*innen leicht unterschiedlich implementiert. Die JSON-API-Spezifikation ist eine Lösung für das Problem und legt genau fest, wie eine RESTful-API basierend auf einem einheitlichen Standard implementiert werden sollte. So lässt sich verhindern, dass mehrere unterschiedliche APIs gemacht werden.

LIDO

LIDO ist ein XML-Schema zur Beschreibung von Kulturobjekten. Es dient dem Austausch und dem Harvesten von Metadaten von Museums- und Sammlungsobjekten. Die Abkürzung LIDO steht für “Lightweight Information Describing Objects”. Es basiert auf dem CIDOC Conceptual Reference Model (CRM).

Konzeptuell ist LIDO völlig anders als die anderen Metadatenstandards. LIDO beschreibt nämlich ereigniszentriert. So wird bei den Objekten auch gleich der Kontext mitdefiniert. Jedoch ist diese Struktur ungewöhnlich und weicht von anderen Standards ab. Somit wird auch ein verlustfreier Crosswalk sehr schwierig. Da die Struktur konzeptuell so unterschiedlich ist, kann es auch für Verwirrung sorgen. Wer sich den Umgang mit LIDO aber gewohnt ist kann sehr davon profitieren.

LIDO entspricht dem Linked-Open-Data-Paradigma und bietet ebenfalls die Möglichkeit, Normdatensätze zu verknüpfen. Gerade in der heutigen Zeit, wo der weltweite Datenaustausch immer mehr ins Zentrum rückt, empfinde ich das als sehr wichtig.

VuFind

Zum Schluss haben wir noch VuFind installiert, damit wir es in der nächsten Lektion nutzen können. Zuerst haben wir uns noch ein paar Zahlen zur Community und dessen Contributors angeschaut. Die Zahlen dazu sind – wie wir es schon kennen – auf der dazugehörigen GitHub-Seite unter den Insights zu finden.

Zur Installation und Konfiguration von VuFind unter Ubuntu gibt es hier eine Anleitung. In meinem Lerntagebuch gehe ich aber nicht weiter darauf ein.