Initialer Commit für HS 2021

This commit is contained in:
Felix Lohmeier 2021-09-10 23:36:16 +02:00
parent 91eb770bbc
commit 06bec526f4
13 changed files with 24 additions and 2009 deletions

View File

@ -6,274 +6,3 @@
* Versionskontrolle mit git
* Blog mit GitHub Pages
## Schaubild zu Lehrinhalten
![Schaubild zu Lehrinhalten](images/01_schaubild.png)
erstellt mit [mermaid](https://mermaidjs.github.io/mermaid-live-editor/)
Note:
* In diesem Schaubild sind links die Lokalsysteme (Bibliothekssytem Koha, Archivinformationssystem ArchivesSpace, Repository-Software DSpace) aufgeführt. Diese bieten jeweils eine OAI-Schnittstelle an.
* Mit einer speziellen Software (hier: metha) werden die Metadaten im jeweils spezifischen Format eingesammelt. Über einen XSLT Crosswalk werden die Daten dann einheitlich in MARC21-XML überführt.
* Abschließend werden die MARC21-XML-Daten in die Discovery-Lösung VuFind eingespielt.
* Wir lernen die Systeme, Schnittstellen, Tools und Formate Schritt für Schritt kennen. Am Ende des Kurses sollten Sie das Schaubild dann in eigenen Worten erklären können.
## Einrichtung der Arbeitsumgebung (Linux)
### Arbeitsumgebung
* Jede/r erhält eine virtuelle Maschine der FH Graubünden mit Ubuntu Linux.
* Sie haben volle Administrationsrechte.
* Dozenten haben zur Unterstützung und Fehlerbehebung ebenfalls Zugriff darauf.
### Linux
* Die meisten Webserver laufen auf Linux.
* Wir verwenden [Ubuntu](https://ubuntu.com) in der Version 20.04 LTS.
* Ubuntu basiert wiederum auf [Debian](https://www.debian.org). Die ganze Familiengeschichte: [GNU/Linux Distributions Timeline](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg)
Note:
- Normalerweise werden Linux-Server aus Sicherheitsgründen ohne grafische Oberfläche administriert, also nur über die Kommandozeile.
### Zugriff auf die virtuelle Maschine
1. Per VPN mit dem Netzwerk der FHGR verbinden
2. <https://horizon.fh-htwchur.ch> aufrufen
3. Zugriff auf die virtuelle Maschine (Ubuntu) entweder direkt über den Browser (HTML5) oder über eine Zusatzsoftware (Horizon Client)
Sie können sich an allen drei Punkten (VPN, Horizon und Ubuntu) mit Ihrem persönlichen FHGR-Konto anmelden.
Note:
- Bei Eingabe des Passworts ggf. mit Copy & Paste arbeiten, um Probleme mit dem Tastaturlayout zu umgehen.
- Copy & Paste funktioniert besser mit der Zusatzsoftware.
### Übung: Verbindung testen
Bitte verbinden Sie sich jetzt mit der virtuellen Maschine. Nach dem Login sollte es etwa so aussehen:
![Screenshot des Ubuntu-Desktops](images/01_ubuntu.png)
### Grundeinstellungen
1. Favoriten
* Unten links Anwendungsmenü öffnen
* Programm suchen (`Terminal` und `Text Editor`)
* Rechtsklick auf Icon und `Add to Favorites` wählen
2. Startseite im Firefox Browser
* Die [Übersichtsseite des gemeinsamen Dokuments](https://pad.gwdg.de/Tf-htntTR8COelT3Wgodzg?both#) aufrufen
* Icon vor der URL (Schloss) per Drag & Drop auf Home-Button ziehen
Note:
- Teilnehmer\*innen mit Mac? Dann im Applikationsmenü "Region & Language" und dort das Keyboard Layout "German (Switzerland, Macintosh)" ergänzen und auswählen
### Programme installieren
1. Programmverzeichnis aktualisieren
```shell
sudo apt update
```
2. Programme installieren
```shell
sudo apt install git curl
```
Note:
- Darauf folgt eine Passwortabfrage (nochmal das gleiche).
- Änderungen werden ausführlich angezeigt, diese müssen dann nochmal mit `Y` bestätigt werden.
- Die Paketverwaltung unter Linux ist vergleichbar mit einem App-Store von Apple oder Google.
## Grundlagen der Unix Shell
* Wird benötigt zur Administration von Servern
* Ist aber auch zur Automatisierung von kleineren Aufgaben beliebt (Shell-Scripte)
Note:
- Die Unix Shell werden wir im Kurs öfter für Installation und Konfiguration der Software verwenden. Daher beginnen wir hier mit einer Wiederholung der wichtigsten Kommandos, damit uns das später leichter fällt.
- Es gibt verschiedene Varianten der Shell. Ubuntu verwendet Bash.
### Download der Materialien
1. In das Home-Verzeichnis wechseln
```shell
cd
```
2. Archiv shell-lesson.zip von Library Carpentry herunterladen
```shell
wget https://librarycarpentry.org/lc-shell/data/shell-lesson.zip
```
3. Archiv in den Ordner shell-lesson entpacken und Archiv löschen
```shell
unzip shell-lesson.zip -d shell-lesson
rm shell-lesson.zip
```
### Übungen
Aufgaben:
1. Bearbeiten Sie das zweite Kapitel [Navigating the filesystem](https://librarycarpentry.org/lc-shell/02-navigating-the-filesystem/index.html) der Library Carpentry Lesson zur Unix Shell
2. Bearbeiten Sie das dritte Kapitel [Working with files and directories](https://librarycarpentry.org/lc-shell/03-working-with-files-and-folders/index.html) der Library Carpentry Lesson zur Unix Shell
### Tipps zur Unix Shell
* Nutzen Sie immer die Tab-Taste für die Autovervollständigung.
* Seien Sie faul, verwenden Sie Ihre persönliche Befehlshistorie (Pfeiltaste nach oben / Suche in der Historie mit `STRG`+`R`).
* Wichtig ist die Unterscheidung zwischen Programm (`ls`) und Parametern (`-l`).
* Nutzen Sie Spickzettel für die wichtigsten Kommandos wie z.B. [Library Carpentry Reference](https://librarycarpentry.org/lc-shell/reference.html) oder [Cheatsheet für Shell-Scripte](https://devhints.io/bash).
Note:
- Alle Programme in der Unix Shell sind ähnlich aufgebaut. Wenn Sie das Grundprinzip mit der Unterscheidung von Programm und Parametern verinnerlicht haben, dann hilft Ihnen auch die integrierte Hilfe (`--help`) weiter.
### Redirects und Pipes
![Library Carpentry Illustration Redirects and Pipes](images/01_redirects-and-pipes.png)
Note:
1. Bei einer normalen Eingabe landet das Ergebnis im Terminal. `wc` steht für "word count" und liefert mit dem Parameter `-l` die Anzahl der Zeilen. Die Angabe `*.tsv` bedeutet alle Dateien mit der Dateiendung "tsv".
2. Stattdessen kann das Ergebnis aber auch in eine Datei umgelenkt werden mit der spitzen Klammer `>`
3. Das Ergebnis eines Programms kann mit "Pipes" (`|`) direkt weiterverarbeitet werden. Welche Ausgabe erwarten Sie?
## Versionskontrolle mit git
* Aus Zeitgründen schauen wir uns nur Grundfunktionen von `git` an.
* Wenn Sie im Anschluss selbst üben möchten, bietet Library Carpentry dazu [ausführliche Lehrmaterialien](<https://librarycarpentry.org/lc-git/>)
Note:
- Durch die Plattform GitHub, auf der Informatiker\*innen Ihren Quellcode ablegen, ist das Versionskontrollsystem Git sehr populär geworden. Es ist nicht nur für die Entwicklung von Software, sondern generell für die Zusammenarbeit in Projekten extrem hilfreich.
### Wozu Git?
* Git ist eine Software zur Versionskontrolle
* Ermöglicht die Arbeit an Textdateien auf mehreren Computern und/oder mit mehreren Personen zu synchronisieren.
* Jede Änderung wird nachvollziehbar.
* Funktioniert mit allen Textdateien, also geeignet für Code, Plain Text oder auch Tabellen (CSV).
Note:
* Git wurde entwickelt für die gemeinsame Software-Entwicklung; heute gibt es weitere Anwendungsfälle (z.B. Texte, Präsentationen oder Forschungsdaten).
### Unterschied Git und GitHub
* Git kann zunächst auch lokal auf einem Computer verwendet werden.
* Wenn ein Git Repository im Netz bereitgestellt werden soll, braucht es eine Installation von Git auf einem Webserver.
* Das kann man selber machen oder eine Plattform nutzen. Die bekannteste ist [GitHub](https://www.github.com).
Note:
- GitHub ist ein 2007 gegründetes Unternehmen, das 2018 aufgekauft wurde. Die meisten Dienstleistungen sind kostenfrei, aber das muss nicht unbedingt so bleiben. Es ist so erfolgreich, dass praktisch jedes Open-Source-Projekt dort seinen Code ablegt.
- Alternativen zu GitHub sind unter anderem [GitLab](https://gitlab.com), [BitBucket](https://bitbucket.org) oder auch das Urgestein [SourceForge](https://sourceforge.net).
- Viele Bibliotheken nutzen GitHub oder GitLab. Es gibt eine gemeinschaftlich gepflegte Liste [BibsOnGitHub](https://github.com/axel-klinger/BibsOnGitHub), auf der [Listen von Bibliotheken](https://axel-klinger.github.io/BibsOnGitHub/libraries.html) und [deren Repositorien](https://axel-klinger.github.io/BibsOnGitHub/repositories.html) eingesehen werden können.
### GitHub vs. GitLab
* Open Source Software findet sich auf beiden Plattformen.
* Nur GitLab (in der Community Edition) ist selbst Open Source. Hier ist der Quellcode von GitLab: <https://gitlab.com/gitlab-org/gitlab>
### Übung: Link zum Lerntagebuch ergänzen
* Als Beispiel nutzen wir das [GitHub Repository dieses Kurses](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik), in dem die Lehrmaterialien liegen.
* Sie ergänzen darin den Link zu Ihrem Lerntagebuch.
* So gehen wir vor:
1. Kopie des Repositories erstellen ("Fork")
2. Dateien aus Ihrem Fork herunterladen ("clone")
3. Link zu Ihrem Lerntagebuch in `README.md` einfügen
4. Die Änderung mit einer Notiz hochladen ("commit")
5. Übernahme der Änderung anfragen ("Pull request")
#### Schritt 1: Kopie des Repositories erstellen
* Bei GitHub einloggen
* Repository aufrufen: https://github.com/felixlohmeier/bibliotheks-und-archivinformatik
* Oben rechts auf Button "Fork" klicken
#### Schritt 2: Dateien herunterladen
Um die Dateien aus Ihrem Fork herunterzuladen ("klonen") geben Sie den folgenden Befehl ins Terminal ein.
Ersetzen Sie dabei `...` durch den Link zu Ihrem Fork.
```shell
git clone ...
```
#### Schritt 3: Änderung lokal durchführen
1. Datei `README.md` in Texteditor öffnen und Link zu Ihrem Lerntagebuch in Abschnitt "Lerntagebücher" einfügen.
2. Lassen Sie sich von `git` die Änderungen anzeigen:
```shell
git diff
```
3. Lassen Sie sich von `git` die geänderten Dateien anzeigen:
```shell
git status
```
#### Schritt 4: Änderung hochladen
1. Datei zum Päckchen hinzufügen
```shell
git add README.md
```
2. Absender eintragen (mit Ihren Daten ersetzen)
```shell
git config user.email "mail@felixlohmeier.de"
git config user.name "Felix Lohmeier"
```
3. Packzettel beilegen und Päckchen schließen
```shell
git commit -m "Link zu meinem Lerntagebuch"
```
4. Päckchen abschicken
```shell
git push
```
#### Schritt 5: Pull Request erstellen
* Mit wenigen Sekunden Verzögerung sollte Ihre Änderung nun auch bei GitHub angekommen sein.
* Öffnen Sie Ihren Fork bei GitHub.
* Klicken Sie auf den Link "Pull request". Dann erscheint ein Vergleich. Klicken Sie dort auf den Button "Create pull request".
* Vervollständigen Sie das Formular und klicken Sie auf den Button "Create pull request".
#### Ergebnis auf GitHub
Sie finden Ihren Pull Request im ursprünglichen Repository bei GitHub im Tab "Pull requests":
<https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/pulls>
## Blog mit GitHub Pages
* Mit GitHub Pages lassen sich statische Webseiten direkt aus den Dateien im GitHub Repository generieren und auf Servern von GitHub kostenfrei veröffentlichen.
* GitHub verwendet dazu den (hauseigenen) Static-Site-Generator [Jekyll](https://help.github.com/en/github/working-with-github-pages/about-github-pages-and-jekyll).
* Die Software nimmt Markdown- und HTML-Dateien und generiert daraus eine komplette Webseite.
* Die Darstellung (Themes) lässt sich über eine Konfigurationsdatei einstellen.
## Aufgaben
Bis zum nächsten Termin:
1. Lerntagebuch einrichten
* Vorlage für ein Lerntagebuch mit GitHub Pages: <https://github.com/felixlohmeier/lerntagebuch>
* Link bitte auf der Übersichtsseite der gemeinsamen Dokumente ergänzen: <https://pad.gwdg.de/Tf-htntTR8COelT3Wgodzg>
2. Einführungsartikel (wo bin ich gestartet?)
3. Beitrag zu dieser Lehreinheit "Technische Grundlagen"

View File

@ -2,325 +2,5 @@
* Metadatenstandards in Bibliotheken (MARC21)
* Installation und Konfiguration von Koha
* Cloud-Konzepte am Beispiel von ALMA
* Marktüberblick Bibliothekssysteme
## Metadatenstandards in Bibliotheken (MARC21)
* MARC21: International verbreiteter Metadaten-Standard, begründet von der Library of Congress 1999: <https://www.loc.gov/marc/bibliographic/>
* Hat [eigenes Binärformat](http://format.gbv.de/marc/iso) (.mrc), gibt's aber auch [als XML](http://format.gbv.de/marc/xml)
* wegen unterschiedlicher Katalogisierungsregeln und der Möglichkeit eigene Felder zu belegen, weicht die Verwendung international und auch nach Institution [stark vom vermeintlichen Standard ab](https://docs.google.com/presentation/d/e/2PACX-1vRU4J_rln00UVD7pNPT0_02NOad0HfSk_UKqRI0v29y8QkMAplEDlyjc0Ot_VE_paV6WBW29Fh_V-iN/pub?start=false&loop=false&delayms=3000#slide=id.g574306292a_0_35)
* wird zukünftig voraussichtlich von [BIBFRAME](http://format.gbv.de/bibframe), einem Datenmodell basierend auf [RDF](http://format.gbv.de/rdf), abgelöst
* Koha und alle anderen großen Bibliothekssysteme basieren auf MARC21 oder unterstützen es als Austauschformat
### Übung: Vergleich MARC21 und Dublin Core
* Dublin Core ist ein Standard, der als kleinster gemeinsamer Nenner gilt
* Als Beispiele nutzen wir den Katalog der Bibliothek der FH Graubünden
* Wir beziehen die Daten über die SRU-Schnittstelle von Swissbib (auf das Thema Schnittstellen und SRU gehen wir an einem anderen Tag noch ein)
---
**Aufgabe (15 Minuten):** Laden Sie über das Formular auf der Webseite http://sru.swissbib.ch Daten mit den folgenden Parametern einmal im Format MARC21 und einmal im Format Dublin Core und vergleichen Sie diese.
| Searchfield | value |
| ------------------------ | ------------- |
| dc.possessingInstitution | `E27` |
| dc.title | `open access` |
Note:
- Das Projekt Swissbib sammelt Metadaten aller schweizer Universitätsbibliotheken, der Nationalbibliothek und einiger Kantonsbibliotheken sowie weiterer Institutionen.
- Der gemeinsame Katalog ermöglicht eine übergreifende Suche, gleichzeitig bietet Swissbib auch Schnittstellen an, über welche Metadaten der teilnehmenden Institutionen zentral bezogen werden können.
- Siehe auch: [Dokumentation Swissbib SRU](http://www.swissbib.org/wiki/index.php?title=SRU)
## Installation und Konfiguration von Koha
### Einführung in Koha
* Webseite: <https://koha-community.org>
* Weltweites Open Source Projekt, gegründet 1999 in Neuseeland, heute mit Beteiligung von Unternehmen wie ByWater Solutions, Biblibre, Catalyst IT, PTFS Europe, Theke Solutions
* Status des Projekts: Siehe [Statistik bei Open Hub](https://www.openhub.net/p/koha)
Note:
* Zu Gesundheit von Open-Source-Projekten siehe auch https://felixlohmeier.de/slides/2017-09-28_vufind-anwendertreffen-keynote.html
#### Koha Dokumentation
* Professionelle Entwicklungsstrukturen, vgl. Dashboard: <https://dashboard.koha-community.org>
* Release Notes zur Version 20.05: <https://koha-community.org/koha-20-05-released/>
* Handbuch zur Version 20.05: [englisch](https://koha-community.org/manual/20.05/en/html/), [deutsch](http://koha-community.org/manual/20.05/de/html/index.html) (noch nicht vollständig übersetzt)
#### Koha Demo
* MARC21, Koha 20.05 bereitgestellt von schweizer Unternehmen "Admin Kuhn"
* [OPAC](http://koha.adminkuhn.ch/)
* [Staff Interface](http://koha.adminkuhn.ch:8080/) (Benutzername `demo` / Passwort `demo`)
### Installation von Koha 20.05
Die folgenden Befehle orientieren sich an der [offiziellen Installationsanleitung](http://wiki.koha-community.org/wiki/Debian).
#### Paketquellen für Koha registrieren
1. Paketquelle hinzufügen
```shell
echo 'deb http://debian.koha-community.org/koha 20.05 main' | sudo tee /etc/apt/sources.list.d/koha.list
```
2. Schlüssel hinzufügen
```shell
wget -q -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -
```
3. Paketquellen aktualisieren
```shell
sudo apt-get update
```
#### Koha und die Datenbank MariaDB installieren
```shell
sudo apt install koha-common mariadb-server
```
#### Domain `meine-schule.org` für Koha konfigurieren
```shell
sudo sed -i 's/DOMAIN=".myDNSname.org"/DOMAIN=".meine-schule.org"/' /etc/koha/koha-sites.conf
```
#### Apache Konfiguration
```shell
sudo a2enmod rewrite
sudo a2enmod cgi
sudo a2enmod headers proxy_http
sudo systemctl restart apache2
```
#### Eine Bibliothek in Koha erstellen
```shell
sudo koha-create --create-db bibliothek
```
#### Deutsche Übersetzung für Koha installieren
```shell
sudo koha-translate --install de-DE
```
#### "Plack" aktivieren für bessere Performance
```shell
sudo koha-plack --enable bibliothek
sudo koha-plack --start bibliothek
sudo systemctl restart apache2
```
#### Host-Datei ergänzen
```shell
echo '# Koha
127.0.0.1 bibliothek.meine-schule.org
127.0.0.1 bibliothek-intra.meine-schule.org
' | sudo tee -a /etc/hosts
```
#### Befehl, um generiertes Passwort herauszufinden
```shell
sudo koha-passwd bibliothek
```
Kopieren Sie das Passwort in die Zwischenablage.
#### Fertig?
Wenn die Installation erfolgreich war, dann sollten Sie mit dem Browser auf der virtuellen Maschine die Webseite http://bibliothek-intra.meine-schule.org aufrufen können. Dort sollte der Koha-Installationsassistent erscheinen.
### Grundkonfiguration mit Tutorial
Wir verwenden ein Tutorial von Stephan Tetzel, das auf deutsch und englisch verfügbar ist:
* Deutsch: <https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/>
* Englisch: <https://openschoolsolutions.org/how-to-install-and-set-up-koha-for-schools-part-1/>
---
**Aufgabe**: Bitte bearbeiten Sie das Tutorial, um die Grundkonfiguration von Koha vorzunehmen. Das Tutorial besteht aus 6 Kapiteln (die Links zu den weiteren Kapiteln sind immer am Anfang der Blogartikel):
1. Installation und Einrichtung einer ersten Bibliothek
* Die Grundinstallation haben wir bereits durchgeführt. Starten Sie in [Kapitel 1](https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/) unter der Überschrift "Koha einrichten".
2. Das bibliografische Framework
* Hier bitte nur lesen, den Export/Import nicht durchführen.
3. Grundeinstellungen
* In der neuen Koha-Version 20.05 wurde der Parameter "OpacMainUserBlock" für die Willkommensnachricht von den Systemeinstellungen in das Nachrichten-Werkzeug verschoben (Werkzeuge > Nachrichten > Neuer Eintrag).
Optional:
4. Buchaufnahme
5. Drucken von Etiketten
6. Ausleihkonditionen
### Koha zurücksetzen (falls etwas total schiefgeht)
```shell
sudo koha-remove bibliothek
sudo apt purge koha-common
sudo rm -r /usr/share/koha
sudo rm -r /var/spool/koha
sudo rm -r /var/lib/koha
sudo apt install koha-common
sudo sed -i 's/DOMAIN=".myDNSname.org"/DOMAIN=".meine-schule.org"/' /etc/koha/koha-sites.conf
sudo koha-create --create-db bibliothek
sudo koha-translate --install de-DE
sudo koha-plack --enable bibliothek
sudo koha-plack --start bibliothek
sudo systemctl restart apache2
sudo koha-passwd bibliothek
```
### Übung: Manuelle Bedienung
**Aufgabe (20 Minuten)**: Damit Sie ein Gespür für das System erhalten, machen wir nun ein Minimalbeispiel für einen vereinfachten Bibliotheksworkflow:
1. Buch erfassen
2. Benutzer anlegen
3. Buch an Theke ausleihen
4. Buch an Theke zurücknehmen
Schauen Sie sich dabei auch ein wenig um, welche Optionen das Bibliothekssystem Koha bietet.
#### Buch erfassen
Start > Katalogisierung > Neuer Titel > Schnellaufnahme
1. Neuer Marc Datensatz: Pflichtfelder ausfüllen
* `000` und `008` werden automatisch befüllt beim Anklicken
* In `245a` muss ein Titel vergeben werden
2. Exemplar hinzufügen
* `p - Barcode` muss vergeben werden (sonst können wir später nicht ausleihen)
* Unten Button "Exemplar hinzufügen" nicht vergessen
#### Benutzer anlegen
* Start > Benutzer > Benutzer-Schnellerfassung
* Hinzufügen Benutzer: Name und Ausweisnummer vergeben
#### Buch an Theke ausleihen
* Oben im Suchschlitz Reiter Ausleihe wählen, Ausweisnummer eingeben und abschicken
* Dann in Box "Ausleihe an" den Exemplarbarcode eingeben und Ausleihe abschicken
#### Buch an Theke zurücknehmen
* Oben im Suchschlitz Reiter Rückgabe wählen, Barcode eingeben und abschicken
### Übung: Datenimport
**Aufgabe (20 Minuten)**: Koha verfügt über einige Schnittstellen. Hier ein kleines Beispiel für semi-automatische Erfassung ("copy cataloging"):
1. Z39.50 Server einrichten
2. "Copy Cataloging"
3. Datenexport
#### Z39.50 Server einrichten
Start > Administration > Z39.50/SRU-Server / Neuer SRU-Server
* Servername: `GBV`
* Hostname: `sru.gbv.de`
* Port: `80`
* Ausgewählt (Standardsuche): ja
* Datenbank: `gvk`
* Syntax: `MARC21/USMARC`
* Codierung: `utf8`
Note:
* Im Netzwerk der FHGR sind aus Sicherheitsgründen einige Ports gesperrt. Daher können wir mit unserer virtuellen Maschine einige Z39.50 Server wie z.B. von NEBIS auf Port 9909 nicht erreichen.
#### "Copy Cataloging"
Start > Katalogisierung > Import über Z39.50/SRU
* Nach etwas suchen (z.B. Titel: `open educational resources`)
* Bei gewünschtem Eintrag Aktionen > Import auswählen (oder vorher Vorschau prüfen, ob es der richtige Titel ist).
* Im folgenden Katalogisierungsbildschirm können Sie versuchen zu speichern. Es muss aber auf jeden Fall noch der Medientyp in Feld `942c` ausgewählt werden (ein Pflichtfeld).
* Im nächsten Bildschirm einen Barcode vergeben und Exemplar hinzufügen.
### Exkurs: Datenexport und Schnittstellen
* Koha unterstützt dateibasierten Datenexport und diverse Schnittstellen.
* Wir nutzen hier die Schnittstelle OAI-PMH.
* OAI-PMH steht für [Open Archives Initiative Protocol for Metadata Harvesting](https://www.openarchives.org/pmh/) und ermöglicht regelmäßiges automatisiertes Abrufen von Änderungen.
* Im Themenblock "Metadaten modellieren und Schnittstellen nutzen" gehen wir noch genauer darauf ein. Vorab: Was nützt es meiner Bibliothek?
* Abruf der Daten zur Weiterverarbeitung (z. B. Discovery-System, Digitalisierung)
* Erstellung von z. B. Regionalbibliografien oder Themenportalen
* Aggregation für Verbundrecherchen
* Datenbereitstellung für Digitalisierung, Hackathons, etc.
### Übung: OAI-PMH
**Aufgabe (20 Minuten)**: Aktivieren Sie die OAI-PMH-Schnittstelle und prüfen Sie, ob die von Ihnen erstellten Datensätze darüber abrufbar sind
#### Schnittstelle einrichten
Administration > Globale Systemparameter > Web Services
* OAI-PMH: Aktiviere
* OAI-PMH:AutoUpdateSets: Aktiviere
* Button "Alle Web Services Parameter speichern"
* Siehe auch: <http://manual.koha-community.org/3.12/en/administration.html#oaiprefs>
#### Schnittstelle abfragen
* Die Basisurl lautet bei uns: <http://bibliothek.meine-schule.org/cgi-bin/koha/oai.pl>
* Klicken Sie oben auf die Links "Identify", "Metadata Formats" usw.
* Prüfen Sie, ob die von Ihnen erstellten Katalogeinträge abrufbar sind
### Literatur
* Koha Anwenderhandbuch des Bibliothekservice-Zentrum Baden-Württemberg: <https://wiki.bsz-bw.de/display/KOHA/Dokumentation> (für ältere Versionen geschrieben)
* Felix Hemme (2016): Katalogisierung mit dem Open-Source-Bibliothekssystem Koha unter Berücksichtigung des Metadatenstandards MARC 21 und dem Regelwerk RDA. Bachelorarbeit im Studiengang Bibliotheksmanagement der FH Potsdam. <https://nbn-resolving.org/urn:nbn:de:kobv:525-13882>
* Implementation Checklist: <https://koha-community.org/manual/20.05/en/html/implementation_checklist.html>
* Fred King: How to use Koha, MarcEdit, a Raspberry Pi, and a Chicken (optional) to create an ILS for under $100 (September 2019, Vortrag auf Koha-Konferenz): <http://avengingchicken.online/misc/installing_koha_on_raspberry-pi-4.pdf>
## Marktüberblick Bibliothekssysteme
### Statistiken zum Markt USA/UK
* Marshall Breeding veröffentlicht jährlich im American Libraries Magazine den "Library Systems Report" und erfasst dafür regelmäßig Statistiken. Daran lässt sich die internationale Entwicklung der Produkte am ehesten ablesen.
* [Zusammenfassende Tabellen mit aktuellen Statistiken (2020)](https://americanlibrariesmagazine.org/wp-content/uploads/2020/04/charts-for-2020-Library-Systems-Report.pdf)
* Vollständiger Bericht: Marshall Breeding (1.5.2020): Library Systems Report 2020. Fresh opportunities amid consolidation. In: American Libraries Magazine. <https://americanlibrariesmagazine.org/2020/05/01/2020-library-systems-report/>
### Aktuelle Entwicklungen
* Swiss Library Service Platform (SLSP) wird Alma (reines Cloud-Angebot, Server wird in Amsterdam stehen) einführen
* Größte Open-Source-Alternative in Entwicklung: [FOLIO](https://www.folio.org)
* Open Source Bibliothekssystem der [Open Library Foundation](http://www.openlibraryfoundation.org/)
* [EBSCO](https://www.ebsco.com/de-de/partnerschaften/folio) ist mit Abstand der größte Entwicklungsförderer von FOLIO
* [ByWater Solutions](https://bywatersolutions.com/projects) bietet (wie andere Firmen) Support und Entwicklungsdienstleistungen für FOLIO an
### Alma im Vergleich zu Aleph und Koha
* Eine Stärke von Alma ist das ERM (Electronic Resource Management). Aleph und Koha verfügen über kein integriertes ERM.
* Siehe dazu Vortrag von Katrin Fischer: [Koha und ERM - Optionen für die Verwaltung von elektronischen Ressourcen](https://nbn-resolving.org/urn:nbn:de:0290-opus4-35840) auf dem Bibliothekartag 2018.
* Alma ist auf dem aktuellsten Stand der Technik und bietet vorbildliche Programmierschnittstellen.
* Alma ist cloudbasiert, d.h. zentrale Installation auf Servern von Ex Libris und regelmäßige Updates.
* Kritiker befürchten langfristig Nachteile durch die Abhängigkeit vom Hersteller Ex Libris und dessen Marktmacht (Vendor-Lock-in).
### Unterschiede zwischen wiss. und öff. Bibliothekssoftware
- Traditionell gibt es große Unterschiede zwischen wissenschaftlichen und öffentlichen Bibliotheken (darunter Schulbibliotheken)
- Bibliotheksmanagementsoftware für öffentliche Bibliotheken enthält oft Module für Veranstaltungsmanagement oder Content-Management (Webseiten), legt Schwerpunkte auf optischer Darstellung (Buchcover, Themenschwerpunkte) und bindet Plattformen für E-Books und Hörbücher ein.
- Bibliotheksmanagementsoftware für wissenschaftliche Bibliotheken legt Schwerpunkte auf Erschließung, E-Ressourcen-Management (elektronische Zeitschriften) und komplexe Geschäftsgänge
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit
2. Installation ArchivesSpace

View File

@ -3,301 +3,3 @@
* Metadatenstandards in Archiven (ISAD(G) und EAD)
* Installation und Konfiguration von ArchivesSpace
* Marktüberblick Archivsysteme
## Metadatenstandards in Archiven (ISAD(G) und EAD)
### ISAD(G)
- Als digitale Archivsysteme entwickelt wurden, orientierte sich die Datenstruktur an analogen Findmitteln wie Findbüchern und Zettelkästen.
- Ein wichtiger Verzeichnungsstandard im Archivwesen wurde 1994 (Revision 2000) eingeführt, die "International Standard Archival Description (General)" - kurz [ISAD(G)](https://de.wikipedia.org/wiki/ISAD(G)).
- Grundsätzlich gibt es hier eine mehrstufige Verzeichnung im Provenienzprinzip, um den Entstehungszusammenhang abzubilden.
#### Informationsbereiche
Der Standard enthält 26 Verzeichnungselemente in 7 Informationsbereichen:
1. Identifikation
2. Kontext
3. Inhalt und innere Ordnung
4. Zugangs- und Benutzungsbedingungen
5. Sachverwandte Unterlagen
6. Anmerkungen
7. Kontrolle
#### Pflichtfelder
Von besonderer Bedeutung sind 6 Pflichtfelder:
- Signatur
- Titel
- Provenienz
- Entstehungszeitraum
- Umfang
- Verzeichnungsstufe
#### Grenzen von ISAD(G)
1. Ein einzelner Datensatz ist unter Umständen nur im Kontext verständlich (z. B. nur "Protokoll" als Titel).
2. Die Tektonik ist eindimensional (keine Mehrfachzuordnung möglich).
3. Der Standard enthält keine Vorgaben zur Digitalisierung oder zur digitalen Langzeitarchivierung.
#### Normdaten mit ISAD(G)
- Um Normdateien verzeichnen zu können, wurde später ein ergänzender Standard "International Standard Archival Authority Record for Corporate Bodies, Persons, and Families" - kurz [ISAAR(CPF)](https://de.wikipedia.org/wiki/ISAAR(CPF)) verabschiedet. Dieser wird in der Praxis wegen dem Zusatzaufwand bei der Erschließung jedoch nur selten verwendet.
- Aktuell ist ein neuer Standard ["Records in Contexts" (RIC)](https://de.wikipedia.org/wiki/Records_in_Contexts) in Entwicklung. Dieser basiert auf Linked-Data-Prinzipien und soll neue und mehrfache Beziehungen zwischen Entitäten ermöglichen.
Note:
- In den Archiven der ETH-Bibliothek ist wegen der Bibliothekszugehörigkeit die [GND](https://de.wikipedia.org/wiki/Gemeinsame_Normdatei)-ID von besonderer Bedeutung.
- Projektgruppe [ENSEMEN](https://vsa-aas.ch/arbeitsgruppen/projektgruppe-ensemen/) arbeitet an einer schweizerischen Ausprägung des neuen Standards [Records in Contexts](https://www.ica.org/en/records-contexts-german) (RiC), mit Beteiligung von Niklaus Stettler (FH Graubünden)
### Übung: Archivkataloge
**Aufgabe (20 Minuten):**
- Suchen Sie nach:
- `Einstein` im [Online Archivkatalog des Staatsarchivs BS](https://query.staatsarchiv.bs.ch/query/suchinfo.aspx)
- `Einstein Ehrat` im [Hochschularchiv ETH Zürich](http://archivdatenbank-online.ethz.ch/)
- Beantworten Sie die folgenden Fragen:
1. Welche Informationen enthält die Trefferliste?
2. Welche Verzeichnungsstufen sind vertreten?
3. Sind die ISAD(G)-Informationsbereiche erkennbar?
4. Decken sich die grundlegenden Informationen oder gibt es bemerkenswerte Unterschiede?
5. Worin liegen die zentralen Unterschiede zu einem Bibliothekskatalog?
- Zum Nachschlagen: [ISAD(G) Guidelines](https://www.ica.org/sites/default/files/CBPS_2000_Guidelines_ISAD(G)_Second-edition_DE.pdf)
### EAD
- [Encoded Archival Description](https://de.wikipedia.org/wiki/Encoded_Archival_Description) (EAD) ist ein XML-Standard
- Verschiedene Versionen: EAD2002 und EAD3 (August 2015 veröffentlicht)
- Lässt viele Wahlmöglichkeiten offen, daher gibt es oft Anwendungsprofile, die genauer spezifizieren welche Werte zugelassen sind.
- Anwendungsfälle: [Archives Portal Europa](https://www.archivesportaleurope.net/de/), [Archivportal-D](https://www.archivportal-d.de), [Kalliope](https://kalliope-verbund.info)
- Einführung: [Nicolas Moretto (2014): EAD und digitalisiertes Archivgut](https://wiki.dnb.de/download/attachments/90410326/20140414_KIMWS_EAD.pdf?version=1&modificationDate=1398246420000&api=v2). Präsentation auf dem [DINI AG KIM Workshop 2014](https://wiki.dnb.de/display/DINIAGKIM/KIM+WS+2014) in Mannheim.
Note:
- Wir werden später praktisch mit EAD-Dateien arbeiten, daher hier nur diese Kurzinfo.
- Die Präsentationsfolien von Nicolas Moretto geben einen guten Überblick über EAD2002.
- Liste der Elemente in EAD2002: https://eadiva.com/2/elements/
### Aktuelle Entwicklungen
- Umstieg von ISAD(G) auf RiC wird mit viel Aufwand verbunden sein, auch mit einem Systemwechsel.
- Generierung von mehr Volltexten u.a. durch Optical Character Recognition (OCR) auch für Handschriften. Automatisierte Anreicherung von Volltexten durch Named Entity Recognition.
- In Wikidata werden Online-Findmittel über Property [Archives at](https://www.wikidata.org/wiki/Property:P485) verzeichnet. Beispiel [Albert Einstein in Wikidata](https://www.wikidata.org/wiki/Q937).
- In der Schweiz gibt es eine Vernetzungsinitiative [Metagrid](https://metagrid.ch) und weitere Dienste von [histHub](https://histhub.ch), einer Forschungsplattform für die Historischen Wissenschaften.
- Literaturempfehlung: [Umfrage "Was sich Historiker*innen von Archiven wünschen"](https://dhdhi.hypotheses.org/6107)
## Installation und Konfiguration von ArchivesSpace
### Einführung in ArchivesSpace
- Open-Source-Software für Archivinformationssysteme
- 400 zahlende [Mitglieder](http://archivesspace.org/community/whos-using-archivesspace/), woraus fast 5 Vollzeitstellen finanziert werden.
- Code bei GitHub: https://github.com/archivesspace/archivesspace
- ArchivesSpace ist institutionell verankert bei [Lyrasis](https://en.wikipedia.org/wiki/Lyrasis), einem internationalen "nonprofit" Bibliotheksnetzwerk vorrangig aus den USA. Es gibt auch zwei weitere Unternehmen, die dazu professionellen Support anbieten.
#### Funktionen
"What ASpace does and how do we use it" ([aus Fortbildungsmaterialien der NYU](https://guides.nyu.edu/ld.php?content_id=23461999))
- System of record for archival materials. Not everything is public, or open to staff, nor is it intended to be.
- Perform core archival functions: accessioning, arrangement and description
- Aid in public services
- Record and report location holdings information; stacks management
- Manage digital objects
- Produce access tools
- Statistics gathering, prioritization, holistic planning
- Contribute to various interdepartmental processes (preservation and digitization)
#### Metadaten in ArchivesSpace
- basiert auf den Standards [DACS](https://en.wikipedia.org/wiki/Describing_Archives:_A_Content_Standard), ISAD(G) und ISAAR(CPF)
- unterstützt Import/Export in EAD, MARCXML und METS
### Exkurs zur Systemadministration
Wir haben auf unserem Server bereits Koha installiert. Gibt es Probleme wenn wir ArchivesSpace zusätzlich installieren?
- Es könnten Versions- oder Ressourcenkonflikte entstehen.
- Best Practice: Jedes System in einer eigenen Umgebung.
- Koha und ArchivesSpace vertragen sich aber zufällig gut, daher installieren wir hier ArchivesSpace einfach zusätzlich.
Note:
- Es könnte Konflikte geben, wenn die Systeme unterschiedliche Versionen der gleichen Programmiersprache (z.B. Java, PHP) oder der Datenbank (z.B. MySQL, PostgreSQL) benötigen. Es könnten auch die Ressourcen (insbesondere Arbeitsspeicher) knapp werden.
- Um den Wartungsaufwand zu reduzieren und Ressourcen zu sparen, werden üblicherwese virtuelle Maschinen oder Container eingesetzt.
### Installation ArchivesSpace 2.8.0
1. Java 8 installieren
```shell
sudo apt update
sudo apt install openjdk-8-jre-headless
```
2. Zip-Archiv herunterladen und entpacken
```shell
wget https://github.com/archivesspace/archivesspace/releases/download/v2.8.0/archivesspace-v2.8.0.zip
unzip -q archivesspace-v2.8.0.zip
```
3. ArchivesSpace starten
```shell
archivesspace/archivesspace.sh
```
Note:
- Während Koha in der Standardinstallation so eingerichtet ist, dass es automatisch beim Systemstart zur Verfügung steht, muss ArchivesSpace in der Standardinstallation manuell gestartet werden.
- Es ist nur solange verfügbar wie der Prozess im Terminal läuft. Es handelt sich um eine Webanwendung. Im Terminal läuft die Server-Applikation. Über den Browser greifen wir darauf zu. Wenn das Terminal geschlossen wird, dann wird auch der Server beendet und die Webseite im Browser ist nicht mehr erreichbar.
- ArchivesSpace kann auch betrieben werden, ohne ständig die Shell geöffnet haben zu müssen. Im Linux-Kontext spricht man bei im Hintergrund laufenden Programmen von *Daemon*. Ein Programm kann von der Shell im Hintergrund gestartet werden, in dem am Ende des Aufrufs ein ` &` angefügt wird.
### ArchivesSpace aufrufen
Nach ein paar Minuten sollte ArchivesSpace unter folgenden URLs erreichbar sein:
- http://localhost:8080/ the staff interface
- http://localhost:8081/ the public interface
- http://localhost:8082/ the OAI-PMH server
- http://localhost:8089/ the backend
- http://localhost:8090/ the Solr admin console
Zugangsdaten für das "Staff Interface" sind:
- Username: `admin`
- Password: `admin`
Note:
- Da es sich um eine lokale Installation handelt, sind die Adressen nur über den Webbrowser innerhalb der Virtuellen Maschine erreichbar.
### Grundkonfiguration ArchivesSpace
#### Repository anlegen
Nach dem ersten Login erscheint die Meldung:
> To create your first Repository, click the **System** menu above and then **Manage Repositories**.
Dort nutzen Sie den Button `Create Repository` um ihr Repository anzulegen.
- Notwendig sind zunächst nur `Repository Short Name` und `Repository Name`.
- Die Checkbox `Publish?` definiert, ob die Daten im "public interface" unter http://localhost:8081 erreichbar sind.
#### Konfigurationsmöglichkeiten
- Spracheinstellung: Es gibt noch keine deutsche Übersetzung aber Spanisch, Französisch und Japanisch
- Konfiguration: https://archivesspace.github.io/archivesspace/user/configuring-archivesspace/#Language
- Sprachdateien: https://github.com/archivesspace/archivesspace/tree/master/common/locales
- Weitere Optionen: Siehe technische Dokumentation https://archivesspace.github.io/archivesspace/user/configuring-archivesspace/
### Bedienung
- Wir nutzen nun die zuvor diskutierten Grundlagen und die Erfahrungen aus der Übung zu "Einstein", um Datensätze in ArchivesSpace zu erschließen.
- Versuchen Sie bei der folgenden Gruppenarbeit intuitiv vorzugehen und tauschen Sie sich untereinander aus.
- Denken Sie an das Provenienzprinzip. Jede Ressource, die Sie verzeichnen wollen, benötigt zunächst Informationen zur Herkunft (Akzession).
#### Begrifflichkeiten
- [Accession](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#heading=h.qp2gyscl8fra): Dokumentation der Erwerbung, wegen vertraulichen Angaben oft nicht öffentlich
- [Resource](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#heading=h.jvn83ztmj4y4): Zentraler Nachweis auf der obersten Ebene der Verzeichnungsstufen, zum Beispiel zu einem Nachlass (kann aber auch direkt zum Objekt sein, wenn die Resource nur eine Verzeichnungsstufe hat)
- [Archival Object](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#heading=h.nscr859g1snm): Nachweis von Objekten auf weiteren Verzeichnungsstufen (Bestand/Fonds, Serie/Series, Akte/File, Einzelstück/Item). Sie werden als "Add Child" an vorhandene Resources gehängt.
Note:
* Verlinkte Begriffe führen zum [ArchivesSpace Manual for Local Usage at NYU](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit), weil das offizielle Handbuch nur für Mitglieder zugänglich ist.
#### Übung: Datensätze erstellen
**Aufgabe (40 Minuten)**
- Aufgabe: Erstellen Sie eigene Datensätze in Ihrer ArchivesSpace Installation. Erfinden Sie dazu sinnvolle Archivdaten oder suchen Sie sich Beispieldaten (z.B. im [Hochschularchiv der ETH](http://archivdatenbank-online.ethz.ch)).
- Ziel: Ihre Datensätze erscheinen in der öffentlichen Ansicht unter http://localhost:8081. Machen Sie einen Screenshot und laden Sie das Bild hier in das gemeinsame Dokument.
- Hinweis: Orientieren Sie sich beim Vorgehen an der Übung der NYU: [Create Your Own Record](https://guides.nyu.edu/ld.php?content_id=23198351)
### Import und Export
ArchivesSpace bietet dateibasierten Import und Export in diversen Formaten (EAD, MARCXML, CSV) und auch eine OAI-PMH-Schnittstelle.
In den folgenden zwei Übungen werden wir EAD-Beispieldaten in ArchivesSpace importieren und anschließend in MARCXML exportieren.
#### Übung: Import
**Aufgabe (15 Minuten)**
- Beispieldaten: https://eadiva.com/2/sample-ead2002-files/ (laden Sie eine der als "a raw XML file" verlinkten Dateien herunter)
- Aufgabe: Importieren Sie Beispieldaten im Format EAD in ArchivesSpace. Vergleichen Sie (ganz grob) die Anzeige in ArchivesSpace mit der bei den Beispieldaten verlinkten HTML-Ansicht.
- Ziel: Dokumentieren Sie Ihre Erkenntnisse unten im gemeinsamen Dokument.
- Hinweis: Die Import-Funktion finden Sie etwas versteckt unter `Create` > `Background Job` > `Import Data`
Note:
- Import kann etwas länger dauern weil,
- wir nur die mitgelieferte Datenbank (für Testzwecke) verwendet haben und keine separate MySQL-Datenbank
- EAD ein komplexes Dateiformat ist, was etwas aufwendiger auszuwerten ist (daher auch die mehreren "Cycles" in der Log-Datei)
- ArchivesSpace in der Grundeinstellung nur 1 GB RAM benutzt, siehe Dokumentation zu "Tuning": http://archivesspace.github.io/archivesspace/user/tuning-archivesspace/
#### Übung: Export
**Aufgabe (15 Minuten)**
- Aufgabe:
1. Exportieren Sie die von Ihnen zuvor importierten Datensätze im Format MARCXML. Speichern Sie die Datei auf der Festplatte.
2. Vergleichen Sie die exportierte MARCXML-Datei kurz mit den in ArchivesSpace vorhandenen Informationen. Ist der Export in MARCXML verlustfrei?
- Ziel: Dokumentieren Sie Ihre Erkenntnisse unten im gemeinsamen Dokument.
- Hinweis: Die Export-Funktion finden Sie etwas versteckt in der Button-Leiste bei der "Resource".
Note:
- Mappingtabellen als XLS (Stand 2013, unklar ob aktuell) stellt ArchivesSpace auf der Webseite zur Verfügung: https://archivesspace.org/using-archivesspace/migration-tools-and-data-mapping
- Technische Dokumentation der Konvertierung in MARCXML (falls jemand die Proogrammiersprache Ruby können sollte): https://archivesspace.github.io/archivesspace/doc/MarcXMLConverter.html
### Literatur zu ArchivesSpace
- Einführungsvideos: https://www.youtube.com/playlist?list=PL3cxupmXL7WiXaHnpVquPrUUiLiDAMhg0
- ArchivesSpace Wiki: https://archivesspace.atlassian.net/wiki/spaces/ADC/
- ArchivesSpace Manual for Local Usage at NYU: https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#
- Workflow Overview bei Orbis Cascade Alliance (ArchivesSpace 1.5.2): https://www.orbiscascade.org/achivesspace-workflow-overview/
Note:
- Das Benutzerhandbuch von ArchivesSpace steht nur zahlenden Mitgliedern zur Verfügung. Bei Open-Source-Software suchen die Communities oft nach einem Zusatzvorteil für Mitglieder, weil die Software selbst ja kostenfrei erhältlich ist. Wirklich "open" ist diese Zurückhaltung von Informationen nicht so recht.
## Marktüberblick Archivsysteme
- ArchivesSpace hat eine große Community in den USA
- Weitere Open-Source-Alternative: [Access to Memory (AtoM)](https://www.accesstomemory.org)
- Der Markt in der Schweiz wird von den Produkten [scope.Archiv](http://www.scope.ch) und [CMISTAR](https://www.cmiag.ch/cmistar) dominiert.
- Für die Online-Präsentation von digitalisiertem Archivgut wird oft zusätzliche Software eingesetzt. Beispiele:
- [E-Pics Plattform der ETH Zürich](https://www.e-pics.ethz.ch)
- [e-manuscripta.ch - Kooperative Präsentationsplattorm für handschriftliche Quellen](http://www.e-manuscripta.ch)
Note:
- In den Archiven der ETH-Bibliothek wird CMI STAR verwendet. Im "Rich-Client" (Programm für die Mitarbeiter*innen) wird die Erschließung anhand der ISAD(G) Informationsbereiche kategorisiert. CMI STAR beinhaltet auch ein grafisches Mapping-Tool für den Import von Excel oder CSV. Das wird verwendet, um Eingaben von Hilfskräften in Excel in das System zu importieren.
### Unterschiede zwischen Bibliotheks- und Archivsystemen
- Bibliothek
- (Massen-)Medium, Benutzerinteraktion (Ausleihe)
- Software medienzentriert
- Metadatenformat: MARC21, zukünftig BIBFRAME?
- Archiv
- Entstehungszusammenhang, eher stehender, unikaler Bestand (Nutzung auf Anfrage)
- Software orientiert sich an analogen Findmitteln
- Metadatenformat: EAD, zukünftig RiC
Note:
- Herausforderung: Datenaustausch zwischen den Systemen (kommen wir später darauf zurück)
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit
2. Datensätze in ArchivesSpace vervollständigen. Mindestens Accession und Resource. Beides sollte unter http://localhost:8081 (öffentliche Ansicht) erscheinen.

View File

@ -3,135 +3,3 @@
* Open Access und Open Data
* Übungen mit DSpace
* Marktüberblick Repository-Software
## Open Access und Open Data
- Publikationen
- Open Access
- [Statistik zu Open-Access-Repositorien](https://v2.sherpa.ac.uk/view/repository_visualisations/1.html)
- Fokus: Zweitveröffentlichungen ("grüner Weg") und Hochschulschriften
- Forschungsdaten
- Open Data
- [Verzeichnis von Forschungsdaten-Repositorien](https://www.re3data.org)
- Fokus: Primärdaten, die bei der Forschung entstehen. Oft Daten als Anhang zu Zeitschriftenartikeln.
### Forschungsinformationen
- Informationen über Forschende, Drittmittelprojekte, Patente und vieles mehr.
- Ziel ist die Forschungsberichterstattung. Um die Daten zusammenzuführen und Berichte erstellen zu können, werden oft Forschungsinformationssysteme an den Universitäten eingeführt.
- Beispiel: ["Kerndatensatz Forschung" in Deutschland](https://kerndatensatz-forschung.de/version1/technisches_datenmodell/ER-Modell.html)
- Zum Stand in der Schweiz: Ackermann Krzemnicki, Sonia and Hägele, Bernd F. (2016): Die Standardisierung von Forschungsinformationen an Schweizer universitären Hochschulen. https://edoc.unibas.ch/54788/
### Beispiele
- [Zenodo](https://zenodo.org) (Invenio)
- [TUHH Open Research](https://tore.tuhh.de) (DSpace-CRIS)
## Übungen mit DSpace
### Einführung in DSpace
- Software geeignet für Publikationen und Forschungsdaten
- Erweiterung für Forschungsinformationen: DSpace-CRIS.
- Metadatenstandard: Qualified Dublin Core, kann aber auch mit [DataCite](https://schema.datacite.org/) Metadatenschema betrieben werden.
- DSpace 6.x: 2016 erstmalig veröffentlicht, wird gepflegt, aber nicht mehr weiterentwickelt.
- DSpace 7.x: Veröffentlichung in 2020 geplant, neue Technologien im Frontend (Angular) und Backend (neue REST API).
### DSpace Demo
Aus Zeitgründen keine Installation, nur Test mit öffentlich zugänglicher Demo.
DSpace 6.x Demo: https://demo.dspace.org
- Site Administrator: `dspacedemo+admin@gmail.com`
- Community Administrator: `dspacedemo+commadmin@gmail.com`
- Collection Administrator: `dspacedemo+colladmin@gmail.com`
- Submitter: `dspacedemo+submit@gmail.com`
- Passwort immer: `dspace`
Note:
- Sie können die XMLUI oder die JSPUI verwenden. Beide Oberflächen sind mit dem gleichen Backend verbunden.
### Übung: Communities und Collections
**Aufgabe (10 Minuten)**
- Aufgabe: Melden Sich mit dem Account "Community Administrator" in der DSpace demo an. Erstellen Sie dann eine Sub-Community der [Sample Community](https://demo.dspace.org/jspui/handle/10673/1) und legen Sie darin eine Collection an.
- Ziel: Dokumentieren Sie den Link zur Collection unten im gemeinsamen Dokument.
- Hinweis: [Erläuterungen in der How-To von DSpaceDirect](https://wiki.lyrasis.org/display/DSpaceDirectKB/Getting+Started+How-To#GettingStartedHowTo-Communities&Collections)
Note:
* Der Grund, warum es zusätzlich zu Collections auch noch Communities gibt, ist das Rechtemanagement. In der Community wird festgelegt wer die (ggf. mehrere zugehörige) Collections verwalten darf. Das möchte man nur an einer Stelle und nicht an jeder Collection definieren. Außerdem können ganze Communities "geharvestet" werden, also Daten einer Einrichtung über die Schnittstellen abgefragt werden.
### Übung: Einreichung und Review
**Aufgabe (20 Minuten)**
- Aufgabe: Reichen Sie ein Beispieldokument für Ihre Collection ein. Starten Sie falls nötig den Begutachtungsprozess (falls beim Anlegen der Collection aktiviert) und veröffentlichen Sie das Dokument.
- Ziel: Dokumentieren Sie den Link zur Veröffentlichung unten im gemeinsamen Dokument.
- Hinweis: [Erläuterungen in der How-To von DSpaceDirect](https://wiki.lyrasis.org/display/DSpaceDirectKB/Getting+Started+How-To#GettingStartedHowTo-Adding/SubmittingItems).
Note:
- Der Einreichungs- und Begutachtungsprozess in DSpace ist sehr umfangreich konfigurierbar. Alle Formulare können angepasst und vereinfacht werden.
- Der Hinweis von DSpaceDirect, dass das Geld kostet, bezieht sich auf deren Hosting. Wenn Sie DSpace selbst hosten, können Sie natürlich alles selbst kostenfrei konfigurieren.
- Automatische Datenübernahme via DOIs kann auch angeboten werden, so dass nicht alle Daten manuell eingegeben werden müssen.
### Import und Export
- DSpace bietet auch dateibasierten Import, besonders relevant sind im Kontext von Repositorien aber die Schnittstellen:
- SWORD ermöglicht die Publikation in DSpace auf anderen Webseiten.
- OAI-PMH ermöglicht es externen Systemen die in DSpace verzeichneten Metadaten abzurufen.
- OAI-PMH-Schnittstelle der DSpace-Demo (Daten erscheinen dort zeitverzögert): http://demo.dspace.org/oai/request?verb=ListSets
- Beispiel für Portal auf Basis von OAI-PMH: Die [Bielefeld Academic Search Engine (BASE)](https://pad.gwdg.de/TMS3kWihRGuhKPn1wMJswA?view) "erntet" weltweit OAI-PMH-Schnittstellen und verzeichnet damit weit über 100 Mio. Dokumente.
Note:
* [SWORD](https://en.wikipedia.org/wiki/SWORD_(protocol)) ist eine Schnittstelle, um Publikationen in einem Repository abzuliefern. Damit kann ein Formular mit Dateiupload auf einer Webseite (außerhalb der Repository-Webseite) angeboten werden.
* Um Daten aus dem Repository auf Webseiten anzuzeigen, z.B. eine Publikationsliste, werden andere Schnittstellen wie [RSS-Feeds](https://de.wikipedia.org/wiki/RSS_(Web-Feed)) verwendet.
### Literatur zu DSpace
- Videomitschnitte der Präsentationen auf dem D/A/CH-Anwendertreffen 2020: https://wiki.lyrasis.org/display/DSPACE/DSpace-Anwendertreffen+2020
- Weitere Demo-Installationen:
- DSpace 5.x mit DSpace-CRIS: https://dspace-cris.4science.it/ (nur lesend)
- DSpace 7.x: https://dspace7-demo.atmire.com (nur lesend)
- Suchmaschinenoptimierung (SEO): [Abschnitt im Nutzerhandbuch von DSpace zu SEO](https://wiki.lyrasis.org/display/DSDOC5x/Search+Engine+Optimization)
## Marktüberblick Repository-Software
- Grundsätzliches zu Repositorien: https://open-access.net/informationen-zu-open-access/repositorien
- Open Directory of Open Access Repositories (OpenDOAR)
- [Weltweit](https://v2.sherpa.ac.uk/view/repository_visualisations/1.html)
- [Schweiz](https://v2.sherpa.ac.uk/view/repository_by_country/Switzerland.default.html)
- [Open Access Repository Ranking 2015](https://web.archive.org/web/20160110005003/http://repositoryranking.org/) (via Wayback-Machine)
### Relevante Systeme in D/A/CH
Alle Open Source!
- [DSpace](https://www.dspace.org)
- [EPrints](https://www.eprints.org)
- [Fedora](http://fedorarepository.org) / [Islandora](https://islandora.ca)
- [Invenio](https://invenio-software.org)
- [MyCoRe](https://www.mycore.de)
- [OPUS](https://www.opus-repository.org)
Note:
- Invenio arbeitet an interessanten neuen Lösungen:
- [InvenioRDM](https://invenio-software.org/products/rdm/) - "The turn-key research data management repository. Coming soon - late 2020"
- [InvenioILS](https://invenio-software.org/products/ils/) - "Modern Integrated Library System. Coming soon - late 2020"
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit
2. Laden Sie von Ihnen erstellte Daten in der DSpace-Demo über die OAI-PMH-Schnittstelle (Daten erscheinen dort zeitverzögert ca. 1 Tag)
- Achtung: Daten auf [demo.dspace.org](http://demo.dspace.org) werden jeden Samstag nachts gelöscht.
- Rufen Sie bei einer von Ihnen erstellten Community unter http://demo.dspace.org/oai/request?verb=ListSets den Link "Records" auf
- Sie finden die Daten jeweils im Kasten "Metadata".
- Kopieren Sie die Inhalte in einen Texteditor und speichern Sie diese auf der Festplatte der virtuellen Maschine (z.B. im Ordner "Downloads")

View File

@ -6,465 +6,3 @@
- Transformation von Metadaten mit OpenRefine
- Weitere Tools zur Metadatentransformation
- Nutzung von JSON-APIs
- Metadatenstandard LIDO
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
Note:
* VuFind ist Solr-basiertes Discovery-System (wie Primo)
* VuFindHarvest ist OAI-Harvester (auch unabhängig von VuFind einsetzbar)
### 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
* <http://bibliothek.meine-schule.org/cgi-bin/koha/oai.pl>
* Format: `marcxml`
* ArchivesSpace muss ggf. gestartet werden
* <http://localhost:8082> (Meldung `Parameter required but no value provided` ist OK)
* Format: `oai_ead`
* DSpace Demo wird jede Samstag Nacht gelöscht
* <http://demo.dspace.org/oai/request>
* Format: `oai_dc`
* Set: `com_10673_1` (Sample Community)
### VuFindHarvest 4.0.1 installieren
* Die Software wird bei GitHub veröffentlicht: <https://github.com/vufind-org/vufindharvest>
* Sie ist in PHP geschrieben. Für die Installation wird composer (Paketverwaltung für PHP) empfohlen.
```shell
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:
```shell
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: <https://programminghistorian.org/en/lessons/transforming-xml-with-xsl>
### MarcEdit 7 installieren
* MarcEdit ist eine kostenlos nutzbare Software aber nicht Open Source (siehe [Lizenz](https://marcedit.reeset.net/marcedit-end-user-license-agreement))
* Sie ist die meistgenutzte Zusatzsoftware für die Arbeit mit MARC21.
* Offizielle Webseite: <https://marcedit.reeset.net>
* Installation von Mono (MarcEdit ist in .NET geschrieben und benötigt unter Linux diese Laufzeitumgebung) und des Unicode Fonts "Noto":
```shell
sudo apt install mono-complete fonts-noto
```
* Installation von MarcEdit:
```shell
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: <https://guides.library.illinois.edu/c.php?g=463460&p=3168159>
Note:
* Von MarcEdit verwendete XSLT Dateien liegen auch hier: <https://github.com/reeset/marcedit_xslt_files> und <https://github.com/reeset/marcedit-xslts>
### 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
```shell
cd ~
wget https://github.com/OpenRefine/OpenRefine/releases/download/3.4.1/openrefine-linux-3.4.1.tar.gz
```
2. Das Tar-Archiv entpacken
```shell
tar -xzf openrefine-linux-3.4.1.tar.gz
```
3. In den entpackten Ordner wechseln und dort im Terminal den Befehl "./refine" aufrufen
```shell
cd ~/openrefine-3.4.1
./refine
```
4. Nach ca. 15 Sekunden sollte sich der Browser öffnen. Falls nicht, manuell Firefox starten und <http://localhost:3333> 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.
### Einführung in OpenRefine
* Claim
* Einsatzbereiche
* Anwender\*innen
* Formate
* Einsatzmöglichkeiten
* Historie
#### Claim von OpenRefine
> "A free, open source, powerful tool for working with messy data"
* grafische Oberfläche, die einer klassischen Tabellenverarbeitungssoftware ähnelt
* dient der Analyse, Bereinigung, Konvertierung und Anreicherung von Daten
* wird in der Regel lokal auf einem Computer installiert und über den Browser bedient
#### Einsatzbereiche
![OpenRefine 2020 Survey Results: Tasks](https://raw.githubusercontent.com/OpenRefine/openrefine.github.com/master/images/2020survey/4.png)
Note:
* Aus Umfrage vom OpenRefine-Team, n = 178
#### Anwender\*innen
![OpenRefine 2020 Survey Results: Communities](https://raw.githubusercontent.com/OpenRefine/openrefine.github.com/master/images/2020survey/1.png)
#### Von OpenRefine unterstützte Formate
* Besonders geeignet für tabellarische Daten (CSV, TSV, XLS, XLSX und auch TXT mit Trennzeichen oder festen Spaltenbreiten)
* Einfaches "flaches" XML (z.B. MARCXML) oder JSON ist mit etwas Übung noch relativ einfach zu modellieren
* Komplexes XML mit Hierarchien (z.B. EAD) ist möglich, aber nur mit Zusatztools
* Kann auch [in Kombination mit MarcEdit](https://blog.reeset.net/archives/1873) für Analyse und Transformation von MARC21 benutzt werden
#### Einsatzmöglichkeiten von OpenRefine
* Exploration von Datenlieferungen
* Vereinheitlichung und Bereinigung (zur Datenqualität in der Praxis siehe Präsentation von Peter Király ["Validating 126 million MARC records"](https://docs.google.com/presentation/d/e/2PACX-1vRU4J_rln00UVD7pNPT0_02NOad0HfSk_UKqRI0v29y8QkMAplEDlyjc0Ot_VE_paV6WBW29Fh_V-iN/pub))
* Abgleich mit Normdaten ("Reconciliation") in Wikidata, GND und VIAF
* Für lokalen Einsatz ausgelegt (Installation auf Webservern und Automatisierung möglich, aber nur mit Zusatzsoftware)
#### Historie
<https://github.com/OpenRefine/OpenRefine/graphs/contributors>
Note:
* 2010-05: Freebase Gridworks
* 2011-12-11: Google Refine 2.5
* 2015-04-30: OpenRefine 2.6 rc1
* 2017-06-18: OpenRefine 2.7
* 2020-09-06: OpenRefine 3.4
### Übung Library Carpentry Lesson
**Aufgabe (4 Stunden)**
* Bearbeiten Sie die [Lehrmaterialien von Library Carpentry zu OpenRefine](https://librarycarpentry.org/lc-open-refine/)
### Übung: CSV nach MARCXML mit OpenRefine
* Wir nutzen die Funktion [Templating Exporter](https://github.com/OpenRefine/OpenRefine/wiki/Exporters#templating-exporter). Diese findet sich oben rechts im Menü Export > Templating
* Beschreibung des MARC21 Formats für bibliografische Daten mit Liste der Felder: <https://www.loc.gov/marc/bibliographic/>
* Beispieldatei der Library of Congress für MARC21 mit mehreren Dokumenten: <https://www.loc.gov/standards/marcxml/xml/collection.xml>
Note:
* Das Vorgehen ist ähnlich wie bei XSLT Crosswalks, nur dass das "Template" hier direkt bearbeitet werden kann und nicht bereits fest steht, wie bei MarcEdit.
* OpenRefine verwendet eine eigene Template-Sprache (GREL) statt XSLT.
#### Voraussetzung für die Übung
* OpenRefine (lokal oder auf dem Server)
* Ein Projekt mit den Beispieldaten aus der Library Carpentry Lesson.
* Schnell neu zu erstellen mit: Create > Web Addresses (URL)
```
https://raw.githubusercontent.com/LibraryCarpentry/lc-open-refine/gh-pages/data/doaj-article-sample.csv
```
#### Vorlage als Ausgangsbasis
* Prefix:
```xml
<collection xmlns="http://www.loc.gov/MARC21/slim">
```
* Row Separator: (Zeilenumbruch)
* Suffix:
```xml
</collection>
```
* Row Template:
```xml
<record>
<leader> nab a22 uu 4500</leader>
<controlfield tag="001">{{cells['URL'].value.replace('https://doaj.org/article/','').escape('xml')}}</controlfield>
<datafield tag="022" ind1=" " ind2=" ">
<subfield code="a">{{cells['ISSNs'].value.escape('xml')}}</subfield>
</datafield>
<datafield tag="100" ind1="0" ind2=" ">
<subfield code="a">{{cells['Authors'].value.split('|')[0].escape('xml')}}</subfield>
</datafield>
<datafield tag="245" ind1="0" ind2="0">
<subfield code="a">{{cells["Title"].value.escape('xml')}}</subfield>
</datafield>{{
forEach(cells['Authors'].value.split('|').slice(1), v ,'
<datafield tag="700" ind1="0" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>')
}}
</record>
```
#### Aufgabe 1: "Reverse Engineering"
* Beschreiben Sie anhand des Vergleichs der Ausgangsdaten mit dem Ergebnis mit ihren eigenen Worten welche Transformationen für die jeweiligen Felder durchgeführt wurden.
* Versuchen Sie die Aufgabe in der Gruppenarbeit zunächst einzeln zu lösen (10 min) und diskutieren Sie dann in der Gruppe.
* Dokumentieren Sie abschließend bitte hier das Gruppenergebnis.
#### Aufgabe 2: Template ergänzen
* Suchen Sie für weitere Spalten in den DOAJ-Daten die Entsprechung in MARC21: <https://www.loc.gov/marc/bibliographic/>
* Erstellen Sie geeignete Regeln im Template, um die Daten der gewählten Spalten in MARC21 zu transformieren.
* Dokumentieren Sie das gewählte MARC21-Feld und den zugehörigen Abschnitt aus dem Template.
#### Hinweise zur Vervollständigung
Wenn die Spalten leere Zellen enthalten, dann Funktion `forNonBlank()` nutzen. Beispiel:
```xml
{{
forNonBlank(
cells['DOI'].value,
v,
'<datafield tag="024" ind1="7" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
<subfield code="2">doi</subfield>
</datafield>',
''
)
}}
```
#### Exkurs: XML-Deklaration
* Um verarbeitenden Programmen mitzuteilen, dass es sich bei einer (Text-)Datei um XML handelt, wird dies üblicherweise am Anfang der Datei "deklariert":
```xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
```
* Es handelt sich um eine XML-Datei
* Sie entspricht dem XML-Standard in Version 1.0
* Die Zeichenkodierung erfolgt im Standard Unicode
* Die Datei enthält eine Dokumenttypdefinition (DTD)
* Nur `version` ist eine Pflichtangabe, `encoding`-Angaben gehören aber zur guten Praxis
* Die Reihenfolge der Attribute ist festgelegt!
#### Validieren mit xmllint
* Wir exportieren das Gesamtergebnis als XML in ein neues Verzeichnis.
* Für die Validierung können Sie das Programm `xmllint` verwenden, das unter Ubuntu vorinstalliert ist.
* Zum Abgleich gegen das offizielle Schema von MARC21 laden wir dieses (XSD) zunächst herunter.
```shell
wget https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
xmllint *.xml --noout --schema MARC21slim.xsd
```
## Weitere Tools zur Metadatentransformation
* Motivation
* Vergleich mit anderen Tools
### Zur Motivation
Metadaten-Management in der Praxis, hier beim Leibniz-Informationszentrum Wirtschaft (ZBW) in Hamburg:
* Infoseite: <https://www.zbw.eu/de/ueber-uns/arbeitsschwerpunkte/metadaten/>
* Videointerview mit Kirsten Jeude: <https://www.youtube.com/watch?v=YwbRTDvt_sA>
### Vergleich mit anderen Tools
* Merkmale von OpenRefine:
* grafische Oberfläche: Transformationsergebnisse werden direkt sichtbar
* Skriptsprachen (GREL, Jython, Clojure) für komplexe Transformationen
* Schwerpunkt auf Datenanreicherung (Reconciliation)
* Alternative Software:
* [Catmandu](https://librecat.org) (Perl)
* [Metafacture](https://github.com/metafacture/metafacture-core) (Java)
* [MarcEdit](https://marcedit.reeset.net) (für MARC21)
* Siehe auch: Prof. Magnus Pfeffer (2016): Open Source Software zur Verarbeitung und Analyse von Metadaten. Präsentation auf dem 6. Bibliothekskongress. <http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:0290-opus4-24490>
Note:
* Generell gilt, dass die passende Software anhand des Anwendungsfalls gewählt werden sollte.
* In der Praxis wird oft die Software verwendet, die schon gut beherrscht wird. Das macht es manchmal sehr umständlich.
* Wer eine generische Programmiersprache wie Python gut beherrscht, kommt auch damit zum Ziel. Für Python gibt es übrigens eine Library für MARC21: <https://pymarc.readthedocs.io>
## Nutzung von JSON-APIs
* Moderne APIs liefern oft Antworten im Format JSON (statt XML wie bei SRU oder OAI-PMH)
* JSON lässt sich ebenso wie XML im Browser anschauen und gut maschinell verarbeiten
### Beispiel für API: lobid-gnd
<https://lobid.org/gnd/api>
* Suchergebnisse als JSON
* Datensätze über ID direkt als JSON abrufen
* Bulk-Downloads mit JSON lines
* Was kann man damit bauen? Beispiel Autovervollständigung
### Beispiel für Tool: scrAPIr
<https://scrapir.org>
* Das Tool erlaubt Daten von bekannten Webseiten zu beziehen
* genutzt werden dazu die APIs der Webseiten (in der Regel JSON)
* es werden auch Vorlagen für Code (Javascript, Python) bereitgestellt
* Beispiel Google Books: <https://scrapir.org/data-management?api=Google_Books>
### Reconciliation API
* In [W3C Community Group Entity Reconciliation](https://www.w3.org/community/reconciliation/) entwickelter Entwurf für einen Standard: [Reconciliation Service API, v0.1, 20.8.2020](https://reconciliation-api.github.io/specs/0.1/)
* Übersicht vorhandener Schnittstellen: <https://reconciliation-api.github.io/testbench/>
* Nur ein kleiner Teil (u.a. Wikidata und lobid-gnd) unterstützt die Funktionen "Suggest" und "Extend Data"
* Für Wikidata pflegt das OpenRefine-Team die Schnittstelle. Hier gab es leider in letzter Zeit einen Wechsel der URL und Performance-Probleme.
## Metadatenstandard LIDO
* **L**ightweight **I**nformation **D**escribing **O**bjects ist ein auf dem [CIDOC Conceptual Reference Model](http://www.cidoc-crm.org/) (CRM) basierender XML-Standard zur Beschreibung von Kulturobjekten
* CIDOC CRM definiert [URI](https://de.wikipedia.org/wiki/Uniform_Resource_Identifier) für Konzepte und Relationen
* LIDO verwendet eine an CIDOC CRM orientierte [Terminologie](http://cidoc.mini.icom.museum/working-groups/lido/lido-technical/terminology/)
* LIDO folgt dem [Linked Open Data](https://de.wikipedia.org/wiki/Linked_Open_Data)-Paradigma
* besonderes Merkmal von LIDO ist die ereignis-zentrierte Beschreibung von Objekten (Ereignisse als Entitäten)
* durch die spezielle Struktur ist die verlustfreie Transformation in andere Formate jedoch schwierig
### LIDO - Struktur
* deskriptive Metadaten:
* Identifikation (Titel/Name, Beschreibung, Maße, etc.)
* Klassifikation (Art, Gattung, Form, etc.)
* **Ereignisse** (Herstellung, Bearbeitung, Besitzwechsel, Restaurierung, etc.)
* Relationen (Objekte, Personen, Orte, etc.)
* administrative Metadaten:
* Rechte (Objekt, Datensatz, Nutzung, Verbreitung, etc.)
* Datensatz (Identifikation, Urheber, etc.)
* Ressourcen (Digitalisat, Nachweis, etc.)
* Unterscheidung zwischen *display elements* und *index elements*
### LIDO - Einordnung
* Auch LIDO ist letztlich "nur" ein XML-Format, kann also mit denselben Werkzeugen und Methoden verarbeitet werden, die Sie in den vergangenen Lehreinheiten bereits im Umgang mit anderen Formaten kennengelernt haben
* Das spezielle Konzept von LIDO macht das Format nicht wesentlich komplizierter als andere Formate, es ist lediglich im Vergleich ungewohnt
### LIDO - Crosswalks
* Zur Orientierung sind vielleicht die Transformationsregeln der Deutschen Digitalen Bibliothek (DDB) und der Europeana interessant
* DDB
* [Excel-Datei mit Mappings](https://www.smb.museum/fileadmin/website/Institute/Institut_fuer_Museumsforschung/Fachstelle_Museum/DDB-LIDO_1.9.xlsx) (v1.9)
* [Erklärende Präsentationsfolien](https://www.smb.museum/fileadmin/website/Institute/Institut_fuer_Museumsforschung/Fachstelle_Museum/Visualisierung_DDB-LIDO.pdf) (v1.4)
* Europeana (EDM)
* [Beschreibung mit Beispiel](https://pro.europeana.eu/files/Europeana_Professional/Share_your_data/Technical_requirements/EDM_Documentation/EDM_Mapping_Guidelines_v2.4_102017.pdf) (S. 43ff.)
* Broschüre [Implementing LIDO](https://www.athenaplus.eu/index.php?en/208/implementing-lido) aus dem EU-Projekt AthenaPlus von 2015
* Auf der Konferenz ELAG gab es 2018 einen Vortrag zur Aggregation von LIDO-XML Daten in einen "DataHub":
* Matthias Vandermaesen: [The Datahub Project: De/blending Museum Data](http://repozitar.techlib.cz/record/1263/files/idr-1263_1.pdf)
* Catmandu beinhaltet ein [Modul für LIDO](https://github.com/LibreCat/Catmandu-LIDO)
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit
2. Aufgabe Anreicherung mit lobid-gnd
* Reichern Sie die Autorennamen in den DOAJ-Daten um zusätzliche Informationen (z.B. GND-Nummer und Geburtsjahr) aus lobid-gnd an.
* [Allgemeine Anleitung im Blog von lobid-gnd](https://blog.lobid.org/2018/08/27/openrefine.html)
* Erweitern Sie das Template und exportieren Sie die Daten in XML.
* Hinweis: Im MARC21 Format gehören weiterführende Informationen zu Autoren in Unterfelder der Felder 100 und 700. Siehe Beispiele in der [Formatdokumentation](https://www.loc.gov/marc/bibliographic/concise/bd100.html)
* Berichten Sie über diese Aufgabe in einem extra Artikel in Ihrem Lerntagebuch.

View File

@ -6,310 +6,3 @@
- Marktüberblick Discovery-Systeme
- Zwischenfazit
## Installation und Konfiguration von VuFind
* VuFind Internetseite: <https://vufind.org>
* VuFind Code bei GitHub: <https://github.com/vufind-org/vufind>
* Deutsche VuFind Anwendergemeinschaft: <https://vufind.de>
* Präsentation “10 Jahre VuFind” (2017): <https://felixlohmeier.de/slides/2017-09-28_vufind-anwendertreffen-keynote.html>
* VuFind-Installationen weltweit: <https://vufind.org/wiki/community:installations>
* Beispiel TU Hamburg: <https://katalog.tub.tuhh.de>
* Beispiel UB Leipzig: <https://katalog.ub.uni-leipzig.de>
### Installation VuFind 7.0.1
Gemeinsame Installation nach offizieller Anleitung für VuFind unter Ubuntu: <https://vufind.org/wiki/installation:ubuntu>
Es folgen die relevanten Auszüge und Hinweise/Erklärungen dazu.
#### VuFind on Ubuntu
> These instructions assume that you are starting with a clean installation of Ubuntu. If you already have an Ubuntu server, you will be able to skip some steps, but you may have to reconfigure some existing software.
Zur Erinnerung: Best Practice ist die Installation von einer Anwendung pro Server (durch Virtualisierung und Container heute einfach möglich).
#### Version Requirements
> These instructions were most recently tested on Ubuntu 20.04 (...)
Gut für uns, weil wir für unsere virtuelle Maschine Ubuntu 20.04.1 LTS verwenden.
#### Installing VuFind from the DEB Package
> The easiest way to get VuFind up and running is to install it from the DEB package.
VuFind stellt ein Installationspaket bereit. Unter Linux gibt es viele verschiedene Formate für Installationspakete. Für Ubuntu und Debian gibt es DEB, für Fedora und SUSE beispielsweise RPM.
```shell
wget https://github.com/vufind-org/vufind/releases/download/v7.0.1/vufind_7.0.1.deb
sudo dpkg -i vufind_7.0.1.deb
sudo apt-get install -f
```
#### Bug in VuFind 7.0.1
* Die in VuFind 7.0.1 verwendete Version Solr 7.3.1 ist nicht mit der aktuellen Java-Version 11.0.9.1 unter Ubuntu 20.04 kompatibel.
* In der [VuFind-tech Mailingliste](https://sourceforge.net/p/vufind/mailman/message/37154029/) wurde daher empfohlen Java 8 zu verwenden oder auf Release 7.0.2 zu warten.
* Wir nutzen für unseren Test Java 8:
```shell
sudo apt install -y openjdk-8-jdk
```
* Danach aktivieren wir Java 8:
```shell
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
sudo rm /usr/lib/jvm/default-java
sudo ln -s /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/default-java
```
#### Important Notes / Database Issues
Hier ist ein Fehler in der Anleitung. Ubuntu 20.04 wird mit MariaDB ausgeliefert und nicht mit MySQL. Für uns ist daher "Case 4 - MariaDB" relevant.
#### MariaDB Passwort für root
> If you are using a distribution that includes MariaDB instead of MySQL, you will not be prompted to set a root password during installation. Instead, you should run “sudo /usr/bin/mysql_secure_installation” to properly set up security.
```shell
sudo /usr/bin/mysql_secure_installation
```
* Das aktuelle Passwort ist leer (Enter drücken).
* Neues Passwort vergeben (und merken!).
* Die voreingestellten Antworten sind OK (alle Fragen können mit Enter bestätigt werden).
#### MariaDB Zugriff auf root erlauben
> (...) you may also need to disable the root account's “unix_socket” plugin, which prevents regular logins. You can do this by logging in with “sudo mysql -uroot -p” and then running "UPDATE mysql.user SET plugin='' WHERE User='root'; FLUSH PRIVILEGES;"
1. Administration öffnen (und Passwort eingeben)
```
sudo mysql -uroot -p
```
2. Konfigurationsbefehl eingeben
```
UPDATE mysql.user SET plugin='' WHERE User='root'; FLUSH PRIVILEGES;
```
3. Administration schließen
```
exit;
```
#### Important Notes / (Ende)
> You may want to restart your system one more time to be sure all the new settings are in place, or at least make sure appropriate environment variable settings are loaded by running: `source /etc/profile`
Ein Neustart ist in unserem Fall nicht erforderlich. Es reicht aus, den genannten Befehl einzugeben:
```shell
source /etc/profile
```
#### Abweichend von der Installationsanleitung: Dateirechte anpassen
* Wir starten Solr gleich "von Hand", d. h. mit den Rechten des Accounts, mit dem wir gerade an der VM angemeldet sind. Die VuFind-Installation sieht jedoch vor, mit den Rechten des ersten regulären Accounts gestartet zu werden.
* Wir übertragen diese Rechte also nun auf unseren Account und belassen die Rechte für das Cache- und das Config-Verzeichnis beim Account des Webservers (www-data).
```shell
sudo chown -R $USER:$GROUP /usr/local/vufind
sudo chown -R www-data:www-data /usr/local/vufind/local/cache
sudo chown -R www-data:www-data /usr/local/vufind/local/config
```
#### Configuring and starting VuFind / Start solr
```shell
cd /usr/local/vufind/
./solr.sh start
```
Die Warnungen zu den Limits können erstmal ignoriert werden. In der Doku von VuFind ist beschrieben, wie sich das korrigieren ließe: <https://vufind.org/wiki/administration:starting_and_stopping_solr>
#### Configuring and starting VuFind / Configure VuFind
> Open a web browser, and browse to this URL: <http://your-server-name/vufind/Install/Home> (Replace “your-server-name” with the address you wish to use to access VuFind; replace “vufind” with your custom base path if you changed the default setting during installation).
Wir haben keinen Domainnamen. Daher verwenden wir `localhost`. Öffnen Sie den Browser in der virtuellen Maschine (Linux) und rufen Sie die folgende Adresse auf:
<http://localhost/vufind/Install/Home>
#### Configuring and starting VuFind / Auto-Configuration
> If installation was successful, you should now see an Auto Configure screen. Some items on the list will be marked “Failed” with “Fix” links next to them. Click on each Fix link in turn and follow the on-screen instructions. (...) After an issue is successfully resolved, you can click the “Auto Configure” breadcrumb to go back to the main list and proceed to the next problem.
Die meisten Punkte können ohne weitere Angaben "gefixt" werden. Nur die beiden Punkte Database und ILS erfordern weitere Angaben.
#### Configuring and starting VuFind / Auto-Configuration / Database
Bei der Datenbank muss ein neues Passwort vergeben und das zuvor oben im Abschnitt "MariaDB Passwort für root" eingegeben werden.
#### Configuring and starting VuFind / Auto-Configuration / ILS
Wir haben kein Bibliothekssystem, daher wählen wir NoILS. Dann wird aber trotzdem noch "Failed" angezeigt und wenn wir nochmal auf "Fix" klicken erscheint die folgende Meldung:
> (...) You may need to edit the file at /usr/vufind/local/config/vufind/NoILS.ini
1. Datei im Texteditor (gedit) mit Administratorrechten öffnen
```shell
sudo gedit /usr/local/vufind/local/config/vufind/NoILS.ini
```
2. In Zeile 3 `ils-offline` in `ils-none` ändern und speichern.
#### Weitere Sicherheitseinstellungen
* Die in den Abschnitten [Locking Down Configurations](https://vufind.org/wiki/installation:ubuntu#locking_down_configurations) und [4. Secure your system](https://vufind.org/wiki/installation:ubuntu#secure_your_system) beschriebenen Einstellungen benötigen wir für unsere Testinstallation nicht.
#### Falls etwas schief geht...
* Wenn während der Installation etwas schief geht und die Seite "Auto Configuration" nicht mehr geladen werden kann, dann muss die lokale Konfiguration (im Verzeichnis /usr/local/vufind/local/) manuell gelöscht werden.
```shell
sudo rm /usr/local/vufind/local/config/vufind/config.ini
```
* Danach ist die Seite "Auto Configuration" wieder aufrufbar.
### Testimport
* Ohne Inhalte lässt sich VuFind schlecht erproben. Daher laden wir zunächst ein paar Daten in das System.
* VuFind liefert für Tests einige Dateien mit. Wir laden einige davon im MARC21-Format.
```shell
/usr/local/vufind/import-marc.sh /usr/local/vufind/tests/data/journals.mrc
/usr/local/vufind/import-marc.sh /usr/local/vufind/tests/data/geo.mrc
/usr/local/vufind/import-marc.sh /usr/local/vufind/tests/data/authoritybibs.mrc
```
* Anschließend sollten in der Suchoberfläche unter <http://localhost/vufind> ca. 250 Datensätze enthalten sein.
### Aufgabe: Konfiguration Suche und Facetten
* Schauen Sie sich dazu das offizielle Einführungsvideo [Configuring Search and Facet Settings](https://www.youtube.com/watch?v=qFbW8u9UQyM&list=PL5_8_wT3JpgE5rv38PwE2ulKlgzBY389y&index=4) an.
* Ein Transkript ist auch auf der Seite <https://vufind.org/wiki/videos:configuring_search_and_facet_settings> verfügbar.
* Versuchen Sie ausgewählte Inhalte des Videos in Ihrer Installation nachzuvollziehen.
Note:
* Um die Bearbeitung der im Video benannten Konfigurationsdateien (.ini) zu erleichtern, können Sie die Dateiberechtigungen wie folgt ihrem Account zuordnen. Wir hatten diese für die Auto-Configuration beim Webserver (www-data) belassen.
```shell
sudo chown -R $USER:$GROUP /usr/local/vufind/local/config
```
## Funktion von Suchmaschinen am Beispiel von Solr
* Zur Einordnung von Solr
* Sichtung von Solr in VuFind
### Zur Einordnung von Solr
* Solr ist zusammen mit Elasticsearch quasi "Industriestandard".
* Üblicherweise sollte vor dem Import der Daten in einem Schema festgelegt werden welche Felder existieren und welche Datentypen diese beinhalten dürfen.
* Solr hat zwar eine integrierte Suchoberfläche, aber diese ist nur zu Demo-Zwecken gedacht.
* Das Discovery-System VuFind basiert auf Solr (ebenso wie viele kommerzielle Lösungen wie z.B. Ex Libris Primo).
### Suchindex (Solr) oder Datenbank (MySQL)?
| Solr | MySQL |
| ------------------------ | ----------------------- |
| flache Dokumente | relationale Datensätze |
| lexikalische Suche | reiner Glyphenvergleich |
| keine Konsistenzprüfung | Transaktionssicherheit |
| statische Daten | veränderliche Daten |
| -> **Retrieval** (Suche) | -> **Storage** (CRUD) |
* [CRUD](https://de.wikipedia.org/wiki/CRUD): **C**reate, **R**ead, **U**pdate, **D**elete
Ein weiterer [Antwortversuch bei Stackoverflow](https://stackoverflow.com/a/4961973)
### Sichtung von Solr in VuFind
* Administrationsoberfläche: <http://localhost:8983>
* Bibliografische Daten im Index "biblio": <http://localhost:8983/solr/#/biblio>
* Technische Suchoberfläche in Solr für Index "biblio": <http://localhost:8983/solr/#/biblio/query>
* Schema des Index "biblio": <http://localhost:8983/solr/#/biblio/schema>
* Erläuterung der VuFind-Felder in VuFind Doku: <https://vufind.org/wiki/development:architecture:solr_index_schema>
### Übung: Suche in VuFind vs. Suche in Solr
* Suchen in VuFind: http://localhost/vufind
* Beispielsweise nach `psychology`
* Suchen in Admin-Oberfläche von Solr: http://localhost:8983/solr/#/biblio/query
* im Feld q mit Feldname:Suchbegriff. Beispiel: `allfields:psychology`
* unten links Button "Execute Query"
* Parallel Logdatei von Solr anschauen in einem Terminal
```shell
less +F /usr/local/vufind/solr/vufind/logs/solr.log
```
* Notieren Sie Unterschiede und Auffälligkeiten im gemeinsamen Dokument
### Literatur zu Solr
* Das offizielle Handbuch zu Solr beinhaltet ein gutes Tutorial (ca. 2 Stunden): <https://lucene.apache.org/solr/guide/8_7/solr-tutorial.html>
## Übung zur Datenintegration
Ziel: Import der mit MarcEdit und OpenRefine konvertierten Daten aus Koha, ArchivesSpace, DSpace und DOAJ in VuFind
### Testdaten löschen
Quelle: https://vufind.org/wiki/indexing:re-indexing
```shell
/usr/local/vufind/solr.sh stop
rm -rf /usr/local/vufind/solr/vufind/biblio/index /usr/local/vufind/solr/vufind/biblio/spell*
/usr/local/vufind/solr.sh start
```
### Aufgabe für die Gruppenarbeit
* Importieren Sie alle in MARCXML konvertierten Daten. Gehen Sie dabei wie folgt vor:
1. Laden und entpacken Sie [die Beispieldaten](https://bain.felixlohmeier.de/data/vufind-testdaten.zip). Gerne können Sie zusätzlich Ihre selbst in MARCXML konvertierten Daten verwenden.
2. Bearbeiten Sie vor dem Import die Datei `marc_local.properties` um den verschiedenen Datenquellen eine `collection` zuzuweisen.
```shell
gedit /usr/local/vufind/import/marc_local.properties
```
3. Starten Sie das Importscript für die erste Datenquelle. Beispiel:
```shell
for f in ~/Downloads/vufind-testdaten/koha/*.xml; do /usr/local/vufind/import-marc.sh $f; done
```
4. Wiederholen Sie die Schritte 2 und 3 für die übrigen Datenquellen.
* Achtung: Der Import der Beispieldaten von ArchivesSpace und DSpace schlägt fehl. Finden Sie die Ursache und versuchen Sie den Fehler zu beheben.
* Fügen Sie am Ende der Übung einen Screenshot der Trefferliste einer "leeren" Suche in das gemeinsame Dokument ein.
Note:
* Die Beispieldaten umfassen die in den vergangenen Lehreinheiten mit MarcEdit und OpenRefine prozessierten Daten sowie den Export aus Koha. Wir stellen Sie hier bereit, damit Sie einheitliche Daten zur Verfügung haben auch wenn bei den vorigen Aufgaben etwas durcheinandergekommen ist.
## Marktüberblick Discovery-Systeme
### International
* Jährlicher Library Systems Report von Marshall Breeding im ALA Magazine: <https://americanlibrariesmagazine.org/2020/05/01/2020-library-systems-report/>
* Anhängende Statistik gibt einen guten Überblick:
<https://americanlibrariesmagazine.org/wp-content/uploads/2020/04/charts-for-2020-Library-Systems-Report.pdf>
Note:
* Die Funktionalität eines Discovery-Systems besteht aus mindestens zwei Komponenten: Der Software und den Daten.
* Kommerzielle Discovery-Systeme verkaufen einen Suchindex meist separat, der vor allem Metadaten zu elektronischen Artikeln enthält.
* Offene Alternativen: [K10plus-Zentral](https://verbundwiki.gbv.de/display/VZG/K10plus-Zentral), [finc Artikelindex](https://finc.info/services)
### Schweiz: SLSP
* Durch [Swiss Library Service Platform](https://slsp.ch) wurde Ex Libris Alma und damit auch das dazu gehörige Discovery-System Primo VE an den wissenschaftlichen Bibliotheken in der Schweiz eingeführt.
* Am Mo, 7.12.2020 ist das neue Rechercheportal [swisscovery](https://swisscovery.slsp.ch) gestartet.
Note:
* Den Library Systems Report hatten wir uns an [Tag 3](https://pad.gwdg.de/hpRnEqJCTfuTrd-gbdmd2w?both#Statistiken-zum-Markt-USAUK) bereits angeschaut, damals jedoch mit Blick auf Bibliothekssysteme. Marshall Breeding führt in seinem Bericht aber auch Discovery-Systeme auf.
## Zwischenfazit
![Schaubild zu Lehrinhalten](images/05_schaubild-v3.png)
## Aufgaben
Bis zum nächsten Termin:
* Beitrag im Lerntagebuch zu dieser Lehreinheit
* Unterrichtsbeurteilung in Moodle

View File

@ -6,188 +6,3 @@
- Metadaten anreichern mit OpenRefine und Wikidata
- Suchanfragen mit SPARQL am Beispiel des Wikidata Query Service
- Empfehlenswerte Tutorials zum Selbstlernen
## Ergebnis der Unterrichtsevaluation
* Gemeinsame Sichtung der (anonymen) Auswertung in Moodle
* Ergebnis: 4,82 auf Skala 1 (--) bis 5 (++)
* Positive Aspekte der Lehrveranstaltung aus Sicht der Studierenden
* CodiMD als Tool für gemeinsames Dokument
* Schaubild für Lehrinhalte
* Prüfungsleistung Lerntagebuch
* Negative Aspekte der Lehrveranstaltung aus Sicht der Studierenden
* kein Zwischenfeedback für die Prüfungsleistung (Lerntagebücher)
* allgemein in der Corona-Situation: Kombination aus Isolation und Termindruck
* Verbesserungsmaßnahmen
* Zwischenfeedback für die Lerntagebücher
* Ausführliche Praxisbeispiele nicht erst in der letzten Sitzung
* Übungen noch mehr an Anwendungsfällen aus der Praxis ausrichten
## Aktuelle Datenmodelle für Metadaten
1. BIBFRAME
2. Records in Context (RiC)
### BIBFRAME
* seit 2012 auf Initiative der Library of Congress als Nachfolger von MARC21 (und MODS) entwickelt, aktuell ist seit 2016 BIBFRAME 2.0
* basiert auf *Functional Requirements for Bibliographic Records* (FRBR) sowie *Resource Description and Access* (RDA) als Regelwerk, setzt diese aber nicht vollständig um
* folgt Linked Data Paradigmen
* besteht aus *BIBFRAME Model* und *BIBFRAME Vocabulary*
* Datenmodell unterscheidet zwischen *Work*, *Instance* und *Item*
* Datenmodell definiert Entitäten *Agent*, *Subject* und *Event*
* Vokabular definiert *Konzepte* und deren *Eigenschaften* zur Beschreibung der Entitäten des Datenmodells
Links:
* BIBFRAME bei der Library of Congress: <https://www.loc.gov/bibframe/>
* Gegenüberstellung BIBFRAME <-> MARCXML: <https://id.loc.gov/tools/bibframe/comparebf-lccn/2018958785.xml>
* Präsentationen zu BIBFRAME auf der SWIB20: <https://swib.org/swib20/programme.html>
#### BIBFRAME Model
![BIBFRAME Model](https://www.loc.gov/bibframe/docs/images/bf2-model.jpg)
Quelle: <https://www.loc.gov/bibframe/docs/bibframe2-model.html>
#### BIBFRAME Vocabulary
* Ontologie umfasst Beschreibungsklassen (*Class*), die jeweils über spezifische Eigenschaften (*Property*) verfügen
* vergleichbar mit MARC Fields und Subfields
* Klassen/Eigenschaften sind teilweise hierarchisch strukturiert
* z. B. "Autor" ist Spezialfall (*Subclass*) eines "Beiträgers"
* übernimmt die Konzepte von RDA
* siehe https://id.loc.gov/ontologies/bibframe.html
#### Was unterscheidet MARC21 und BIBFRAME? (1/2)
> As a bibliographic description format, the MARC format focuses on catalog records that are independently understandable. MARC aggregates information about the conceptual work and its physical carrier and uses strings for identifiers such as personal names, corporate name, subjects, etc. that have value outside the record itself.
Quelle: <https://www.loc.gov/bibframe/faqs/#q04>
#### Was unterscheidet MARC21 und BIBFRAME? (2/2)
> Instead of bundling everything neatly as a “record” and potentially duplicating information across multiple records, the BIBFRAME Model relies heavily on relationships between resources (Work-to-Work relationships; Work-to-Instance relationships; Work-to-Agent relationships). It manages this by using controlled identifiers for things (people, places, languages, etc).
Quelle: <https://www.loc.gov/bibframe/faqs/#q04>
### Records in Context (RiC)
* basiert auf Linked-Data-Prinzipien
* soll neue und mehrfache Beziehungen zwischen Entitäten ermöglichen
* Projektgruppe [ENSEMEN](https://vsa-aas.ch/arbeitsgruppen/projektgruppe-ensemen/) arbeitet an einer schweizerischen Ausprägung des neuen Standards [Records in Contexts](https://www.ica.org/en/records-contexts-german) (RiC), mit Beteiligung von Niklaus Stettler (FH Graubünden)
#### RiC Modell
* <https://www.ica.org/sites/default/files/session-7.8-ica-egad-ric-congress2016.pdf> (S. 19)
#### RiC Ontologie
* <https://www.ica.org/standards/RiC/ontology>
* Beispieldateien: <https://github.com/ICA-EGAD/RiC-O/tree/master/examples/NationalArchivesOfFrance>
#### RiC Tools
* Open-Source-Software [RiC-O Converter](https://github.com/ArchivesNationalesFR/rico-converter)
* "for converting into RDF datasets conforming to RiC-O v0.1 the whole of the ANF EAD 2002 findings aids (about 28.000 XML files for now) and EAC-CPF authority records (about 15.000 XML files for now)"
* [Artikel zur Veröffentlichung des Quellcodes](https://blog-ica.org/2020/06/13/ric-o-converter-an-example-of-practical-application-of-the-ica-records-in-contexts-standard-ica-ric/)
* Docuteam arbeitet an Prototypen für Erschließungs- und Katalogsoftware, siehe https://ica-egad.github.io/RiC-O/projects-and-tools.html
#### RiC Links
* Einführungsartikel: David Gniffke (16.3.2020): Semantic Web und Records in Contexts (RiC). In: Archivwelt, 16/03/2020. <https://archivwelt.hypotheses.org/1982>
* Präsentation: Florence Clavaud <https://f.hypotheses.org/wp-content/blogs.dir/2167/files/2020/02/20200128_2_RecordsInContexts_englishVersionAdded1003.pdf>
* Arbeitsgruppe ICA EGAD: <https://www.ica.org/en/about-egad>
* RiC Ontologie 0.2 (2019): <http://purl.org/ica/ric>
* Access To Memory (AtoM) - Alternative zu ArchivesSpace, näher dran an RiC-Entwicklung: <https://www.accesstomemory.org>
* Archival Linked Open Data (aLOD): <http://www.alod.ch>
## Praxisberichte (zur Auswahl)
* [Normdatenbasierter Online-Katalog für das Deutsche Literaturarchiv Marbach](https://nbn-resolving.org/urn:nbn:de:0290-opus4-161900)
* Datenintegration für das [Portal noah.nrw](https://noah.nrw)
* Workshop zur Wahl eines Discovery-Systems: ["RDS-Gespräch" für Max-Planck-Institute](https://docs.google.com/presentation/d/1r7_VSY30rAm8YMz3nVYjOdUStnz4BovSXMHjxGbbvkM/edit)
* [Datenkonvertierung von Bibliotheca zu PICA+ für die Berufsakademien Sachsen](https://github.com/felixlohmeier/ba-sachsen-pica)
## Testumgebung für Server-Software
* Während des Kurses besteht Zugriff auf die virtuellen Maschinen bei der FH Graubünden. Nach Ende des Kurses entfällt diese Möglichkeit.
* Wenn Sie zukünftig einmal Server-Software testen möchten, gibt es unabhängig von der Hochschule diverse Möglichkeiten.
### Vergleich Cloud vs. Lokal
* Cloud: Root-Server (Webserver mit vollem Administrationszugriff) bei einem Webhosting-Anbieter
* Cloud: Plattformen von Microsoft (Azure), Google (GCP), Amazon (AWS): [Kosten-Rechner](https://www.microfin.de/produkte/tools/cloud-kosten-rechner/)
* Lokal: [VirtualBox](https://www.virtualbox.org) (Virtuelle Maschinen)
* Lokal: [Docker Desktop](https://www.docker.com/products/docker-desktop) (Container)
* Lokal: Booten von USB-Stick oder USB-Festplatte: [Anleitung aus BAIN HS19](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/blob/v2.0/notes_bootfaehige-usb-sticks-erstellen.md)
### OpenRefine auf Root-Server
* In diesem Kurs zeigen wir Ihnen die klassische Variante "Root-Server", weil dies per Videokonferenz geht und übersichtlicher ist als die Cloud-Plattformen.
* Wir nutzen dafür den Anbieter [Digitalocean](https://digitalocean.com), weil dieser Minutenpreise und eine einfache Benutzeroberfläche anbietet.
* Als Anwendungsfall installieren wir OpenRefine, da wir dieses für die kommende Aufgabe gebrauchen können.
* [Anleitung ohne Authentifizierung](https://gist.github.com/felixlohmeier/0ec8b2e8241356ed52af072d9102b391)
* [Anleitung mit Authentifizierung von Tony Hirst](https://blog.ouseful.info/2019/01/07/running-openrefine-on-digital-ocean-using-simple-auth/) (dort auch ein Link für 100 Dollar Startkredit bei Digitalocean)
## Wikidata
### Suchanfragen mit SPARQL am Beispiel des Wikidata Query Service
* Handout zum Query Service: <https://www.wikidata.org/wiki/File:Wikidata_Query_Service_kurzgefasst.pdf>
* Query-Service: <https://query.wikidata.org> (dort integrierte Beispiele)
* Weitere Beispiele: <https://blog.wikimedia.de/2016/10/30/10-coole-wikidata-abfragen-die-dir-neue-horizonte-eroeffnen-nummer-7-wird-dich-schockieren/>
#### Tutorial
* Alex Stinson hat ein schönes Tutorial geschrieben, das eigentlich für Lehrende gedacht ist, aber auch individuell bearbeitet werden kann. Nach einer Einleitung, die sich an Lehrende richtet, kommt unter der Überschrift "Writing a Query" das Skript.
* Aufgabe (30 Minuten): Bearbeiten Sie das Tutorial ab der Überschrift "Writing a Query": https://medium.com/freely-sharing-the-sum-of-all-knowledge/writing-a-wikidata-query-discovering-women-writers-from-north-africa-d020634f0f6c
#### Literatur
* Empfehlenswerte Tutorials zu SPARQL:
* https://programminghistorian.org/en/lessons/intro-to-linked-data
* https://programminghistorian.org/en/lessons/graph-databases-and-SPARQL
* Beispiel, wie das Hochschularchiv der ETH-Bibliothek Wikidata nutzt:
* How to Link Your Institutions Collections to Wikidata? : a short manual to a semi-automatic way of using the “archives at” property (P485) https://doi.org/10.3929/ethz-b-000393724
### Metadaten anreichern mit OpenRefine und Wikidata
**Aufgabe (30 Minuten)**: Wir bearbeiten gemeinsam Teile des Tutorials "Cleaning Data with OpenRefine" von John Little (2018). Die Aufgaben unten enthalten Auszüge aus [Kapitel 5 Hands-on: Reconciliation](https://libjohn.github.io/openrefine/hands-on-reconciliation.html).
#### Aufgabe 1: Neues Projekt
* `Create Project > Web Addresses (URLs)`
* https://raw.githubusercontent.com/libjohn/openrefine/master/data/AA-authors-you-should-read.csv
* `Next`
* You many want to give your project a pretty title
* `Create Project`
* Change Show: to 25 to see all 11 records.
#### Aufgabe 2: Reconciliation
* `authors > Reconcile > Start reconciling…`
* Under Services, click Wikidata Reconciliation for OpenRefine (en)
* Under Reconcile each cell to an entity of one of these types:, choose, `human`
* Click, `Start Reconciling`
* By clicking the approriate single checkbox in each cell of the authors column, manually select the most appropriate author for our topic. (...) Cells 2, 10 need your intervention.
* In Cell 2, James Baldwin, select the first option which a match of “(100)”
* In Cell 10, Click on the first name, then the second name. Do you see an African-American writer? Choose him by clicking the corresponding single check-mark
#### Aufgabe 3: Daten aus Wikidata ergänzen
* `authors > Edit column > Add columns from reconciled values…`
* Under Suggested Properties, click place of birth and place of death
* OK
#### Literatur: Reconciliation mit OpenRefine
* Weitere Datenquellen, welche die OpenRefine Reconciliation API unterstützen: <https://github.com/OpenRefine/OpenRefine/wiki/Reconcilable-Data-Sources>
* Und es können auch Daten manuell aus dem Web geladen und zur Anreicherung verwendet werden. Das ist aber mühseliger. Dazu ein Tutorial: <https://programminghistorian.org/en/lessons/fetch-and-parse-data-with-openrefine>
## Empfehlenswerte Tutorials zum Selbstlernen
* Library Carpentry: <https://librarycarpentry.org/lessons/>
* Programming Historian: <https://programminghistorian.org/en/lessons/>
* openHPI: <https://open.hpi.de/courses>
* Datenschule: <https://datenschule.de/lernmaterialien/>

View File

@ -1,53 +1,55 @@
# Skript zum Kurs "Bibliotheks- und Archivinformatik"
Dieses Skript entsteht in der Zeit von September bis Dezember 2020 im Rahmen der folgenden Lehrveranstaltung:
Dieses Skript entsteht in der Zeit von September 2021 bis Januar 2022 im Rahmen der folgenden Lehrveranstaltung:
- Kurs "Bibliotheks- und Archivinformatik" (BAIN)
- Dozenten: [Felix Lohmeier](http://felixlohmeier.de), [Sebastian Meyer](https://twitter.com/_meyse_/)
- Herbstsemester 2020
- Herbstsemester 2021
- Lehrauftrag an der [FH Graubünden - Studiengang Information Science](https://www.fhgr.ch/studium/bachelorangebot/wirtschaft-und-dienstleistung/information-science/)
- Bachelor, 4 ECTS
## Gemeinsames Dokument
Für Notizen und zum Austausch verwenden wir ein gemeinsames Dokument in einer [CodiMD](https://github.com/codimd/server)-Installation [bei der GWDG](https://pad.gwdg.de/). Alle, die den Link kennen, können es bearbeiten. Zur Formatierung wird [Markdown](https://www.markdownguide.org/basic-syntax/) verwendet.
Für Notizen und zum Austausch verwenden wir ein gemeinsames Dokument in einer [HedgeDoc](https://github.com/hedgedoc/hedgedoc)-Installation [bei der GWDG](https://pad.gwdg.de/). Alle, die den Link kennen, können es bearbeiten. Zur Formatierung wird [Markdown](https://www.markdownguide.org/basic-syntax/) verwendet.
* [Gemeinsames Dokument](https://pad.gwdg.de/Tf-htntTR8COelT3Wgodzg?both)
* [Gemeinsames Dokument für die Gruppe ISc18tzZ (Zürich)](https://pad.gwdg.de/TI2mEmrgSbuQOP7nJsfoXg?both)
* [Gemeinsames Dokument für die Gruppe ISc19vz (Chur)](https://pad.gwdg.de/70W-kLf9T0iW-rGHvTq7tg?both)
## Inhalte
1. [Technische Grundlagen](01_technische-grundlagen.md) (10.09.2020)
1. [Technische Grundlagen](01_technische-grundlagen.md) (Chur: 16.09.2021, Zürich: 15.09.2021)
- Schaubild zu Lehrinhalten
- Einrichtung der Arbeitsumgebung (Linux)
- Grundlagen der Unix Shell
- Versionskontrolle mit git
- Blog mit GitHub Pages
2. [Funktion und Aufbau von Bibliothekssystemen](02_funktion-und-aufbau-von-bibliothekssystemen.md) (25.09.2020 / 02.10.2020)
2. [Funktion und Aufbau von Bibliothekssystemen](02_funktion-und-aufbau-von-bibliothekssystemen.md) (Chur: 30.09.2021 und 07.10.2021, Zürich: 01.10.2021 und 08.10.2021)
- Metadatenstandards in Bibliotheken (MARC21)
- Installation und Konfiguration von Koha
- Cloud-Konzepte am Beispiel von ALMA
- Marktüberblick Bibliothekssysteme
3. [Funktion und Aufbau von Archivsystemen](03_funktion-und-aufbau-von-archivsystemen.md) (09.10.2020)
3. [Funktion und Aufbau von Archivsystemen](03_funktion-und-aufbau-von-archivsystemen.md) (Chur: 23.10.2021, Zürich: 20.10.2021)
- Metadatenstandards in Archiven (ISAD(G) und EAD)
- Installation und Konfiguration von ArchivesSpace
- Marktüberblick Archivsysteme
4. [Repository-Software für Publikationen und Forschungsdaten](04_repository-software-fuer-publikationen-und-forschungsdaten.md) (16.10.2020)
4. [Repository-Software für Publikationen und Forschungsdaten](04_repository-software-fuer-publikationen-und-forschungsdaten.md) (Chur: 04.11.2021, Zürich: 05.11.2021)
- Open Access und Open Data
- Übungen mit DSpace
- Marktüberblick Repository-Software
5. [Metadaten modellieren und Schnittstellen nutzen](05_metadaten-modellieren-und-schnittstellen-nutzen.md) (30.10.2020 / 20.11.2020)
5. [Metadaten modellieren und Schnittstellen nutzen](05_metadaten-modellieren-und-schnittstellen-nutzen.md) (Chur: 18.11.2021 und 02.12.2021, Zürich: 19.11.2021 und 03.12.2021)
- Austauschprotokolle für Metadaten (OAI-PMH, SRU)
- Metadaten über OAI-PMH harvesten mit VuFindHarvest
- XSLT Crosswalks mit MarcEdit
- Transformation von Metadaten mit OpenRefine
- Weitere Tools zur Metadatentransformation
- Nutzung von JSON-APIs
6. [Suchmaschinen und Discovery-Systeme](06_suchmaschinen-und-discovery-systeme.md) (27.11.2020 / 11.12.2020)
6. [Suchmaschinen und Discovery-Systeme](06_suchmaschinen-und-discovery-systeme.md) (Chur: 16.12.2021, Zürich: 17.12.2021)
- Installation und Konfiguration von VuFind
- Funktion von Suchmaschinen am Beispiel von Solr
- Übung zur Datenintegration
- Marktüberblick Discovery-Systeme
- Zwischenfazit
7. [Linked Data](07_linked-data.md) (18.12.2020)
7. [Linked Data](07_linked-data.md) (Chur: 13.01.2022, Zürich: 14.01.2022)
- Ergebnis der Unterrichtsevaluation
- Aktuelle Datenmodelle für Metadaten (BIBFRAME, RiC)
- Praxisberichte
@ -59,39 +61,27 @@ Für Notizen und zum Austausch verwenden wir ein gemeinsames Dokument in einer [
Als Prüfungsleistung schreiben Studierende Blogs, in denen sie von ihren Erkenntnissen berichten und sich mit den Inhalten des Seminars auseinandersetzen.
* [Giulia D'Amico](https://damicogiulia.github.io/BAIN-Blog/)
* [Lea Bächli](https://leabaechli.github.io/bain/)
* [Remo Bischoff](https://remooda.github.io/bain/)
* [Karin K. Bühler](https://kkbuhler.github.io/BAIN)
* [Regina Eicher](https://gins-ctrl.github.io/Lerntagebuch_HS20/)
* [Sandra Flückiger](https://fluecksandra.github.io)
* [Shanna Grütter](https://shannarachel.github.io/storys)
* [Martina Gubser](https://tinablabla.github.io/bainotes/)
* [Jo Hoitink](https://thanjoan.github.io/lerntagebuch_bain)
* [Gaby Leuenberger](https://regrebneuel.github.io/bain-log/)
* [Tamara Mächler](https://lillanord.github.io/lerntagebuch/)
* [Stefanie Moser](https://stemorit.github.io/BAIN-Lerntagebuch/)
* [Alex Muster](https://alexmuster.github.io/lerntageblog)
* [Melanie Müller](https://rumolin.github.io/lerntagebuch-bain/)
* [Florian Riedmann](https://xxxjaegerxxx.github.io/lerntagebuch)
* [Sakura](https://sakura-72.github.io/my-bain-blog/)
* [Vanessa Seyffert](https://vseyffert.github.io/bainseyffert/)
* [Charles Winkler](https://charleswinkler.github.io)
* ... (folgt)
## Modulbeschreibung
Im Modul Bibliotheks- und Archivinformatik lernen die Studierenden die in Bibliotheken und Archiven eingesetzten Softwares und Technologien kennen. Funktionsweisen von Bibliothekskatalogen (bis hin zu Cloud-Konzepten), von Publikationsplattformen, Repositories etc. werden erläutert. Verschiedene Suchtechnologien werden analysiert und im Einsatz über unterschiedliche Datenbestände angewandt. Es wird gezeigt, wie Metadatenstandards und Austauschprotokolle eingesetzt und genutzt werden.
Im Modul Bibliotheks- und Archivinformatik lernen die Studierenden die in Bibliotheken und Archiven eingesetzten Softwares und Technologien kennen. Funktionsweisen von Bibliothekssystemen (bis hin zu Cloud-Konzepten), Archivinformationssystemen, Publikationsplattformen, Suchportale etc. werden erläutert. Verschiedene quelloffene Software-Lösungen werden evaluiert und im Einsatz über unterschiedliche Datenbestände angewandt. Es wird gezeigt, wie Metadatenstandards und Austauschprotokolle eingesetzt und genutzt werden.
Nach erfolgreicher Teilnahme am Modul sind die Studierenden in der Lage:
* die Funktionsweise spezifischer Bibliothekssoftware zu verstehen
* die richtige Software für eine spezifische Aufgabe zu evaluieren
* Suchmaschinen zu konfigurieren
* Bibliothekarische und archivarische Metadaten (z.B. MARC, MARCXML, MODS, Dublin Core, EAD, BIBFRAME) zu modellieren und diese mit entsprechenden Protokollen / Anwendungen zu übertragen
* Crosswalks zwischen unterschiedlichen Metadatenformaten zu programmieren
* Daten in ein Suchportal zu integrieren
* Bibliothekarische und archivarische Metadaten (z.B. MARC, MARCXML, Dublin Core, EAD, BIBFRAME) zu modellieren und diese mit entsprechenden Protokollen / Anwendungen zu übertragen
* Crosswalks zwischen unterschiedlichen Metadatenformaten zu konzipieren und anzuwenden
## Skripte der Vorjahre
Herbstsemester 2021:
* Zenodo: [10.5281/zenodo.4386963](https://doi.org/10.5281/zenodo.4386963)
* GitHub: [v4.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v4.0)
Frühlingssemester 2020:
* Zenodo: [10.5281/zenodo.3885498](https://doi.org/10.5281/zenodo.3885498)

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB