From b6ee67986c2a4cd368ea948a487defcf3dffd10d Mon Sep 17 00:00:00 2001 From: Felix Lohmeier Date: Tue, 3 Nov 2020 10:57:15 +0100 Subject: [PATCH] =?UTF-8?q?=C3=9Cbertrag=20Mitschrift=2030.10.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n-modellieren-und-schnittstellen-nutzen.md | 200 +++++++++++++++++- images/05_schaubild-v3.png | Bin 0 -> 39565 bytes 2 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 images/05_schaubild-v3.png diff --git a/05_metadaten-modellieren-und-schnittstellen-nutzen.md b/05_metadaten-modellieren-und-schnittstellen-nutzen.md index ee80f5d..9f422cc 100644 --- a/05_metadaten-modellieren-und-schnittstellen-nutzen.md +++ b/05_metadaten-modellieren-und-schnittstellen-nutzen.md @@ -1,7 +1,197 @@ # Metadaten modellieren und Schnittstellen nutzen -1. Transformation von Metadaten mit OpenRefine -2. XSLT Crosswalks mit MarcEdit -3. Austauschprotokolle für Metadaten (OAI-PMH, SRU) -4. Weitere Tools zur Metadatentransformation -5. Nutzung von JSON-APIs +1. Zwischenstand (Schaubild) +2. Austauschprotokolle für Metadaten (OAI-PMH, SRU) +3. Metadaten über OAI-PMH harvesten mit VuFindHarvest +4. XSLT Crosswalks mit MarcEdit +5. Transformation von Metadaten mit OpenRefine +6. Metadatenstandard LIDO +7. Weitere Tools zur Metadatentransformation +8. Nutzung von JSON-APIs + +## Zwischenstand (Schaubild) + +![Schaubild zu Lehrinhalten](images/05_schaubild-v3.png) + +Note: + +* Anders als in Lektion 1 geplant, nutzen wir als OAI Harvester VuFindHarvest statt metha. Das Schaubild wurde entsprechend aktualisiert. +* MarcEdit verfügt auch über eine Funktionalität, um OAI-PMH direkt zu harvesten. Zur besseren Illustration der Prozesse verwenden wir hier verschiedene Tools. +* Außerdem werden wir zusätzlich noch aus tabellarischen Beispieldaten (CSV) mit Hilfe der Software OpenRefine MARC21-XML modellieren. + +## Austauschprotokolle für Metadaten (OAI-PMH, SRU) + +Es gibt zahlreiche Übertragungsprotokolle im Bibliotheks- und Archivbereich. Drei davon sind besonders weit verbreitet: + +* [Z39.50](https://www.loc.gov/z3950/agency/) (Library of Congress) +* [SRU](https://www.loc.gov/sru) - Search/Retrieve via URL (Library of Congress) +* [OAI-PMH](https://www.openarchives.org/pmh/) - Open Archives Initiative Protocol for Metadata Harvesting (Open Archives Initiative) + +Note: +* Z39.50 ist sehr alt, aber immer noch im Einsatz. Meist wird das modernere SRU als Ergänzung angeboten. +* Während Z39.50 und SRU sich besonders für Live-Abfragen oder gezielten Datenabruf mit vielen Parametern eignet, zielt OAI-PMH vor allem auf größere Datenabzüge und regelmäßige Aktualisierungen. +* Das Schöne an SRU und OAI-PMH ist, dass die Anfragen als Internetadresse (URL) zusammengestellt werden können und direkt über den Browser ohne Zusatzsoftware aufrufbar sind. + +## Metadaten über OAI-PMH harvesten mit VuFindHarvest + +* Wir "ernten" (harvesten) die über die OAI-PMH-Schnittstellen angebotenen Daten +* Dazu verwenden wir das Tool [VuFindHarvest](https://github.com/vufind-org/vufindharvest), ein OAI Harvester aus dem VuFind-Projekt. +* Vorgehen: + 1. Sicherstellen, dass die OAI-PMH-Endpoints für Koha, ArchivesSpace und DSpace verfügbar sind + 2. Mit dem Tool die Daten abrufen und als XML auf der Festplatte speichern + +### ArchivesSpace Fehlerkorrektur + +* Wir haben beim Testen vorab festgestellt, dass die "Prudence Wayland Smith Papers" einen Erschließungsfehler beinhalten, der die Ausgabe als EAD über die OAI-PMH-Schnittstelle blockiert. +* Falls Sie diese EAD-Daten importiert hatten: + * Resource "Prudence Wayland-Smith Papers" aufrufen + * Im Bearbeitungsmodus nach `Language Note` Ausschau halten. Darin ist fehlerhafter HTML-Code. + * Diese Note löschen. + +### OAI-PMH Endpoints + +* Koha sollte noch laufen + * + * Format: `marcxml` +* ArchivesSpace muss ggf. gestartet werden + * (Meldung `Parameter required but no value provided` ist OK) + * Format: `oai_ead` +* DSpace Demo wird jede Samstag Nacht gelöscht + * + * Format: `oai_dc` + * Set: `com_10673_1` (Sample Community) + +### VuFindHarvest 4.0.1 installieren + +* Die Software wird bei GitHub veröffentlicht: +* Sie ist in PHP geschrieben. Für die Installation wird composer (Paketverwaltung für PHP) empfohlen. + +```bash +sudo apt update +sudo apt install composer php php-xml +cd ~ +wget https://github.com/vufind-org/vufindharvest/archive/v4.0.1.zip +unzip v4.0.1.zip +cd vufindharvest-4.0.1 +composer install +``` + +### Übung: Harvesting + +**Gruppenarbeit (20 Minuten)** + +* Laden Sie mit VuFindHarvest die Daten aus + * a) Koha http://bibliothek.meine-schule.org/cgi-bin/koha/oai.pl im Format `marcxml` + * b) ArchivesSpace http://localhost:8082 im Format `oai_ead` + * c) DSpace http://demo.dspace.org/oai/request das Set `com_10673_1` im Format `oai_dc` +* Hinweise: + * Benutzungshinweise in der [README.md](https://github.com/vufind-org/vufindharvest#usage) + * Speichern Sie die Daten in verschiedenen Ordnern. +* Beispiel: + +```bash +cd ~/vufindharvest-4.0.1 +php bin/harvest_oai.php --url=http://example.com/oai_server --metadataPrefix=oai_dc my_target_dir +``` + +## XSLT Crosswalks mit MarcEdit + +* Wir haben in der vorigen Übung Daten in verschiedenen Formaten (MARC21-XML, EAD und DC) geladen. +* Nun werden wir diese einheitlich in MARC21-XML konvertieren. + +### Crosswalks? XSLT? + +* Crosswalks + * Gängiger Begriff, um die Konvertierung von einem Metadatenstandard in einen anderen zu beschreiben. + * Beispiel: MARC21 zu Dublin Core. + * Der "Crosswalk" beinhaltet Regeln wie Elemente und Werte zugeordnet/verändert werden müssen (sog. Mapping). + * Im Idealfall verlustfrei, aber meist keine 1:1-Zuordnung möglich. +* XSLT + * Programmiersprache zur Transformation von XML-Dokumenten (W3C Empfehlung, 1999) + * Literaturempfehlung für Einstieg in XSLT: + +### MarcEdit 7 installieren + +* MarcEdit ist eine kostenlos nutzbare Software aber nicht Open Source. +* Sie ist die meistgenutzte Zusatzsoftware für die Arbeit mit MARC21. +* Offizielle Webseite: +* Installation von Mono (MarcEdit ist in .NET geschrieben und benötigt unter Linux diese Laufzeitumgebung) und des Unicode Fonts "Noto": + +```bash +sudo apt install mono-complete fonts-noto +``` + +* Installation von MarcEdit: + +```bash +cd ~ +wget https://marcedit.reeset.net/software/marcedit7/marcedit7.run +chmod +x marcedit7.run +mkdir ~/marcedit +./marcedit7.run --target ~/marcedit +``` + +### MarcEdit konfigurieren + +* Der Installer hat das Programm MarcEdit im Startmenü (unten links) registriert. Starten Sie darüber das Programm. +* Achtung: Die Voreinstellungen in der Linux-Version von MarcEdit sind fehlerhaft. Sie können wie folgt korrigiert werden: + * MARC Tools + * Button Tools / Edit XML Function List + * Für alle benötigten Funktionen: + * Im Menü "Defined Functions" die gewünschte Funktion auswählen und Modify klicken + * Unter XSLT/XQuery Path `XSLT\` durch `xslt/` ersetzen + * Anschließend "Save" und für nächste Funktion wiederholen + +### XSLT Crosswalks anwenden + +**Aufgabe (20 Minuten)** + +* Konvertieren Sie einige Daten aus ArchivesSpace (EAD) und aus DSpace (DC) nach MARC21XML. Speichern Sie die Daten auf der Festplatte. +* Prüfen Sie grob, ob die konvertierten Daten korrekt aussehen. +* Anleitung für "XML Conversion" mit MarcEdit von der Unibibliothek aus Illinois: + +Note: + +* Von MarcEdit verwendete XSLT Dateien liegen auch hier: und + +### Zur Vertiefung + +**Optionale Aufgabe (2 Stunden)** + +* Bearbeiten Sie die [Lehrmaterialien von Library Carpentry zu MarcEdit](https://librarycarpentry.org/lc-marcedit/01-introduction/index.html) + +## Transformation von Metadaten mit OpenRefine + +### Installation OpenRefine 3.4.1 + +1. Auf der Seite [Download](https://openrefine.org/download.html) das "Linux kit" herunterladen + ```bash + cd ~ + wget https://github.com/OpenRefine/OpenRefine/releases/download/3.4.1/openrefine-linux-3.4.1.tar.gz + ``` +2. Das Tar-Archiv entpacken + ```bash + tar -xzf openrefine-linux-3.4.1.tar.gz + ``` +3. In den entpackten Ordner wechseln und dort im Terminal den Befehl "./refine" aufrufen + ```bash + cd ~/openrefine-3.4.1 + ./refine + ``` +4. Nach ca. 15 Sekunden sollte sich der Browser öffnen. Falls nicht, manuell Firefox starten und eingeben. + +Note: +* OpenRefine benötigt JAVA. Das haben wir schon auf unserer virtuellen Maschine, weil wir es für ArchivesSpace installiert hatten. +* `./` ist unter Linux eine Abkürzung für "in diesem Verzeichnis". Einfach nur `refine` reicht hier nicht aus, weil das Terminal dann nicht sicher weiß, ob Sie einen systemweit installierten Befehl `refine` oder die Datei `refine` im aktuellen Verzeichnis meinen. Daher muss zum Ausführen von Dateien im selben Verzeichnis das `./` vorangestellt werden. + +### Übung Library Carpentry Lesson + +**Aufgabe (4 Stunden)** + +* Bearbeiten Sie die [Lehrmaterialien von Library Carpentry zu OpenRefine](https://librarycarpentry.org/lc-open-refine/) + +## Metadatenstandard LIDO + +## Weitere Tools zur Metadatentransformation + +## Nutzung von JSON-APIs \ No newline at end of file diff --git a/images/05_schaubild-v3.png b/images/05_schaubild-v3.png new file mode 100644 index 0000000000000000000000000000000000000000..280ce89a686bb73c2f2e5dddfa9e51a89e3a1c58 GIT binary patch literal 39565 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±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 AcmMzZ literal 0 HcmV?d00001