initialer commit für Herbstsemester 2019
182
README.md
|
@ -1,157 +1,38 @@
|
||||||
---
|
# Skript zum Kurs "Bibliotheks- und Archivinformatik"
|
||||||
lrmi:
|
|
||||||
datePublished: '2017-09-20'
|
|
||||||
license: 'http://creativecommons.org/licenses/by/4.0/'
|
|
||||||
audience:
|
|
||||||
type: EducationalAudience
|
|
||||||
educationalRole: student
|
|
||||||
interactivityType: mixed
|
|
||||||
hasCourseInstance:
|
|
||||||
type: CourseInstance
|
|
||||||
startDate: '2017-09-21'
|
|
||||||
endDate: '2018-01-11'
|
|
||||||
courseMode: onsite
|
|
||||||
offers:
|
|
||||||
type: Offer
|
|
||||||
offeredBy:
|
|
||||||
id: 'http://www.wikidata.org/entity/Q1622220'
|
|
||||||
name: HTW Chur
|
|
||||||
name: Bibliotheks- und Archivinformatik an der HTW Chur
|
|
||||||
creator:
|
|
||||||
name: Felix Lohmeier
|
|
||||||
id: 'https://orcid.org/0000-0003-3375-4362'
|
|
||||||
timeRequired: 7 days
|
|
||||||
hasPart:
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-1.html
|
|
||||||
name: >-
|
|
||||||
Kapitel 1: Einführung ins Thema, Installation der Arbeitsumgebung und
|
|
||||||
eine Wiederholung in Metadatenstandards
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-2.html
|
|
||||||
name: 'Kapitel 2: Bibliotheks- und Archivsysteme'
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-3.html
|
|
||||||
name: 'Kapitel 3: Übertragungsprotokolle und Datentransformationen'
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-4.html
|
|
||||||
name: 'Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche'
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-5.html
|
|
||||||
name: 'Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung'
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-6.html
|
|
||||||
name: 'Kapitel 6: Metadaten in Repositorien und Crosswalks'
|
|
||||||
- id: >-
|
|
||||||
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-7.html
|
|
||||||
name: 'Kapitel 7: Linked Data und weitere Metadatenstandards'
|
|
||||||
about:
|
|
||||||
- libraries
|
|
||||||
- archives
|
|
||||||
- software
|
|
||||||
- protocols
|
|
||||||
- metadata
|
|
||||||
typicalAgeRange: 18-65
|
|
||||||
url: 'https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/'
|
|
||||||
'@context': 'http://schema.org/'
|
|
||||||
educationalCredentialAwarded: 4 ECTS
|
|
||||||
type: Course
|
|
||||||
id: 'https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/'
|
|
||||||
description: >-
|
|
||||||
Der Kurs ist eine Weiterentwicklung voriger Lehrveranstaltungen an der HAW
|
|
||||||
Hamburg (Wintersemester 2016/17) und an der HS Hannover (Sommersemester
|
|
||||||
2017). Es ist für eine Lehrveranstaltung mit 4 ECTS konzipiert.
|
|
||||||
---
|
|
||||||
|
|
||||||
# Skript zum Kurs "Bibliotheks- und Archivinformatik" \(Herbstsemester 2017 ff.\) an der HTW Chur
|
Dieses Skript entsteht in der Zeit von September 2019 bis Januar 2020 im Rahmen der folgenden Lehrveranstaltung:
|
||||||
|
|
||||||
Das Skript ist eine Weiterentwicklung voriger Lehrveranstaltungen an der [HAW Hamburg](https://www.gitbook.com/book/felixlohmeier/seminar-wir-bauen-uns-einen-bibliothekskatalog/) \(Wintersemester 2016/17\) und an der [HS Hannover](https://www.gitbook.com/read/book/felixlohmeier/seminar-praxis-der-digitalen-bibliothek) \(Sommersemester 2017\). Es ist für eine Lehrveranstaltung mit 4 ECTS konzipiert.
|
- Kurs "Bibliotheks- und Archivinformatik"
|
||||||
|
- Dozent: [Felix Lohmeier](http://felixlohmeier.de)
|
||||||
|
- Herbstsemester 2019
|
||||||
|
- Lehrauftrag an der [HTW Chur - Studiengang Information Science](http://studium.htwchur.ch/information-science/)
|
||||||
|
- Bachelor mit Vertiefung Bibliotheksmanagement, Archiv und Information Engineering, 4 ECTS
|
||||||
|
|
||||||
## Formate
|
## Arbeitsumgebung
|
||||||
|
|
||||||
* Lesefassung bei GitBook \(HTML\): [https://www.gitbook.com/read/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik](https://www.gitbook.com/read/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik)
|
Wir nutzen die Software [VirtualBox](https://www.virtualbox.org/), die es Ihnen ermöglicht, einen Webserver auf ihrem Computer zu installieren, ohne dass Ihr gewohntes Betriebssystem verändert wird. Sie erhalten für jede Lehreinheit eine vorkonfigurierte virtuelle Maschine, um ohne langwierige Installation die Programme ausprobieren zu können. Learning by doing.
|
||||||
* Druckfassung bei GitBook \(PDF\): [https://www.gitbook.com/download/pdf/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik](https://www.gitbook.com/download/pdf/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik)
|
|
||||||
* Repository bei GitHub \(zum Nachnutzen\): [https://github.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik](https://github.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik)
|
|
||||||
|
|
||||||
## Lehrveranstaltung
|
**Voraussetzung:** Sie benötigen einen Computer, der einigermaßen aktuell ist (etwa ab Baujahr 2013), über mindestens 4 GB RAM verfügt und auf dem Sie Software installieren können (Windows, macOS oder Linux).
|
||||||
|
|
||||||
Dieses Skript entstand in der Zeit von September 2017 bis Januar 2018 im Rahmen der folgenden Lehrveranstaltung:
|
|
||||||
|
|
||||||
* Kurs "Bibliotheks- und Archivinformatik"
|
|
||||||
* Dozent: [Felix Lohmeier](http://felixlohmeier.de)
|
|
||||||
* Herbstsemester 2017
|
|
||||||
* Lehrauftrag an der [HTW Chur - Studiengang Information Science](http://studium.htwchur.ch/information-science/)
|
|
||||||
* Bachelor mit Vertiefung Bibliotheksmanagement, Archiv und Information Engineering, 4 ECTS
|
|
||||||
|
|
||||||
## Inhalte
|
## Inhalte
|
||||||
|
|
||||||
Kapitel 1: Einführung ins Thema, Installation der Arbeitsumgebung und eine Wiederholung in Metadatenstandards
|
1. 25.09.2019: Installation und Grundlagen
|
||||||
|
2. 09.10.2019: Bibliothekssystem Koha
|
||||||
* [1.1 Einführung ins Thema](/kapitel-1/11-einfuhrung-ins-thema.md)
|
3. 30.10.2019: Archivsystem ArchivesSpace
|
||||||
* [1.2 Installation der Arbeitsumgebung](/kapitel-1/12-installation-der-arbeitsumgebung.md)
|
4. 06.11.2019: Repository-Software DSpace-CRIS
|
||||||
* [1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile](/kapitel-1/13-ubung-text-durchsuchen-und-worter-zahlen-auf-der-kommandozeile.md)
|
5. 13.11.2019: Metadaten transformieren mit OpenRefine und MarcEdit
|
||||||
* [1.4 Metadatenstandards und Schnittstellen](/kapitel-1/14-metadatenstandards-und-schnittstellen.md)
|
6. 27.11.2019: Discovery-System VuFind und Suchmaschine Solr
|
||||||
* [1.5 Übung: Metadaten über eine SRU-Schnittstelle laden](/kapitel-1/15-ubung-metadaten-uber-eine-sru-schnittstelle-laden.md)
|
7. 11.12.2019: Linked Data und Fazit
|
||||||
* [1.6 Metadaten ansehen mit OpenRefine](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md)
|
|
||||||
|
|
||||||
Kapitel 2: Bibliotheks- und Archivsysteme
|
|
||||||
|
|
||||||
* [2.1 Metadatenflüsse der ETH-Bibliothek](/kapitel-2/21_metadatenflusse-der-eth-bibliothek.md)
|
|
||||||
* [2.2 Datenstruktur von Archivsystemen](/kapitel-2/22_datenstruktur-von-archivsystemen.md)
|
|
||||||
* [2.3 Online-Präsentation von Digitalisaten](/kapitel-2/23_online-praesentation-von-digitalisaten.md)
|
|
||||||
* [2.4 Discovery-System Wissensportal](/kapitel-2/24_discovery-system-wissensportal.md)
|
|
||||||
* [2.5 Datenbereitstellung für externe Portale](/kapitel-2/25_datenbereitstellung-fur-externe-portale.md)
|
|
||||||
|
|
||||||
Kapitel 3: Übertragungsprotokolle und Datentransformationen
|
|
||||||
|
|
||||||
* [3.1 Wir bauen uns ein Wissensportal](/kapitel-3/31-wir-bauen-uns-ein-wissensportal.md)
|
|
||||||
* [3.2 Übertragungsprotokolle SRU und OAI-PMH](/kapitel-3/32-ubertragungsprotokolle-sru-und-oai-pmh.md)
|
|
||||||
* [3.3 Testdaten über SRU herunterladen](/kapitel-3/33-testdaten-uber-sru-herunterladen.md)
|
|
||||||
* [3.4 Tutorial zu OpenRefine](/kapitel-3/34-tutorial-zu-openrefine.md)
|
|
||||||
* [3.5 Verarbeitung von MARC21 mit OpenRefine](/kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
|
|
||||||
* [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](/kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
|
|
||||||
* [3.7 Bonus: Automatisierung](/kapitel-3/37-bonus-automatisierung.md)
|
|
||||||
|
|
||||||
Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche
|
|
||||||
|
|
||||||
* [4.1 Installation von Solr](/kapitel-4/41-installation-von-solr.md)
|
|
||||||
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
|
|
||||||
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
|
|
||||||
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
|
|
||||||
* [4.5 Bonus: Daten Weitere indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
|
|
||||||
|
|
||||||
Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung
|
|
||||||
|
|
||||||
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
|
|
||||||
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
|
|
||||||
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
|
|
||||||
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
|
|
||||||
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
|
|
||||||
|
|
||||||
Kapitel 6: Metadaten in Repositorien und Crosswalks
|
|
||||||
|
|
||||||
* [6.1 VuFind-Tutorial](/kapitel-6/61_vufind-tutorial.md)
|
|
||||||
* [6.2 Daten im Format MARC21 indexieren](/kapitel-6/62_daten-im-format-marc21-indexieren.md)
|
|
||||||
* [6.3 Installation von MarcEdit](/kapitel-6/63_installation-von-marcedit.md)
|
|
||||||
* [6.4 Harvesting mit MarcEdit](/kapitel-6/64_harvesting-mit-marcedit.md)
|
|
||||||
|
|
||||||
Kapitel 7: Linked Data und weitere Metadatenstandards
|
|
||||||
|
|
||||||
* [7.1 Semantische Daten](/kapitel-7/71_semantische-daten-fuer-webauftritt.md)
|
|
||||||
* [7.2 Linked Data nach dem Hype](/kapitel-7/72_linked-data-nach-dem-hype.md)
|
|
||||||
* [7.3 Projekt Linked swissbib](/kapitel-7/73_projekt-linked-swissbib.md)
|
|
||||||
* [7.4 Datenmodell und Datentransformation](/kapitel-7/74_datenmodell-und-datentransformation.md)
|
|
||||||
* [7.5 Übung: RDF mit Metafacture generieren](/kapitel-7/75_uebung-rdf-mit-metafacture-generieren.md)
|
|
||||||
* [7.6 Verlinkung und Anreicherung](/kapitel-7/76_verlinkung-und-anreicherung.md)
|
|
||||||
* [7.7 Übung: Linking mit Limes](/kapitel-7/77_uebung-linking-mit-limes.md)
|
|
||||||
* [7.8 Oberfläche: Projektresultate und Integration](/kapitel-7/78_oeberflaeche-projektresultate-integration.md)
|
|
||||||
* [7.9 Publikation und Nachnutzung](/kapitel-7/79_publikation-und-nachnutzung.md)
|
|
||||||
|
|
||||||
## Lerntagebücher
|
## Lerntagebücher
|
||||||
|
|
||||||
Als Prüfungsleistung schreiben Studierende öffentliche [Lerntagebücher](/lerntagebucher.md), in denen sie von ihren Erkenntnissen berichten und sich mit dem Inhalt des Seminars auseinandersetzen. Thematisch relevante Beiträge werden in den jeweiligen Kapiteln im Skript verlinkt.
|
Als Prüfungsleistung schreiben Studierende Blogs, in denen sie von ihren Erkenntnissen berichten und sich mit den Inhalten des Seminars auseinandersetzen.
|
||||||
|
|
||||||
## Beschreibung
|
**Blogs der Studierenden:**
|
||||||
|
|
||||||
|
(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 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.
|
||||||
|
|
||||||
|
@ -164,22 +45,15 @@ Nach erfolgreicher Teilnahme am Modul sind die Studierenden in der Lage:
|
||||||
* Bibliothekarische und archivarische Metadaten \(z.B. MARC, MARCXML, MODS, Dublin Core, EAD, BIBFRAME\) zu modellieren und diese mit entsprechenden Protokollen / Anwendungen zu übertragen
|
* 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
|
* Crosswalks zwischen unterschiedlichen Metadatenformaten zu programmieren
|
||||||
|
|
||||||
In diesem praxisorientierten Kurs setzen Sie Open-Source-Komponenten ein, um einen Prototyp eines Katalogs \(Discovery-System\) herzustellen. Ausgehend vom Laden ausgewählter Metadaten über Schnittstellen, transformieren Sie die Metadaten in ein für Suchmaschinen geeignetes Format, konfigurieren einen Suchindex und erstellen eine prototypische Anzeige eines Katalogs. Durch die konkrete Arbeit mit den Technologien und Beispieldaten lernen Sie die Funktionsweise typischer Software, Schnittstellen und verschiedene Metadatenformate kennen.
|
## Skripte der Vorjahre
|
||||||
|
|
||||||
## Intention Openness
|
Herbstsemester 2017:
|
||||||
|
|
||||||
Soweit möglich werden die Materialien für die Lehrveranstaltung an dieser Stelle online gestellt, damit sie vielleicht auch über den Kreis der SeminarteilnehmerInnen hinaus nützlich sind. Weitere Informationen dazu im Bibcast [Offene Lernskripte mit Gitbook](https://bibcast.openbiblio.eu/offene-lernskripte-mit-gitbook-erfahrungsbericht-aus-dem-seminar-wir-bauen-uns-einen-bibliothekskatalog-an-der-haw-hamburg/).
|
* Zenodo: [10.5281/zenodo.3383051](https://doi.org/10.5281/zenodo.3383051)
|
||||||
|
* GitHub: [v1.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v1.0)
|
||||||
## Literaturempfehlungen zum Einstieg
|
|
||||||
|
|
||||||
* Anne Christensen \(2013\): Warum BibliothekarInnen bei Discovery mitmischen sollten, trotz allem. In: Blog "A growing organism - Bibliothekarische An- und Aussichten von Anne Christensen", 20.4.2013: [https://xenzen.wordpress.com/2013/04/20/discovery-mitmischen/](https://xenzen.wordpress.com/2013/04/20/discovery-mitmischen/)
|
|
||||||
* 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](http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:0290-opus4-24490)
|
|
||||||
* Christof Rodejohann & Felix Lohmeier \(2016\): Schlanke Discovery-Lösung auf Basis von TYPO3. Der neue Bibliothekskatalog der SLUB Dresden. Präsentation im Rahmen des "Bibcast", Live-Webcast im Vorfeld des Bibliothekskongresses, 9.3.2016: [http://bibcast.openbiblio.eu/schlanke-discovery-loesung-auf-basis-von-typo3-der-neue-bibliothekskatalog-der-slub-dresden/](http://bibcast.openbiblio.eu/schlanke-discovery-loesung-auf-basis-von-typo3-der-neue-bibliothekskatalog-der-slub-dresden/)
|
|
||||||
* Felix Lohmeier & Jens Mittelbach \(2014\): Offenheit statt Bündniszwang. In: Zeitschrift für Bibliothekswesen und Bibliographie 61, H. 4-5, S. 209-214. [http://dx.doi.org/10.3196/1864295014614554](http://dx.doi.org/10.3196/1864295014614554)
|
|
||||||
|
|
||||||
## Lizenz
|
## Lizenz
|
||||||
|
|
||||||
Dieses Werk ist lizenziert unter einer [Creative Commons Namensnennung 4.0 International Lizenz](http://creativecommons.org/licenses/by/4.0/)
|
Dieses Werk ist lizenziert unter einer [Creative Commons Namensnennung 4.0 International Lizenz](http://creativecommons.org/licenses/by/4.0/)
|
||||||
|
|
||||||
[![Creative Commons Lizenzvertrag](https://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/)
|
[![Creative Commons Lizenzvertrag](https://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/)
|
||||||
|
|
53
SUMMARY.md
|
@ -1,53 +0,0 @@
|
||||||
# Summary
|
|
||||||
|
|
||||||
* [Einleitung](README.md)
|
|
||||||
* [Kapitel 1](kapitel-1.md)
|
|
||||||
* [1.1 Einführung ins Thema](kapitel-1/11-einfuhrung-ins-thema.md)
|
|
||||||
* [1.2 Installation der Arbeitsumgebung](kapitel-1/12-installation-der-arbeitsumgebung.md)
|
|
||||||
* [1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile](kapitel-1/13-ubung-text-durchsuchen-und-worter-zahlen-auf-der-kommandozeile.md)
|
|
||||||
* [1.4 Metadatenstandards und Schnittstellen](kapitel-1/14-metadatenstandards-und-schnittstellen.md)
|
|
||||||
* [1.5 Übung: Metadaten über eine SRU-Schnittstelle laden](kapitel-1/15-ubung-metadaten-uber-eine-sru-schnittstelle-laden.md)
|
|
||||||
* [1.6 Metadaten ansehen mit OpenRefine](kapitel-1/16-metadaten-ansehen-mit-openrefine.md)
|
|
||||||
* [Kapitel 2](kapitel-2.md)
|
|
||||||
* [2.1 Metadatenflüsse der ETH-Bibliothek](/kapitel-2/21_metadatenflusse-der-eth-bibliothek.md)
|
|
||||||
* [2.2 Datenstruktur von Archivsystemen](/kapitel-2/22_datenstruktur-von-archivsystemen.md)
|
|
||||||
* [2.3 Online-Präsentation von Digitalisaten](/kapitel-2/23_online-praesentation-von-digitalisaten.md)
|
|
||||||
* [2.4 Discovery-System Wissensportal](/kapitel-2/24_discovery-system-wissensportal.md)
|
|
||||||
* [2.5 Datenbereitstellung für externe Portale](/kapitel-2/25_datenbereitstellung-fur-externe-portale.md)
|
|
||||||
* [Kapitel 3](kapitel-3.md)
|
|
||||||
* [3.1 Wir bauen uns ein Wissensportal](kapitel-3/31-wir-bauen-uns-ein-wissensportal.md)
|
|
||||||
* [3.2 Übertragungsprotokolle SRU und OAI-PMH](kapitel-3/32-ubertragungsprotokolle-sru-und-oai-pmh.md)
|
|
||||||
* [3.3 Testdaten über SRU herunterladen](kapitel-3/33-testdaten-uber-sru-herunterladen.md)
|
|
||||||
* [3.4 Tutorial zu OpenRefine](kapitel-3/34-tutorial-zu-openrefine.md)
|
|
||||||
* [3.5 Verarbeitung von MARC21 mit OpenRefine](kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
|
|
||||||
* [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
|
|
||||||
* [3.7 Bonus: Automatisierung](kapitel-3/37-bonus-automatisierung.md)
|
|
||||||
* [Kapitel 4](kapitel-4.md)
|
|
||||||
* [4.1 Installation von Solr](/kapitel-4/41-installation-von-solr.md)
|
|
||||||
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
|
|
||||||
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
|
|
||||||
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
|
|
||||||
* [4.5 Bonus: Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
|
|
||||||
* [Kapitel 5](kapitel-5.md)
|
|
||||||
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
|
|
||||||
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
|
|
||||||
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
|
|
||||||
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
|
|
||||||
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
|
|
||||||
* [Kapitel 6](kapitel-6.md)
|
|
||||||
* [6.1 VuFind-Tutorial](/kapitel-6/61_vufind-tutorial.md)
|
|
||||||
* [6.2 Daten im Format MARC21 indexieren](/kapitel-6/62_daten-im-format-marc21-indexieren.md)
|
|
||||||
* [6.3 Installation von MarcEdit](/kapitel-6/63_installation-von-marcedit.md)
|
|
||||||
* [6.4 Harvesting mit MarcEdit](/kapitel-6/64_harvesting-mit-marcedit.md)
|
|
||||||
* [Kapitel 7](kapitel-7.md)
|
|
||||||
* [7.1 Semantische Daten](/kapitel-7/71_semantische-daten-fuer-webauftritt.md)
|
|
||||||
* [7.2 Linked Data nach dem Hype](/kapitel-7/72_linked-data-nach-dem-hype.md)
|
|
||||||
* [7.3 Projekt Linked swissbib](/kapitel-7/73_projekt-linked-swissbib.md)
|
|
||||||
* [7.4 Datenmodell und Datentransformation](/kapitel-7/74_datenmodell-und-datentransformation.md)
|
|
||||||
* [7.5 Übung: RDF mit Metafacture generieren](/kapitel-7/75_uebung-rdf-mit-metafacture-generieren.md)
|
|
||||||
* [7.6 Verlinkung und Anreicherung](/kapitel-7/76_verlinkung-und-anreicherung.md)
|
|
||||||
* [7.7 Übung: Linking mit Limes](/kapitel-7/77_uebung-linking-mit-limes.md)
|
|
||||||
* [7.8 Oberfläche: Projektresultate und Integration](/kapitel-7/78_oeberflaeche-projektresultate-integration.md)
|
|
||||||
* [7.9 Publikation und Nachnutzung](/kapitel-7/79_publikation-und-nachnutzung.md)
|
|
||||||
* [Lerntagebücher](lerntagebucher.md)
|
|
||||||
* [Lösungen](losungen.md)
|
|
|
@ -1,8 +0,0 @@
|
||||||
{% extends template.self %}
|
|
||||||
|
|
||||||
{% block head %}
|
|
||||||
{{ super() }}
|
|
||||||
<script type="application/ld+json">
|
|
||||||
{{ page.lrmi | dump() }}
|
|
||||||
</script>
|
|
||||||
{% endblock head %}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{% extends template.self %}
|
|
||||||
|
|
||||||
{% block head %}
|
|
||||||
{{ super() }}
|
|
||||||
<script type="application/ld+json">
|
|
||||||
{{ page.lrmi | dump() }}
|
|
||||||
</script>
|
|
||||||
{% endblock head %}
|
|
|
@ -1,15 +0,0 @@
|
||||||
graph LR
|
|
||||||
SRU((swissbib SRU)) -->|request / <br>response| MARC("swissbib<br>MARC21 (XML)")
|
|
||||||
|
|
||||||
MARC -->|Import| OpenRefine2[Bereinigung, Transformation, Normalisierung<br>mit OpenRefine]
|
|
||||||
|
|
||||||
subgraph Datentransformation
|
|
||||||
OpenRefine2 -->|Export| swissbib("swissbib<br>TSV")
|
|
||||||
end
|
|
||||||
|
|
||||||
swissbib -->|Indexierung| Solr(Suchindex<br>Apache Solr)
|
|
||||||
|
|
||||||
subgraph Discovery-System
|
|
||||||
Solr --- TYPO3((Katalogoberfläche<br>TYPO3 + TYPO3-find))
|
|
||||||
TYPO3 --> user(":-)")
|
|
||||||
end
|
|
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 601 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 463 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 512 KiB |
Before Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 425 KiB |
Before Width: | Height: | Size: 281 KiB |
Before Width: | Height: | Size: 139 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 139 KiB |
Before Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 173 KiB |
Before Width: | Height: | Size: 139 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 141 KiB |
Before Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 268 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 368 KiB |
Before Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 687 KiB |
Before Width: | Height: | Size: 672 KiB |
Before Width: | Height: | Size: 138 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 435 KiB |
Before Width: | Height: | Size: 243 KiB |
Before Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 208 KiB |
Before Width: | Height: | Size: 331 KiB |
18
kapitel-1.md
|
@ -1,18 +0,0 @@
|
||||||
# Kapitel 1: Einführung ins Thema, Installation der Arbeitsumgebung und eine Wiederholung in Metadatenstandards
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
|
|
||||||
|
|
||||||
* [1.1 Einführung ins Thema](/kapitel-1/11-einfuhrung-ins-thema.md)
|
|
||||||
* [1.2 Installation der Arbeitsumgebung](/kapitel-1/12-installation-der-arbeitsumgebung.md)
|
|
||||||
* [1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile](/kapitel-1/13-ubung-text-durchsuchen-und-worter-zahlen-auf-der-kommandozeile.md)
|
|
||||||
* [1.4 Metadatenstandards und Schnittstellen](/kapitel-1/14-metadatenstandards-und-schnittstellen.md)
|
|
||||||
* [1.5 Übung: Metadaten über eine SRU-Schnittstelle laden](/kapitel-1/15-ubung-metadaten-uber-eine-sru-schnittstelle-laden.md)
|
|
||||||
* [1.6 Metadaten ansehen mit OpenRefine](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [Die Entdeckungsreise beginnt...](https://elenasdiscovery.wordpress.com/2017/09/23/erster-blogbeitrag/) und [Erstellen eines Bibliothekskatalogs – Teil 1](https://elenasdiscovery.wordpress.com/2017/10/30/erstellen-eines-bibliothekskatalogs-teil-1/)
|
|
||||||
* Marina Hess: [About This Blog](https://mainsuche.jimdo.com)
|
|
||||||
* Franziska Neuenschwander: [OPAC vs. Discovery und was das Ganze mit Metadaten zu tun hat (21.09)](https://bainblogweb.wordpress.com/2017/10/09/opac-vs-discovery-und-was-das-ganze-mit-metadaten-zu-tun-hat-21-09/)
|
|
||||||
* Moreno Pontoriero: [Ring frei!](https://morenoexplores.wordpress.com/2017/09/30/ring-frei/)
|
|
||||||
* Aline Strauss: [Bibliothekskataloge und Metadatenstandards 21/09/17](https://alinesbiblio.wordpress.com/2017/09/29/kapitel-1-bibliothekskataloge-und-metadatenstandards-210917/)
|
|
|
@ -1,98 +0,0 @@
|
||||||
# 1.1 Einführung ins Thema
|
|
||||||
|
|
||||||
In diesem praxisorientierten Kurs setzen Sie Open-Source-Komponenten ein, um einen Prototyp eines Katalogs \(Discovery-System\) herzustellen. Ausgehend vom Laden ausgewählter Metadaten über Schnittstellen, transformieren Sie die Metadaten in ein für Suchmaschinen geeignetes Format, konfigurieren einen Suchindex und erstellen eine prototypische Anzeige eines Katalogs. Durch die konkrete Arbeit mit den Technologien und Beispieldaten lernen Sie die Funktionsweise typischer Software, Schnittstellen und verschiedene Metadatenformate kennen.
|
|
||||||
|
|
||||||
## Fragen
|
|
||||||
|
|
||||||
* Was unterscheidet Discovery-Systeme von vorherigen Bibliothekskatalogen \(OPACs\)?
|
|
||||||
* Discovery-Systeme gibt es schon seit etwa 10 Jahren, wo stehen wir heute? Was sind aktuelle Probleme und Lösungsansätze?
|
|
||||||
* Welche Software gibt es auf dem Markt?
|
|
||||||
|
|
||||||
## Vergleich zwischen OPAC und Discovery von Gerald Steilen \(2012\)
|
|
||||||
|
|
||||||
[![](../images/steilen-2012.png)](http://www.slideshare.net/steilen/discoverysysteme-die-opacs-der-zukunft)
|
|
||||||
|
|
||||||
Quelle: [http://www.slideshare.net/steilen/discoverysysteme-die-opacs-der-zukunft](http://www.slideshare.net/steilen/discoverysysteme-die-opacs-der-zukunft)
|
|
||||||
|
|
||||||
Der klassische Bibliothekskatalog \(Online Public Access Catalogue, kurz: OPAC\) wird von NutzerInnen nur noch selten als erster Einstieg gewählt. Gerald Steilen zitiert aus einer Studie von 2009 die folgenden Gründe:
|
|
||||||
|
|
||||||
* schlechte Nutzbarkeit
|
|
||||||
* hohe Komplexität
|
|
||||||
* fehlende Integration elektronischer Ressourcen
|
|
||||||
|
|
||||||
Die Einführung von Discovery-Systemen erfolgte im deutschprachigen Raum etwa **seit Ende der 2000er Jahre** und sollte diesen Kritikpunkten begegnen. Discovery-Systeme versuchen die von Google und anderen Internetsuchmaschinen bekannte Suchfunktionalität \(ein Suchschlitz und nach Relevanz sortierte Treffer\) auf Bibliothekskataloge zu übertragen und auch elektronische Medien in einer übergreifenden Suche mit einzubeziehen.
|
|
||||||
|
|
||||||
Während OPACs eher auf möglichst exakte Suchergebnisse zielen, liefern Discovery-Systeme sehr viele Suchergebnisse, die ähnlich wie bei anderen Suchmaschinen mittels eines Algorithmus **nach Relevanz sortiert** werden. Der Algorithmus ist meist nicht besonders kompliziert und zählt einfach das Vorkommen der Suchbegriffe in den Katalogeinträgen. Treffer in bestimmten Feldern wie Titel und Autor/in sind mehr wert als Treffer im Beschreibungstext oder in Verlagsangaben. Daraus errechnet die Suchmaschine einen Ergebniswert und sortiert die Trefferliste entsprechend.
|
|
||||||
|
|
||||||
Gerald Steilen weist in seinem Vergleich \(Folie 16/17\) auf wichtige Unterschiede der beiden Konzepte hin. Der klassische OPAC folgt dem Paradigma "exact match", während Discovery-Systeme dem Paradigma "best match" folgen. Während beim OPAC die NutzerInnen ihre Suchanfrage präzise formulieren müssen und dazu den Katalog und den Bibliotheksbestand gut kennen müssen, können NutzerInnen beim Discovery-System auch ohne besonderes Vorwissen nach beliebigen Begriffen suchen und erhalten eine sortierte Trefferliste. Durch eine hohe Fehlertoleranz werden **sehr viele Treffer** gefunden – unter denen dann aber oft auch unpassende Treffer dabei sind.
|
|
||||||
|
|
||||||
Discovery-Systeme versprechen eine intuitive Nutzbarkeit. Das bedeutet aber nicht, dass die Systemeinführung ebenso "von der Stange" funktioniert. Es ist wichtig, das System richtig zu konfigurieren und auf die Bibliotheksbestände anzupassen. Um gute Filtermöglichkeiten \(Facetten\) anbieten zu können, **müssen Felder in den Metadaten identifiziert werden, die geeignet und einheitlich belegt sind** . Gegebenenfalls sind die Katalogeinträge vorher nachzubearbeiten oder zu bereinigen.
|
|
||||||
|
|
||||||
Die Systemarchitektur von Discovery-Systemen **lässt sich konzeptionell in eine Suchmaschine und eine Oberfläche/Webseite trennen** . In der Suchmaschine werden die Katalogeinträge indexiert. Die NutzerInnen rufen die Webseite mit der Katalogoberfläche auf und geben dort ihre Suchanfrage ein. Im Hintergrund gibt die Oberfläche die Anfrage an die Suchmaschine weiter und erhält von dieser ein Ergebnis \(eine Trefferliste\) zurück. Die NutzerInnen hingegen erhalten dieses Ergebnis grafisch aufbereitet auf der Webseite der Katalogoberfläche.
|
|
||||||
|
|
||||||
Funktionen zur Ausleihe, zur Verwaltung des Benutzerkontos und zur Anzeige von aktuellen Verfügbarkeitsinformationen sind oft nicht direkter Bestandteil des Discovery-Systems, sondern Teil des "Lokalsytems" \(vgl. Folie 19\). Damit ist das System gemeint, in dem die Bibliothek "verwaltet" wird, also in dem die Ausleihe, die Erwerbung und die Katalogisierung stattfindet. **Discovery-System und Lokalsystem kommunizieren über eine Schnittstelle** miteinander, so dass die Informationen aus dem Lokalsystem im Katalog live angezeigt werden können \(beispielsweise der Ausleihstatus von Büchern\).
|
|
||||||
|
|
||||||
## Zwischenbilanz von Anne Christensen \(2014\)
|
|
||||||
|
|
||||||
[![](../images/christensen-2014.png)](http://www.slideshare.net/xenzen/discoverysysteme-zwischenbilanz-fr-eine-bibliothekarische-lsung-in-einer-postbibliothekarischen-welt)
|
|
||||||
|
|
||||||
Quelle: [http://www.slideshare.net/xenzen/discoverysysteme-zwischenbilanz-fr-eine-bibliothekarische-lsung-in-einer-postbibliothekarischen-welt](http://www.slideshare.net/xenzen/discoverysysteme-zwischenbilanz-fr-eine-bibliothekarische-lsung-in-einer-postbibliothekarischen-welt)
|
|
||||||
|
|
||||||
Anne Christensen konstatiert den Monopolverlust der Bibliotheken und zitiert eine Studie von OCLC aus dem Jahr 2005, in dem nur 2% der College Students ihre Suche nach elektronischen Informationen auf der Webseite der Bibliothek beginnen. Daraufhin stellt sie die \(rhetorische\) Frage, ob es sich bei der Einführung von Discovery-Systemen nur um ein "Rückzugsgefecht" handle und angesichts der Dominanz von Suchmaschinen wie Google das "Thema Suche" von Bibliotheken ganz aufgegeben werden sollte.
|
|
||||||
|
|
||||||
Sie spricht sich dafür aus, das Thema Discovery-Systeme in Bibliotheken weiter zu behandeln. Die Herausforderung für Bibliothekarinnen und Bibliothekaren bezeichnet sie als einen schmalen Grat mit dem **Ziel "bibliothekarisches Know-How sichtbar \(zu\) machen und aus\(zu\)spielen" und gleichzeitig "Bibliothekarische Vorstellung los\(zu\)lassen".**
|
|
||||||
|
|
||||||
Für die Probleme der Bibliotheken mit Discovery-Lösungen \(zu vereinfacht, zu viel, zu ungenau und zu obskur\) schlägt sie zwei Lösungsansätze vor:
|
|
||||||
|
|
||||||
1. Klarheit über Architektur und Funktionsweise von Discovery-Systemen gewinnen
|
|
||||||
2. Klarheit über grundverschiedene "mentale Modelle" gewinnen \(denjenigen von BibliothekarInnen und NutzerInnen\)
|
|
||||||
|
|
||||||
Sie plädiert für einen pragmatischen Ansatz und **Ausrichtung der Suchoberflächen nach Nutzerwünschen** . So ist beispielsweise das Angebot von Delivery-Optionen \(elektronisch, sofort ausleihbar, ausleihbar/wartezeit, Fernleihe\) sehr wichtig.
|
|
||||||
|
|
||||||
Als Verbesserungsmöglichkeiten für aktuelle Discovery-Systeme \(Präsentation von 2014\) spricht sie an:
|
|
||||||
|
|
||||||
* Verbesserung des Rankings,
|
|
||||||
* Nutzung von Normdaten,
|
|
||||||
* Zusammenspiel zwischen Bibliothekssystem, Discovery System und
|
|
||||||
**Link-Resolvern**
|
|
||||||
|
|
||||||
Mittelfristig haben aus ihrer Sicht weder lokale Bibliothekskataloge noch lokale Discovery-Lösungen eine Zukunft, weshalb die Definition von Austauschformaten für Lizenzinformationen sehr wichtig ist.
|
|
||||||
|
|
||||||
Weil Discovery viele bibliothekarische Kernthemen betrifft \(sie nennt Katalogisierung, Authoritäts- und Qualitätskontrolle, Bestandsentwicklung, Informationskompetenz-Vermittlung\) sei die Beschäftigung damit ein guter Ansatzpunkt, "wenn man eine bibliothekarische Zukunft gestalten will".
|
|
||||||
|
|
||||||
## Marktüberblick von Marshall Breeding \(2014\)
|
|
||||||
|
|
||||||
[![](../images/breeding-2014.png)](https://journals.ala.org/ltr/issue/view/195)
|
|
||||||
|
|
||||||
Quelle: [https://journals.ala.org/ltr/issue/view/195](https://journals.ala.org/ltr/issue/view/195)
|
|
||||||
|
|
||||||
Der Autor Marshall Breeding schreibt seit längerer Zeit zusammenfassende Berichte über den Stand von IT-Systemen in Bibliotheken und hat insbesondere über die Entwicklung von Discovery-Systemen berichtet. Er war von 1985 bis 2012 in einer Bibliothek in den USA tätig und ist gleichzeitig seit 1985 als IT-Berater tätig. Durch seine Arbeit ist er den kommerziellen Anbietern recht nah und kann daher einen guten Marktüberblick geben, gleichzeitig ist er nicht völlig unabhängig, was bei der Rezeption der Texte zu beachten ist.
|
|
||||||
|
|
||||||
Sein umfassender Bericht von 2014 in der Zeitschrift ALA TechSource bietet einen guten Einstieg. Den Ergebnissen der Befragung ist zu entnehmen, dass den Markt in den USA **nur wenige Anbieter** prägen. Bei wissenschaftlichen Bibliotheken sind dies 2014 insbesondere:
|
|
||||||
|
|
||||||
* Ex Libris: Primo / Primo Central
|
|
||||||
* ProQuest: Summon
|
|
||||||
* OCLC: WorldCat local
|
|
||||||
* EBSCO: EBSCO Discovery Service
|
|
||||||
* iii: Encore \(auf Basis von EBSCO Discovery Service\)
|
|
||||||
|
|
||||||
Es gibt zwar noch eine Reihe von anderen Anbietern, aber diese sind vor allem an kleineren Einrichtungen oder mit geringen Installationszahlen auf dem Markt für wissenschaftliche Bibliotheken tätig. Open-Source-Systeme wie VuFind sind ebenfalls noch recht wenig verbreitet.
|
|
||||||
|
|
||||||
Von großer Bedeutung sind die **von den Anbietern aufgebauten Indizes mit elektronischen Artikeln** , die zusammen mit dem Discovery-Produkt, manchmal aber auch allein lizenziert werden können. Die Anbieter übernehmen dabei die Aufgabe, die Metadaten zu lizenzpflichtigen und lizenzfreien Online-Ressourcen aus verschiedenen Quellen zusammenzutragen und zu normalisieren. Der daraus resultierende "Gesamtindex" wird dann mit den Lizenzen der Kunden \("Holdings"\) abgeglichen und im Discovery-System integriert oder in einem separaten Suchraum "Elektronische Artikel" oder ähnlich bereitgestellt.
|
|
||||||
|
|
||||||
Zum genaueren Verständnis der Funktion des Gesamtindex \("Central Index"\) ist ergänzend der folgende Artikel von Athena Hoeppner von 2012 hilfreich: [The Ins and Outs of Evaluating Web-Scale Discovery Services](http://www.infotoday.com/cilmag/apr12/Hoeppner-Web-Scale-Discovery-Services.shtml) . In: Computers in Libraries, April 2012.
|
|
||||||
|
|
||||||
## **Neuere Entwicklungen**
|
|
||||||
|
|
||||||
Seit dem Artikel aus 2014 hat im Zuge der Einführung von Cloud-Lösungen und durch eine große Übernahme eine weitere Marktkonzentration stattgefunden:
|
|
||||||
|
|
||||||
* **ProQuest hat Ende 2015 Ex Libris aufgekauft.** Die beiden Produktlinien Summon und Primo existieren derzeit noch parallel, werden aber vermutlich zukünftig zusammengeführt.
|
|
||||||
* Ex Libris Primo wird mittlerweile vor allem in Kombination mit ALMA \(einem kompletten Bibliothekssystem\) als **Cloud-Lösung ** verkauft. Das gleiche gilt für OCLC, die ihre Cloud-Lösung WorldShare Management Services als neues Hauptprodukt bewerben.
|
|
||||||
* OCLC und Ex Libris verfolgen beide das Ziel den **Austausch von Metadaten vor allem innerhalb ihrer Kundschaft **zu forcieren. So gibt es bei ALMA eine "Common Bibliographic Data Zone" und bei OCLC die Integration des "WorldCat". Durch die Verfügbarkeit von geteilten Metadaten zur Katalogisierung und Erwerbung innerhalb der Systeme versprechen die Firmen den Bibliotheken Arbeitserleichterungen und sich selbst einen Marktvorteil. In Kombination mit der engen Kopplung der Bibliothekssysteme mit den Discovery-Systemen und der Angebote als Cloud-Lösungen entstehen hohe Abhängigkeiten. Ein Wechsel zwischen den Anbietern oder die Nutzung einzelner Komponenten wird erschwert. Das führt zu einem [**Vendor-lockin**](https://en.wikipedia.org/wiki/Vendor_lock-in).
|
|
||||||
* EBSCO ist nicht nur Anbieter von Bibliothekssoftware, sondern betreibt auch Fachdatenbanken. In Konkurrenz zu anderen Anbietern versucht EBSCO daraus einen Vorteil zu gewinnen, indem es die Inhalte der Fachdatenbanken bevorzugt im eigenen Discovery-System-Index verfügbar macht. Darüber ist **2013-2015 ein Streit mit Ex Libris** entbrannt, woraufhin Kunden von Ex Libris versucht haben eine Einigung herbeizuführen \(siehe Zusammenfassung der ORBIS CASCADE ALLIANCE, einem Zusammenschluss von amerikanischen Universitätsbibliotheken: [https://www.orbiscascade.org/ebsco-ex-libris/](https://www.orbiscascade.org/ebsco-ex-libris/)\).
|
|
||||||
* Um den Komplettlösungen von OCLC und Ex Libris zu begegnen, hat EBSCO zudem Mitte 2016 [in das Open-Source-Projekt Kuali OLE investiert](https://www.ebsco.com/e/de-de/nachrichten-center/pressemitteilungen-in-deutscher-sprache/folio-die-neue-kooperation-bringt-bibliotheken-dienstleister-und-entwickler) und dieses unter neuem Namen [FOLIO](https://www.folio.org) herausgebracht. Zusammen mit der Firma Index Data wird eine Alternative zu den Komplettlösungen von Ex Libris und OCLC entwickelt. Ob der angekündigte Weg der Open-Source-Community tatsächlich in Reinform eingehalten wird oder doch Abhängigkeiten geschaffen werden, bleibt noch abzuwarten.
|
|
||||||
|
|
||||||
Marshall Breeding schreibt regelmäßig Berichte unter dem Titel "Library Systems Report". Der diesjährige [Artikel von 2016](https://americanlibrariesmagazine.org/2016/05/02/library-systems-report-2016/) ist mit "Power plays" untertitelt. Das spielt auf die oben beschriebene **zunehmende Marktkonzentration** an.
|
|
||||||
|
|
||||||
Es gibt Bestrebungen, die Discovery-Systeme möglichst unabhängig von Bibliothekssystemen einsetzbar zu halten und zu gewährleisten, dass wissenschaftliche Inhalte unabhängig von Marktinteressen in allen Discovery-Systemen nachgewiesen werden können. In den USA hat die [**"Open Discovery Initiative \(ODI\)"**](https://www.niso.org/standards-committees/odi) des Standardisierungsgremiums NISO eine umfangreiche Empfehlung dazu herausgegeben: [NISO RP-19-2014: A Recommended Practice of the National Information Standards Organization](https://www.niso.org/publications/rp-19-2014-odi).
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
# 1.2 Installation der Arbeitsumgebung
|
|
||||||
|
|
||||||
Wir arbeiten mit dem Linux-Betriebssystem [**Ubuntu MATE**](https://ubuntu-mate.org/)** 16.04** LTS. Wir nutzen eine "Live"-Version mit persistentem Storage. Dadurch gibt es folgende Besonderheiten:
|
|
||||||
|
|
||||||
* Änderungen am System und eigene Daten werden in der Partition "**casper-rw**" gespeichert.
|
|
||||||
* Die Partition "**usbdata**" kann zum Datenaustausch genutzt werden. Sie ist mit dem Dateisystem NTFS formatiert und kann auch auf einem Windows-Rechner eingelesen werden.
|
|
||||||
* Der Live-Session-User heißt "**ubuntu-mate**" und hat kein Passwort.
|
|
||||||
|
|
||||||
Im Kurs verwenden wir **vorbereitete USB-Sticks**, um das System auf eigenen Laptops zu booten.
|
|
||||||
|
|
||||||
Wer dieses Skript im **Selbststudium außerhalb der HTW Chur** bearbeiten möchte, der kann sich die Software [VirtualBox](https://www.virtualbox.org/wiki/Downloads) \(kostenfrei erhältlich für Windows, MacOS und Linux\) installieren und die folgende Appliance herunterladen und importieren \(VirtualBox Manager aufrufen, STRG+I drücken und Datei auswählen\): [https://felixlohmeier.de/htw/htw-usb.ova](https://felixlohmeier.de/htw/htw-usb.ova) \(2,9 GB\). Starten Sie die virtuelle Maschine und beginnen Sie direkt mit Kapitel 1.3. Wenn Sie Unterstützung bei der Einrichtung von VirtualBox benötigen, schreiben Sie gerne eine Mail an [mail@felixlohmeier.de](mailto:mail@felixlohmeier.de).
|
|
||||||
|
|
||||||
![](../images/willkommen.png)
|
|
||||||
|
|
||||||
## Arbeitsumgebung starten (entfällt bei der Verwendung von VirtualBox)
|
|
||||||
|
|
||||||
### Schritt 1: Von USB-Stick booten
|
|
||||||
|
|
||||||
Hinweise für verschiedene Betriebssysteme:
|
|
||||||
|
|
||||||
* **Windows 7/10**: Neu starten und während des Bootvorgangs die Tasten F2, F8, F10, F12, ENTF/DEL oder Esc \(je nach Computer unterschiedlich\) drücken. In den UEFI-Einstellungen bzw. im BIOS die Bootreihenfolge ändern oder explizit vom USB-Stick starten.
|
|
||||||
* **Windows 8**: Windows-Taste + I, Umschalt-\(Shift-\)Taste gedrückt halten und Neustart wählen. Im Menü Problembehandlung / Erweiterte Optionen / UEFI-Firmwareeinstellung. Dort "Ein Gerät verwenden".
|
|
||||||
* **macOS**: Während des Bootvorgangs die "Alt"-Taste gedrückt halten.
|
|
||||||
|
|
||||||
### Schritt 2: Internetverbindung herstellen
|
|
||||||
|
|
||||||
siehe WLAN-Symbol oben rechts
|
|
||||||
|
|
||||||
### Schritt 3: Freien Arbeitsspeicher und verfügbaren Speicher in Dateisystemen prüfen
|
|
||||||
|
|
||||||
siehe Anwendungen / Systemwerkzeuge / MATE-Systemüberwachung
|
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
# 1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile
|
|
||||||
|
|
||||||
Im Laufe des Kursus verwenden wir des Öfteren die [Kommandozeile](https://de.wikipedia.org/wiki/Kommandozeile), um Programme zu installieren und zu konfigurieren. Gleichzeitig ist sie ein mächtiges Werkzeug, um mit Textdateien umzugehen. Es lohnt also den Umgang damit kurz zu üben.
|
|
||||||
|
|
||||||
## Kommandozeile \(Terminal\) starten {#kommandozeile-terminal-starten}
|
|
||||||
|
|
||||||
Die Kommandozeile \(auch "[Terminal](https://wiki.ubuntuusers.de/Terminal/)" genannt\) von Ubuntu MATE erreichen wir über das Menü "Anwendungen -> Systemwerkzeuge -> MATE-Terminal".
|
|
||||||
|
|
||||||
![](../images/mate-terminal.png)
|
|
||||||
|
|
||||||
## Installieren Sie das kleine Programm curl {#installieren-sie-das-kleine-programm-curl}
|
|
||||||
|
|
||||||
Für die folgende Übung wird das \(sehr\) kleine Programm curl benötigt. Bei vielen Linux-Distributionen ist es vorinstalliert, aber bei Ubuntu MATE nicht. Starten Sie zur Installation die Kommandozeile \(Terminal\) und geben Sie den folgenden Befehl ein:
|
|
||||||
|
|
||||||
`sudo apt-get install curl`
|
|
||||||
|
|
||||||
Nach dem kurzen Installationsprozess sollte es etwa so aussehen:
|
|
||||||
|
|
||||||
![](../images/curl-installieren.png)
|
|
||||||
|
|
||||||
## Übung: Text durchsuchen und Wörter zählen {#übung-text-durchsuchen-und-wörter-zählen}
|
|
||||||
|
|
||||||
Starten Sie die Kommandozeile \(Terminal\) und geben Sie die folgenden Befehle ein:
|
|
||||||
|
|
||||||
### Schritt 1: "War and Peace" von Leo Tolstoy herunterladen und anzeigen {#schritt-1-war-and-peace-von-leo-tolstoy-herunterladen-und-anzeigen}
|
|
||||||
|
|
||||||
* `curl http://www.gutenberg.org/files/2600/2600-0.txt > war_and_peace.txt`
|
|
||||||
* `cat war_and_peace.txt | less`
|
|
||||||
|
|
||||||
Der Anhang `| less` am zweiten Befehl zeigt den Text so an, dass Sie mit den Pfeiltasten scrollen können. Beenden können Sie die Ansicht mit der Taste `q`.
|
|
||||||
|
|
||||||
### Schritt 2: Zeilen, Wörter und Zeichen zählen mit wc {#schritt-2-zeilen-wörter-und-zeichen-zählen-mit-wc}
|
|
||||||
|
|
||||||
* `wc war_and_peace.txt`
|
|
||||||
|
|
||||||
Die drei Nummern sind Zeilen, Wörter und Zeichen \(in dieser Reihenfolge\).
|
|
||||||
|
|
||||||
### Schritt 3: Suche nach Vorkommnissen der Wörter "war" and "peace" {#schritt-3-suche-nach-vorkommnissen-der-wörter-war-and-peace}
|
|
||||||
|
|
||||||
* `cat war_and_peace.txt | grep -i -ow war | wc`
|
|
||||||
* `cat war_and_peace.txt | grep -i -ow peace | wc`
|
|
||||||
|
|
||||||
Was wird häufiger in diesem Text erwähnt? Krieg oder Frieden?
|
|
||||||
|
|
||||||
## Hilfreiche Grundlagen bei der Arbeit mit der Kommandozeile {#hilfreiche-grundlagen-bei-der-arbeit-mit-der-kommandozeile}
|
|
||||||
|
|
||||||
* Dateien und Verzeichnisse: siehe [Cheatsheet](http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/)
|
|
||||||
* Abbruch / Programm beenden: _**STRG**_ und _**C**_
|
|
||||||
* Kurzhilfe eines Programms aufrufen: _**Programmname**_** --help**
|
|
||||||
* Handbuch eines Programms aufrufen: **man **_** Programmname**_
|
|
||||||
* Automatische Ergänzung von Befehlen: _**Tab**_
|
|
||||||
* Vorige Kommandos anzeigen: _**Pfeiltaste nach oben**_
|
|
||||||
* Suche in Historie der Kommandozeile: _**STRG**_ und _**R**_
|
|
||||||
|
|
||||||
Die meisten Antworten finden sich über einfache Suchen im Internet. Meist reicht es an die passenden Suchbegriffe das Wort "linux" mit anzuhängen.
|
|
||||||
|
|
||||||
## Literatur {#literatur}
|
|
||||||
|
|
||||||
* Ausführlichere Übung im Blog des Projekts Librecat/Catmandu: [https://librecatproject.wordpress.com/2014/12/04/day-4-grep-less-and-wc/](https://librecatproject.wordpress.com/2014/12/04/day-4-grep-less-and-wc/). Dabei bitte beachten: Die dort referenzierte Textdatei ist anders strukturiert als die obige _war\_and\_peace.txt_ und liefert daher andere Zählergebnisse.
|
|
||||||
* Dreistündiger Einführungskurs "Shell Lessons for Librarians" im Projekt "Library Carpentry" [http://data-lessons.github.io/library-shell/](http://data-lessons.github.io/library-shell/)
|
|
||||||
* Eine gute Einführung in die Linux-Kommandozeile bietet [http://linuxcommand.org](http://linuxcommand.org) von William E. Shotts, der auch ein kostenfreies [540-Seiten-Buch](http://linuxcommand.org/tlcl.php) darüber geschrieben hat.
|
|
||||||
* Es gibt sehr viele praktische kleine Programme auf der Kommandozeile. Zur Übersicht eignet sich daher ein Spickzettel \("Cheatsheet"\) sehr gut. Ein Beispiel für die unzähligen Cheatsheets: [http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/](http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
# 1.4 Metadatenstandards und Schnittstellen
|
|
||||||
|
|
||||||
## Fragen
|
|
||||||
|
|
||||||
* Welche Datenformate sind im Bibliotheksbereich üblich?
|
|
||||||
* Über welche Schnittstellen können Daten abgerufen werden?
|
|
||||||
|
|
||||||
## Zum Einstieg
|
|
||||||
|
|
||||||
"Die Datenübersetzerin" - [Interview mit Kirsten Jeude im Podcast der ZBW](https://www.youtube.com/watch?v=YwbRTDvt_sA)
|
|
||||||
|
|
||||||
[![](../images/interview-kirsten-jeude.png)](https://www.youtube.com/watch?v=YwbRTDvt_sA)
|
|
||||||
|
|
||||||
## Metadatenformate und -standards
|
|
||||||
|
|
||||||
Zusammenfassung einiger wichtiger Punkte mit Verweis auf Folien in einer Präsentation von Kirsten Jeude.
|
|
||||||
|
|
||||||
Siehe auch: Kirsten Jeude \(2013\): Auf Du und Du mit Dublin Core & Co. - Berufsfeld Metadaten-Management im Kontext der Bibliothek der Zukunft. Metadaten-Management im Leibniz-Informationszentrum Wirtschaft.[ Präsentationsfolien bei Slideshare](http://www.slideshare.net/suvanni/auf-du-und-du-mit-dublin-core-co-berufsfeld-metadatenmanagement-im-kontext-der-bibliothek-der-zukunft).
|
|
||||||
|
|
||||||
Es gibt viele verschiedene Definitionen für Metadaten, je nach Perspektive \(z.B. der IT, der KatalogbastlerInnen, der BibliothekarInnen usw.\). Grundsätzlich sind es \(vgl. Folie 13\) **strukturierte "Daten über Daten"**, also eine formale Beschreibung einer Vielzahl von Dingen \(Texte, Bilder, Objekte, Personen, usw.\). Metadaten sollen u.a. das Auffinden, Identifizieren, Auswählen und den Zugang zu einer Ressource erleichtern. Metadaten können getrennt vom beschriebenen Objekt in einer separaten Datei gespeichert oder in das Objekt eingebettet sein. Bilddateien wie JPG enthalten zum Beispiel eingebettete Metadaten \(Aufnahmedatum, Auflösung usw.\).
|
|
||||||
|
|
||||||
Da die Anforderungen an Metadaten kontextabhängig sind, gibt es eine Vielzahl an Standards, die sich entwickelt haben. Beispiele im Bibliothekswesen sind **PICA, MODS, DC, MAB, MARC21, METS, EAD, TEI, LIDO **\(vgl. Folie 44\). Diese Standards können technisch in verschiedenen Formaten \(Text, XML\) umgesetzt werden. Die Regeln der Standards werden oft in einem **Schema** dokumentiert, mit dem sich prüfen lässt, ob eine Datei \(technisch\) standardkonform ist. Wenn eine Anwendung genauere Festlegungen treffen will oder gar Elemente aus verschiedenen Standards kombiniert werden sollen, dann wird dies in einem ** Anwendungsprofil ** festgelegt \(vgl. Folie 59\).
|
|
||||||
|
|
||||||
Um Metadaten aus verschiedenen Quellen zusammenzuführen, ist meist ein "Übersetzen" der Daten aus verschiedenen Quellschemas \(MARC21, PICA\) in ein einheitliches Zielschema notwendig. Dieser Prozess wird **Mapping \(oder auch "Crosswalk"\)** genannt. Dabei gehen je nach Schema mehr oder weniger Informationen verloren. Es gibt Standard-Crosswalks zwischen Metadatenstandards, die als Grundlage dienen können. Da aber jede Einrichtung die Daten etwas anders erfasst \(ist ja nur menschlich\), lohnt es sich immer in die Daten zu schauen, wie die einzelnen Metadatenfelder wirklich befüllt sind. Die meisten Mappings werden daher teils auf Basis von Standard-Crosswalks, teils auf Basis von Beispieldaten erstellt \(zu Problemen beim "Mapping in der Praxis" vgl. die Folien 70ff\).
|
|
||||||
|
|
||||||
## Schnittstellen
|
|
||||||
|
|
||||||
Für den Austausch von Metadaten gibt es **Schnittstellen wie Z39.50, SRU oder OAI-PMH** \(vgl. Folie 86ff\). Die Anbieter erstellen in der Regel ausgehend von ihrem internen Datenformat die übrigen "Exportformate" automatisch. Dazu werden Übereinstimmungen zwischen den Feldern definiert, die wie gesagt als Mapping oder [Crosswalk](https://en.wikipedia.org/wiki/Schema_crosswalk) bezeichnet werden. Wenn nicht alle Daten aus dem internen Datenformat in das Zielformat passen \(wie zum Beispiel beim "kleinsten gemeinsamen Nenner" der Metadatenformate: Dublin Core\), dann gehen bei diesem Prozess Informationen verloren. Wenn alle Daten "verlustfrei" verarbeitet werden sollen, muss also grundsätzlich entweder mit dem internen \(auch: [nativ](http://www.duden.de/rechtschreibung/nativ)en\) Datenformat gearbeitet werden oder es muss genau \(in der Dokumentation\) geprüft werden, ob der Crosswalk zum Zielformat wirklich vollständig ist. Das Abrufen der Daten über Schnittstellen wird **"Harvesting"** genannt.
|
|
||||||
|
|
||||||
## Aggregatoren
|
|
||||||
|
|
||||||
Viele Non-Profit-Einrichtungen sammeln Daten aus verschiedensten Quellen, um diese gebündelt und in einem einheitlichen Schema zur Verfügung zu stellen. Der Prozess wird oft als Aggregieren, die Datenbereitsteller als Aggregatoren bezeichnet. Beispiele:
|
|
||||||
|
|
||||||
* Bibliotheksverbünde: Lokale Bibliotheksdaten, teilweise auch Bereitsteller von Indizes \(wie GBV Zentral\)
|
|
||||||
* CrossRef: Artikel aus elektronischen Zeitschriften mit DOIs
|
|
||||||
* Bielefeld Academic Search Engine \(BASE\): Inhalte aus Repositorien \(vorwiegend Open Access\)
|
|
||||||
* Deutsche Digitale Bibliothek bzw. Europeana
|
|
||||||
|
|
||||||
## Metadateninteroperabilität
|
|
||||||
|
|
||||||
* die Einigung auf ein einziges übergreifendes Metadatenformat ist nicht realistisch, weil verschiedene Ressourcen beschrieben werden sollen und verschiedene Anforderungen an die Daten gestellt werden \(und weil unterschiedliche Katalogisierungstraditionen bestehen\)
|
|
||||||
* Eine Interoperabilität zwischen Formaten muss durch Werkzeuge erreicht werden
|
|
||||||
* setzt offene Standards voraus
|
|
||||||
|
|
||||||
Die "Open Bibliographic Data Working Group" der Open Knowledge Foundation hat 2011 Prinzipien zu offenen bibliografischen Daten veröffentlicht \(vgl. [Webseite im Internet Archive](http://web.archive.org/web/20160426071002/http://openbiblio.net/principles/)\):
|
|
||||||
|
|
||||||
* Grundlage: [Open Definition](http://opendefinition.org) "Wissen ist offen, wenn jedeR darauf frei zugreifen, es nutzen, verändern und teilen kann"
|
|
||||||
* Empfohlene Lizenzen: Public Domain Dedication and License \(PDDL\) oder Creative Commons Zero \(CC0\)
|
|
||||||
|
|
||||||
Gemeinsam mit der Public Domain Working Group ist ein "Open Metadata Handbook" entstanden. Letzte stabile Version vom 12.3.2014: [https://en.wikibooks.org/w/index.php?title=Open\_Metadata\_Handbook&stable=1](https://en.wikibooks.org/w/index.php?title=Open_Metadata_Handbook&stable=1).
|
|
||||||
|
|
||||||
## Literatur {#literatur}
|
|
||||||
|
|
||||||
* Wikipedia zu Metadaten: [https://de.wikipedia.org/wiki/Metadaten](https://de.wikipedia.org/wiki/Metadaten)
|
|
||||||
* Onlinetutorial "Einführung in Metadaten und Metadatenformate" von Claudia Effenberger und Stefanie Rühle: [http://moodle.dnb.de/course/view.php?id=14](http://moodle.dnb.de/course/view.php?id=14)
|
|
||||||
* Kleines Handbuch der DINI AG KIM: [http://www.kim-forum.org/Subsites/kim/DE/Materialien/Handbuch/handbuch\_node.html](http://www.kim-forum.org/Subsites/kim/DE/Materialien/Handbuch/handbuch_node.html)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
# 1.5 Übung: Metadaten über eine SRU-Schnittstelle laden
|
|
||||||
|
|
||||||
Das Projekt [swissbib](https://www.swissbib.ch) 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.
|
|
||||||
|
|
||||||
In der folgenden Übung nutzen wir die SRU-Schnittstelle \(SRU steht für [Search/Retrieve via URL](http://www.loc.gov/standards/sru/)\).
|
|
||||||
|
|
||||||
## Aufgabe 1: 10 Records über die SRU-Schnittstelle von swissbib laden {#aufgabe-1-100-records-über-die-sru-schnittstelle-laden}
|
|
||||||
|
|
||||||
Lesen Sie die [Dokumentation zur SRU-Schnittstelle von Swissbib](http://www.swissbib.org/wiki/index.php?title=SRU) und stellen Sie eine Abfrage mit folgenden Parametern zusammen:
|
|
||||||
|
|
||||||
* Katalog der Bibliothek der HTW Chur
|
|
||||||
* Suche über alle Felder nach Suchbegriff: `open`
|
|
||||||
* Format:`MARC XML - swissbib`
|
|
||||||
|
|
||||||
Sie können dazu das Formular auf der Webseite [http://sru.swissbib.ch](http://sru.swissbib.ch) verwenden oder die URL anhand der Dokumentation selbst zusammenbauen.
|
|
||||||
|
|
||||||
## Aufgabe 2: Laden Sie die gleichen Daten in anderen Formaten \(z.B. Dublin Core\) und vergleichen Sie
|
|
||||||
|
|
||||||
Tipp: Öffnen Sie zwei Browserfenster nebeneinander, um die Unterschiede leichter sehen zu können.
|
|
||||||
|
|
||||||
![](../images/swissbib-sru.png)
|
|
||||||
|
|
||||||
## Aufgabe 3: Speichern der Daten mit curl
|
|
||||||
|
|
||||||
Sie können die heruntergeladenen Daten direkt aus dem Browser als Datei abspeichern oder mit dem in Kapitel 1.3 kennengelernten Programm curl herunterladen.
|
|
||||||
|
|
||||||
Beispiel marcxml:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl "http://sru.swissbib.ch/sru/search/defaultdb?query=+dc.possessingInstitution+%3D+E27&operation=searchRetrieve&recordSchema=info%3Asrw%2Fschema%2F1%2Fmarcxml-v1.1-light&maximumRecords=10&startRecord=0&recordPacking=XML&availableDBs=defaultdb&sortKeys=Submit+query" > htw-chur-open-10-marc.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
Beispiel dc:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl "http://sru.swissbib.ch/sru/search/defaultdb?query=+dc.anywhere+%3D+open+AND+dc.possessingInstitution+%3D+E27&operation=searchRetrieve&recordSchema=info%3Asru%2Fschema%2F1%2Fdc-v1.1-light&maximumRecords=10&startRecord=0&recordPacking=XML&availableDBs=defaultdb&sortKeys=Submit+query" > htw-chur-open-10-dc.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
# 1.6 Metadaten ansehen mit OpenRefine
|
|
||||||
|
|
||||||
[OpenRefine](http://www.openrefine.org) bietet eine grafische Oberfläche zur Analyse und Transformation von Daten, die ähnlich wie eine klassische Tabellenverarbeitungssoftware (MS Excel, LibreOffice Calc, usw.) aufgebaut ist. Wir nutzen diese Software im Seminar, weil sich mit der vertrauten grafischen Oberfläche im Tabellenformat ein schneller Überblick über die Daten gewinnen lässt und die Software mit verschiedenen Datenformaten umgehen kann.
|
|
||||||
|
|
||||||
Dem [Repository bei GitHub](https://github.com/OpenRefine/OpenRefine/graphs/contributors) ist zu entnehmen, wer wann zur Entwicklung der Software beigetragen hat. Aktuell gibt es wieder eine kontinuierliche Weiterentwicklung insbesondere in Verbindung mit Funktionen zur Nutzung von [Wikidata](https://www.wikidata.org).
|
|
||||||
|
|
||||||
## OpenRefine herunterladen und entpacken
|
|
||||||
|
|
||||||
Auf der Webseite von OpenRefine werden verschiedene Varianten zum [Download](http://openrefine.org/download.html) angeboten. Wir laden die Version OpenRefine 2.7 für das Betriebssystem Linux. Die Installationsanleitung auf der Webseite ist simpel: "Download, extract, then type ./refine to start."
|
|
||||||
|
|
||||||
Wir erledigen dies wieder mit der Kommandozeile \(MATE-Terminal\):
|
|
||||||
|
|
||||||
* Download:
|
|
||||||
`wget https://github.com/OpenRefine/OpenRefine/releases/download/2.7/openrefine-linux-2.7.tar.gz`
|
|
||||||
* Extract \(entpacken\):
|
|
||||||
`tar -xzf openrefine-linux-2.7.tar.gz`
|
|
||||||
|
|
||||||
Im Ordner `openrefine-2.7` finden Sie jetzt das Programm OpenRefine.
|
|
||||||
|
|
||||||
Als Standardeinstellung verwendet OpenRefine maximal 1400M Arbeitsspeicher. Wenn beim Import oder bei der Transformation der Speicher ausgeht (Absturz und entsprechende Meldungen im Terminal), kann dieser Wert erhöht werden. Die Einstellung ist in der Datei ```refine.ini``` in der Zeile ```REFINE_MEMORY=1400M``` mit einem Texteditor (hier beispielsweise Anwendungen/Zubehör/Pluma Text Editor) vorzunehmen.
|
|
||||||
|
|
||||||
## OpenRefine starten
|
|
||||||
|
|
||||||
```
|
|
||||||
~/openrefine-2.7/refine
|
|
||||||
```
|
|
||||||
|
|
||||||
Die Tilde \(`~`\) ist ein Kürzel für ihr Benutzerverzeichnis. Dieser Befehl funktioniert immer, egal in welchem Verzeichnis Sie sich gerade befinden. Wenn Sie sich im Ordner von OpenRefine befinden \(`cd ~/openrefine-2.7`\) reicht ein simples `refine`
|
|
||||||
|
|
||||||
Ist der Startvorgang erfolgreich, dann öffnet sich der Browser \(Firefox\) automatisch und Sie bekommen das Programm direkt angezeigt. OpenRefine ist in der Standardeinstellung unter der IP-Adresse [http://127.0.0.1:3333](http://127.0.0.1:3333) erreichbar.
|
|
||||||
|
|
||||||
Rufen Sie zunächst den Menüpunkt "Open Project" auf und klicken Sie ganz unten auf den Link "Browse workspace directory". Es öffnet sich der Ordner, in dem OpenRefine die Daten speichert. In der Standardkonfiguration unter Linux ist dies das Verzeichnis ```~/.local/share/openrefine```.
|
|
||||||
|
|
||||||
## Übung: Daten aus Kapitel 1.5 in OpenRefine laden
|
|
||||||
|
|
||||||
Im Menüpunkt "Create Project" auf den Button "Durchsuchen" klicken und eine der in Kapitel 1.5 gespeicherten XML-Dateien auswählen. Im nächsten Bildschirm unten links bei Parse data as "XML files" auswählen, dann im Vorschaubildschirm auf den Pfad ```<record xmlns:xs="http://www.w3.org/2001/XMLSchema">``` klicken und dann oben rechts den Button "Create Project" drücken.
|
|
||||||
|
|
||||||
OpenRefine "versteht" das MARC-Format nicht. Es interpretiert die Daten daher genauso wie jede andere XML-Datei. Wenn Sie die Daten erstmalig in OpenRefine öffnen, sehen Sie daher die üblichen Nummern und Codes für die jeweiligen MARC-Felder in der Baumstruktur der XML-Datei.
|
|
||||||
|
|
||||||
Die Bedeutung der MARC-Nummern und Codes müssen Sie nachschlagen. Zur Orientierung können Sie beispielsweise die [Arbeitstabelle der Deutschen Nationalbibliothek](http://www.dnb.de/SharedDocs/Downloads/DE/DNB/standardisierung/marc21FeldbeschreibungTitelExcel032016.zip) in der [Dokumentation des MARC21-Formats](http://www.dnb.de/DE/Standardisierung/Formate/MARC21/marc21_node.html) verwenden.
|
|
||||||
|
|
||||||
## Übung: Verschaffen Sie sich einen Überblick über die Daten(struktur) mit Hilfe von Facetten und Text Filtern
|
|
||||||
|
|
||||||
* Schauen Sie sich die Einführungsvideos zu OpenRefine an, insbesondere die ca. [7-Minuten-Kurzeinführung bei YouTube](https://www.youtube.com/watch?v=B70J_H_zAWM)
|
|
||||||
* Konsultieren Sie die [Seite zur Facettierung in der Dokumentation von OpenRefine](https://github.com/OpenRefine/OpenRefine/wiki/Faceting) und probieren Sie verschiedene Facetten aus.
|
|
||||||
* Gute Übungen zum Einstieg bietet auch Library Carpentry OpenRefine: [Basic OpenRefine Functions I: Working with columns, sorting, faceting, filtering and clustering](https://data-lessons.github.io/library-openrefine/03-basic-functions-I/)
|
|
||||||
|
|
||||||
## OpenRefine beenden
|
|
||||||
|
|
||||||
OpenRefine ist nur solange verfügbar, wie der oben verwendete Befehl in der Kommandozeile läuft.
|
|
||||||
|
|
||||||
1. Beenden Sie OpenRefine mit ```STRG``` und ```C``` auf der Kommandozeile. Der Browser schließt sich automatisch.
|
|
||||||
2. Starten Sie OpenRefine erneut, indem Sie auf der Kommandozeile mit der ```Pfeiltaste nach oben``` den vorigen Befehl auswählen und mit ```Enter``` ausführen.
|
|
||||||
|
|
||||||
Auf der Kommandozeile können Sie übrigens mitverfolgen, wie der Browser und OpenRefine miteinander kommunizieren. Beim Aufruf von OpenRefine im Browser erscheinen beispielsweise die folgenden POST und GET Befehle in der Kommandozeile:
|
|
||||||
|
|
||||||
```
|
|
||||||
15:10:34.819 [ refine] POST /command/core/load-language (19332ms)
|
|
||||||
15:10:34.940 [ refine] POST /command/core/load-language (121ms)
|
|
||||||
15:10:35.223 [ refine] POST /command/core/get-importing-configuration (283ms)
|
|
||||||
15:10:35.509 [ refine] GET /command/core/get-all-project-metadata (286ms)
|
|
||||||
15:10:35.632 [ refine] GET /command/core/get-languages (123ms)
|
|
||||||
15:10:35.721 [ refine] GET /command/core/get-version (89ms)
|
|
||||||
```
|
|
||||||
|
|
||||||
OpenRefine führt alle Datentransformationen im Arbeitsspeicher durch und speichert die veränderten Daten automatisch alle 5 Minuten auf die Festplatte. Beim manuellen Beenden in der Kommandozeile werden ebenfalls alle Daten gespeichert. Verwenden Sie also stets die oben beschriebene Vorgehensweise mit ```STRG``` und ```C``` um OpenRefine ordnungsgemäß herunterzufahren. Ansonsten könnten Sie die Änderungen der (maximal) letzten 5 Minuten verlieren.
|
|
19
kapitel-2.md
|
@ -1,19 +0,0 @@
|
||||||
# Kapitel 2: Bibliotheks- und Archivsysteme
|
|
||||||
|
|
||||||
Die Sitzung am 5. Oktober haben Sven Koesling und Michael Gasser von der ETH Zürich gestaltet. Sven Koesling leitet den Bereich IT-Services an der ETH-Bibliothek und Michael Gasser leitet den Bereich Archive an der ETH-Bibliothek. Sie haben einen ausführlichen Praxiseinblick in die an der ETH-Bibliothek verwendeten Bibliotheks- und Archivsysteme gegeben. Hier im Skript werden diejenigen Kernpunkte dokumentiert, die für das weitere Verständnis des Kursus von besonderer Bedeutung sind.
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 4 Stunden Zeit:
|
|
||||||
|
|
||||||
* [2.1 Metadatenflüsse der ETH-Bibliothek](/kapitel-2/21_metadatenflusse-der-eth-bibliothek.md)
|
|
||||||
* [2.2 Datenstruktur von Archivsystemen](/kapitel-2/22_datenstruktur-von-archivsystemen.md)
|
|
||||||
* [2.3 Online-Präsentation von Digitalisaten](/kapitel-2/23_online-praesentation-von-digitalisaten.md)
|
|
||||||
* [2.4 Discovery-System Wissensportal](/kapitel-2/24_discovery-system-wissensportal.md)
|
|
||||||
* [2.5 Datenbereitstellung für externe Portale](/kapitel-2/25_datenbereitstellung-fur-externe-portale.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [Gastvortrag der ETH-Bibliothek](https://elenasdiscovery.wordpress.com/2017/10/30/gastvortrag-der-eth-bibliothek/)
|
|
||||||
* Marina Hess: [Gastvortrag ETH Zürich](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/gastvortrag-eth/)
|
|
||||||
* Franziska Neuenschwander: [ETH-Bibliothek und Hochschularchiv (Gastvortrag 5.10)](https://bainblogweb.wordpress.com/2017/10/09/eth-bibliothek-und-hochschularchiv-gastvortrag-5-10/)
|
|
||||||
* Moreno Pontoriero: [Geschichten aus Zürich](https://morenoexplores.wordpress.com/2017/10/14/geschichten-aus-zuerich/)
|
|
||||||
* Aline Strauss: [Vom Findmittel zur vernetzten Informationsquelle 05/10/17](https://alinesbiblio.wordpress.com/2017/11/01/vom-findmittel-zur-vernetzten-informationsquelle-051017/)
|
|
|
@ -1,27 +0,0 @@
|
||||||
# 2.1 Metadatenflüsse der ETH-Bibliothek
|
|
||||||
|
|
||||||
Mit zunehmenden Anforderungen an die Verwaltung und Präsentation von Bibliotheks- und Archivressourcen wurden im Laufe der Zeit zahlreiche neue Systeme an der [ETH-Bibliothek](https://www.library.ethz.ch) eingeführt. Es war nicht mehr möglich alle Ressourcen ausschließlich im integrierten Bibliothekssystem bzw. im Archivinformationssystem zu verwalten. Heute gibt es eine Trennung unter anderem zwischen Metadatenhaltung (getrennt für Bibliotheks- und Archivressourcen), Discovery, Online-Präsentation und digitaler Langzeitarchivierung.
|
|
||||||
|
|
||||||
## Produkte an der ETH-Bibliothek
|
|
||||||
|
|
||||||
Folgende zentrale Produkte werden derzeit an der ETH-Bibliothek eingesetzt:
|
|
||||||
|
|
||||||
* Integriertes Bibliothekssystem: [Aleph](http://www.exlibrisgroup.com/de/category/ExLibrisAleph)
|
|
||||||
* Archivinformationssystem): [CMISTAR](https://www.cmiag.ch/cmistar)
|
|
||||||
* Discovery-System: [Primo](http://www.exlibrisgroup.com/de/category/Primo)
|
|
||||||
* Online-Präsentation von Digitalisaten: [Visual Library](https://www.semantics.de/visual_library/)
|
|
||||||
* Digitale Langzeitarchivierung: [Rosetta](http://www.exlibrisgroup.com/de/category/Rosetta)
|
|
||||||
|
|
||||||
## Datenfluss von Quellsystemen ins "Wissensportal"
|
|
||||||
|
|
||||||
Die Metadaten der ETH-Bibliothek werden in mehreren Quellsystemen verwaltet. Um eine übergreifende Suche für die Nutzer zu ermöglichen, werden alle Ressourcen im Discovery-System Primo (an der ETH "[Wissensportal](http://www.library.ethz.ch/de/)" genannt) zusammengeführt.
|
|
||||||
|
|
||||||
Das erfordert eine Transformation der Daten in einheitliches Format. Dieser Prozess der Vereinheitlichung wird auch "Normalisierung" genannt.
|
|
||||||
|
|
||||||
## Metadatenflussdiagramm der ETH Bibliothek (Stand: 1.9.2016)
|
|
||||||
|
|
||||||
Das folgende Diagramm visualisiert die Datenflüsse zwischen den Systemen.
|
|
||||||
|
|
||||||
![Metadatenflussdiagramm](../images/metadatenfluss-eth-bibliothek-2016-09.png)
|
|
||||||
|
|
||||||
Quelle: Judith Bisseger & Barbara Wittwer (1.9.2016): Metadatenmanagement. Die ETH-Bibliothek beschreitet neue Wege. Präsentation auf dem BIS-Kongress 2016 in Luzern. <https://www.slideshare.net/ETH-Bibliothek/metadatenmanagement-die-ethbibliothek-beschreitet-neue-wege>
|
|
|
@ -1,64 +0,0 @@
|
||||||
# 2.2 Datenstruktur von Archivsystemen
|
|
||||||
|
|
||||||
Als digitale Archivsysteme entwickelt wurden, orientierte sich die Datenstruktur an analogen Findmitteln wie Findbüchern und Zettelkästen. Zahlreiche Elemente dieser analogen Form der archivischen Erschliessung wirken in den Normen, die für die computergestützte Verzeichung entwickelt wurden, bis heute nach.
|
|
||||||
|
|
||||||
## Verzeichnungsstandard ISAD\(G\)
|
|
||||||
|
|
||||||
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%28G). Grundsätzlich gibt es hier eine mehrstufige Verzeichnung im Provenienzprinzip, um den Entstehungszusammenhang abzubilden.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
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%28CPF%29) verabschiedet. Dieser wird in der Praxis wegen dem Zusatzaufwand bei der Erschließung jedoch nur selten verwendet. Die ETH-Bibliothek führt Register für Personen, Körperschaften, Orte und Sachen auch im Archivbereich nach bibliothekarischen Regeln, d.h. mit Rollenkennzeichnung nach RDA und Verzeichnung von GND-IDs.
|
|
||||||
|
|
||||||
Aktuell ist ein neuer Standard "Records in Contexts" \([RIC](https://de.wikipedia.org/wiki/Records_in_Contexts)\) in Entwicklung. Dieser zielt auf eine Weiterentwicklung in Richtung Linked Data und soll neue und mehrfache Beziehungen zwischen Entitäten ermöglichen. Bis dieser neue Standard in Archivsystemen verwendet wird, werden jedoch voraussichtlich noch einige Jahre vergehen.
|
|
||||||
|
|
||||||
## Archivinformationssysteme
|
|
||||||
|
|
||||||
Der Markt in der Schweiz wird von den Produkten [scope.Archiv](http://www.scope.ch) und [CMISTAR](https://www.cmiag.ch/cmistar) dominiert. An der ETH-Bibliothek wird das Produkt CMISTAR eingesetzt. Es ist Grundlage des [Hochschularchivs der ETH Zürich](http://www.library.ethz.ch/Ressourcen/Archivalien-Dokumentationen/Hochschularchiv-der-ETH-Zuerich), des [Thomas-Mann-Archivs](http://www.tma.ethz.ch/) und des [Max Frisch-Archivs](http://www.mfa.ethz.ch/). Als Datenmodell kommt der genannte ISAD\(G\)-Standard zum Einsatz.
|
|
||||||
|
|
||||||
Das System bietet Möglichkeiten zum Import von Daten \(z.B. bei Retroerfassung auf Basis von Excel\) sowie einen parametrisierbaren Datenexport über ein Publikationsmodul, das XML-Dateien generiert. Dieser Datenexport wird in das "Wissensportal" der ETH-Bibliothek eingespielt.
|
|
||||||
|
|
||||||
Hier ein Beispiel aus dem Hochschularchiv der ETH Zürich, aus der die Verzeichnungsstruktur ersichtlich ist:
|
|
||||||
|
|
||||||
![](../images/eth-archivdatenbank-beispiel.png)
|
|
||||||
|
|
||||||
## Übung: Ein Vergleich aus Nutzersicht
|
|
||||||
|
|
||||||
Suche nach:
|
|
||||||
|
|
||||||
1. «Einstein» im [Online Archivkatalog des Staatsarchivs BS](https://query.staatsarchiv.bs.ch/query/suchinfo.aspx)
|
|
||||||
2. «Einstein Ehrat» in der [Archivdatenbank Online, Hochschularchiv ETH Zürich](http://archivdatenbank-online.ethz.ch)
|
|
||||||
|
|
||||||
Beantworten Sie für sich die folgenden Fragen:
|
|
||||||
|
|
||||||
* Welche Informationen werden auf der Trefferliste präsentiert?
|
|
||||||
* Welche Verzeichnungsstufen sind vertreten?
|
|
||||||
* Sind die ISAD\(G\)-Informationsbereiche erkennbar?
|
|
||||||
* Decken sich die grundlegenden Informationen oder gibt es bemerkenswerte Unterschiede?
|
|
||||||
* Worin liegen die zentralen Unterschiede zu einem Bibliothekskatalog?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
# 2.3 Online-Präsentation von Digitalisaten
|
|
||||||
|
|
||||||
Für die Präsentation von digitalisiertem Archivgut kommen verschiedene Ansätze und Plattformen in Frage. Diese verfolgen unterschiedliche Ansätze abhängig von Medienform und Zielgruppe.
|
|
||||||
|
|
||||||
## Präsentation im Archivinformationssystem
|
|
||||||
|
|
||||||
* Vorschaubild in der Treffer- und/oder Detailansicht
|
|
||||||
* Viewer für Zusatzfunktionen \(Zoom, Druck, Download etc.\)
|
|
||||||
|
|
||||||
### Beispiel [Staatsarchiv Basel-Stadt](https://query.staatsarchiv.bs.ch/query/detail.aspx?ID=84077)
|
|
||||||
|
|
||||||
![Staatsarchiv Basel-Stadt](../images/staatsarchiv-basel-stadt.png)
|
|
||||||
|
|
||||||
### Beispiel [Landesarchiv Baden-Württemberg](https://www2.landesarchiv-bw.de/ofs21/olf/struktur.php?bestand=20501&sprungId=1412361&letztesLimit=suchen)
|
|
||||||
|
|
||||||
![Landesarchiv Baden-Württemberg](../images/landesarchiv-baden-wuerttemberg.png)
|
|
||||||
|
|
||||||
## Präsentation in Digital Asset Management Systemen
|
|
||||||
|
|
||||||
Für Anzeige und Zugriff auf digital assets optimiert:
|
|
||||||
|
|
||||||
* Hohe Skalierbarkeit
|
|
||||||
* Download in unterschiedlichen Auflösungen
|
|
||||||
* Download in Abhängigkeit vom Rechtevermerk
|
|
||||||
|
|
||||||
### Beispiel [E-Pics Plattform der ETH Zürich](https://www.e-pics.ethz.ch/de/home/)
|
|
||||||
|
|
||||||
[Bildarchiv Online](http://ba.e-pics.ethz.ch) mit rund 390’000 Digitalisaten \(Stand Ende September 2017\):
|
|
||||||
|
|
||||||
![Bildarchiv Online](../images/bildarchiv-online.png)
|
|
||||||
|
|
||||||
## Präsentation von Handschriften und alten Drucken
|
|
||||||
|
|
||||||
### Beispiel [e-manuscripta.ch](http://www.e-manuscripta.ch) - Kooperative Präsentationsplattorm für handschriftliche Quellen
|
|
||||||
|
|
||||||
* Digitalisate aus mehreren Instiutionen \(ZB Zürich, UB Basel, ETH-Bibliothek u. a. m.\)
|
|
||||||
* Höheres Volumen stärkt Sichtbarkeit und Attraktivität
|
|
||||||
* Geteilte Kosten für Betrieb und Weiterentwicklung
|
|
||||||
* Koordination: ZB Zürich, Hosting: ETH-Bibliothek
|
|
||||||
* Laufendes Projekt: Erweiterung um ein crowdfähiges Transkriptionsmodul
|
|
||||||
* System: Visual Library der Firma semantics GmbH
|
|
||||||
* Angebundene Quellsysteme \(mit Rückverlinkung\):
|
|
||||||
* Aleph, Modul des Verbundes Handschriften, Archive, Nachlässe \(HAN\)
|
|
||||||
* scopeArchiv \(Schweizerisches Literaturarchiv\)
|
|
||||||
* CMISTAR \(Hochschularchiv der ETH Zürich\)
|
|
||||||
* analog dazu [e-rara.ch](http://www.e-rara.ch/) für alte Drucke
|
|
||||||
|
|
||||||
![e-manuscripta.ch](../images/e-manuscripta.png)
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
# 2.4 Discovery-System Wissensportal
|
|
||||||
|
|
||||||
Wie in [Kapitel 2.1](21_metadatenflusse-der-eth-bibliothek.md) beschrieben, werden alle Ressourcen im "Wissensportal" zusammengeführt, um eine übergreifende Suche für die Nutzer zu ermöglichen. Das [Wissensportal](http://www.library.ethz.ch/) ist das zentrale Discovery-Tool für Recherchen in den Informationsquellen der ETH-Bibliothek. Es integriert Daten aus dem Bibliothekssystem Aleph und mehreren Fachanwendungen. Das Discovery-System ist mit dem Produkt [Primo](http://www.exlibrisgroup.com/de/category/Primo) realisiert.
|
|
||||||
|
|
||||||
## Zweck des Discovery-Systems
|
|
||||||
|
|
||||||
* Verbesserung der Suchfunktionen des OPACs
|
|
||||||
* Integration aller Ressourcen (nicht nur klassische Bibliotheksdaten) in eine Suchoberfläche
|
|
||||||
* Zusätzliche lizenzpflichtige Ressourcen können direkt von den Herstellern bezogen und im Discovery-Tool nachgewiesen werden
|
|
||||||
|
|
||||||
## Datenfluss ins Wissensportal
|
|
||||||
|
|
||||||
Datenquellen kommen über sogenannte "Pipes" ins System, die in Primo konfiguriert werden können:
|
|
||||||
1. Harvesting (via Dateisystem oder OAI)
|
|
||||||
2. Normalisierung der Daten und Speicherung in eigenem Format (PNX)
|
|
||||||
3. Indexierung der Daten
|
|
||||||
|
|
||||||
Bei der Normalisierung der Daten für die übergreifende Suche im Wissensportal ist ein Informationsverlust nicht immer zu vermeiden. Gleichzeitig werden bei der Zusammenführung ins "Wissensportal" auch Daten (z.B. aus Normdaten) angereichert, so dass für bestimmte Daten auch ein Informationsgewinn im Vergleich zum Quellsystem entstehen kann.
|
|
||||||
|
|
||||||
## Beispiel Hochschularchiv
|
|
||||||
|
|
||||||
Die Daten des Hochschularchivs werden von der Software Primo über eine spezielle OAI-PMH-Schnittstelle (vgl. dazu [Kapitel 2.5](25_datenbereitstellung-fur-externe-portale.md)) der Archivsoftware CMISTAR eingesammelt.
|
|
||||||
|
|
||||||
Dabei müssen die hierarchisch gegliederten Erschließungsinformationen (nach ISAD(G)) in eine flache Struktur gebracht werden. Dazu wird jede Verzeichnungseinheit innerhalb der Tektonik als einzelner Datensatz im Wissensportal abgebildet.
|
|
||||||
|
|
||||||
## Übung: Vergleich Archivsystem und Discovery-System
|
|
||||||
|
|
||||||
Vergleichen Sie die Einträge im Archivsystem und im Wissensportal am Beispiel einer Postkarte von Albert Einstein an Alfred Stern.
|
|
||||||
|
|
||||||
1. [Datensatz im Archivsystem](http://archivdatenbank-online.ethz.ch/hsa/#/content/d8edf79020994271b0b8289728f7624d)
|
|
||||||
2. [Datensatz im Wissensportal](http://www.library.ethz.ch/DADS:default_scope:cmistard8edf79020994271b0b8289728f7624d) (siehe auch: [Internes Format (PNX)](http://www.library.ethz.ch/DADS:default_scope:cmistard8edf79020994271b0b8289728f7624d&showPnx=true))
|
|
||||||
|
|
||||||
Fragen:
|
|
||||||
|
|
||||||
* Wie werden Informationen zur Erschließungshierarchie im Wissensportal abgebildet? (in der Trefferliste und in der Detailansicht)
|
|
||||||
* Welche Informationen fließen in die Facetten des Wissensportals ein?
|
|
||||||
* Fehlen Ihnen im Wissensportal entscheidende Informationen?
|
|
||||||
* Welche Art der beiden Suchen und Anzeigen bevorzugen Sie? Weshalb?
|
|
||||||
|
|
||||||
## Diskussion: Discovery oder Spezialdatenbank?
|
|
||||||
|
|
||||||
Um zu klären, welche Metadaten in das Discovery-System (hier: Wissensportal) übernommen werden, muss geklärt werden, welche Informationen zu welchem Zeitpunkt für die Nutzer relevant sind. Es gibt unterschiedliche Erwartungen der Nutzer, welche Informationen Sie in den verschiedenen Rechercheangeboten erhalten.
|
|
||||||
|
|
||||||
Das Wissensportal der ETH-Bibliothek ist als übergreifende Suche konzipiert, während die weiteren Recherchesysteme als Spezialdatenbanken für vertiefende Recherchen gedacht sind. Das Discovery-System soll unter anderem durch die Zusammenführung von unterschiedlichen Bibliotheks- und Archivressourcen das Prinzip der [Serendipity](https://de.wikipedia.org/wiki/Serendipit%C3%A4t) unterstützen.
|
|
||||||
|
|
||||||
Diesem Konzept folgend wird im Wissensportal aus allen Systemen eine leicht reduzierte Informationsmenge zusammengeführt, quasi den "größten gemeinsamen Nenner". Gleichzeitig werden Informationen wie beispielsweise Cover für eine visuelle Orientierung sowie Verfügbarkeitsinformationen bei der Zusammenführung ergänzt.
|
|
|
@ -1,32 +0,0 @@
|
||||||
# 2.5 Datenbereitstellung für externe Portale
|
|
||||||
|
|
||||||
## Ziele
|
|
||||||
|
|
||||||
* Mehrwert für Benutzende schaffen: Übergreifende Suche
|
|
||||||
* Eigene Sichtbarkeit und Reichweite erhöhen
|
|
||||||
* Dahin gehen, wo die Nutzer sind
|
|
||||||
|
|
||||||
## Beispiel Archivportale
|
|
||||||
|
|
||||||
Es existiert eine facettenreiche (Archiv-)Portallandschaft. Ein Überblick ist kürzlich (September 2017) im [Whitepaper Portale](http://vsa-aas.ch/ressourcen/zugang-und-vermittlung/whitepaper-portale/) des Vereins Schweizerischer Archivarinnen und Archivare erschienen.
|
|
||||||
|
|
||||||
Der Fokus der ETH-Bibliothek liegt auf dem Bereitstellen einer OAI-PMH-Schnittstelle, damit Portale die Daten "einsammeln" können. Für die Integration der Daten ins Portal [Archives Portal Europe](https://www.archivesportaleurope.net) generiert die Archivsoftware CMISTAR das Format EAD2002 und bietet es über eine OAI-PMH-Schnittstelle an. Das Archives Portal Europe sammelt diese Daten dann regelmäßig ein.
|
|
||||||
|
|
||||||
## OAI-PMH
|
|
||||||
|
|
||||||
Im Jahr 2000 hat die internationale [Open Archives Initiative](http://www.openarchives.org/) ein Protokoll verabschiedet, um die Interoperabilität zwischen Repositorien von Bibliotheken zu verbessern.
|
|
||||||
|
|
||||||
Das OAI Protocol for Metadata Harvesting ([OAI-PMH](https://www.openarchives.org/OAI/openarchivesprotocol.html)) organisiert den Datenaustausch zwischen Data Providern und Service Providern und bietet unter anderem folgende Funktionen:
|
|
||||||
|
|
||||||
* Anfrage: Einfaches Set an OAI-PMH requests (ListRecords, GetRecord ...)
|
|
||||||
* Antwort: XML-codierte Ausgabe
|
|
||||||
* Selektives Harvesting dank Zeitstempel (z. B. alle Datensätze ab dem 29.09.2017)
|
|
||||||
* Format der Datensätze kann unterschiedlich sein: Dublin Core, MARC, EAD usw.
|
|
||||||
|
|
||||||
## Beispiel einer OAI-PMH-Schnittstelle
|
|
||||||
|
|
||||||
Es gibt viele verschiedene Software-Implementierungen des OAI-PMH-Standards. Eine [Übersicht von Tools](https://www.openarchives.org/pmh/tools/) wird auf der Webseite der Open Archives Initiative geführt.
|
|
||||||
|
|
||||||
Repositoriensoftware wie die Archivsoftware CMISTAR haben oftmals eine OAI-PMH-Schnittelle integriert. Es gibt aber auch einige einfache Implementierungen. Hier ein [Beispiel](http://demo.opencultureconsulting.com/oai_pmh/?verb=ListRecords&metadataPrefix=oai_dc):
|
|
||||||
|
|
||||||
![Beispiel für OAI-PMH Data Provider](../images/oai-pmh-beispiel.png)
|
|
23
kapitel-3.md
|
@ -1,23 +0,0 @@
|
||||||
# Kapitel 3: Übertragungsprotokolle und Datentransformationen
|
|
||||||
|
|
||||||
Im vorigen Kapitel haben wir viele Praxisbeispiele der ETH-Bibliothek kennengelernt und anhand des Metadatenflussdiagramms die großen Zusammenhänge zwischen den verschiedenen Systemen diskutiert. Jetzt werden wir einzelne Aspekte vertiefen und hands-on ausprobieren.
|
|
||||||
|
|
||||||
Unser Ziel: Wir bauen uns unser eigenes "Wissensportal". Was bei der ETH im großen Stil mit der kommerziellen Software PRIMO realisiert wurde, bauen wir im Kleinen mit Open Source Software nach.
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
|
|
||||||
|
|
||||||
* [3.1 Wir bauen uns ein Wissensportal](/kapitel-3/31-wir-bauen-uns-ein-wissensportal.md)
|
|
||||||
* [3.2 Übertragungsprotokolle SRU und OAI-PMH](/kapitel-3/32-ubertragungsprotokolle-sru-und-oai-pmh.md)
|
|
||||||
* [3.3 Testdaten über SRU herunterladen](/kapitel-3/33-testdaten-uber-sru-herunterladen.md)
|
|
||||||
* [3.4 Tutorial zu OpenRefine](/kapitel-3/34-tutorial-zu-openrefine.md)
|
|
||||||
* [3.5 Verarbeitung von MARC21 mit OpenRefine](/kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
|
|
||||||
* [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](/kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
|
|
||||||
* [3.7 Bonus: Automatisierung](/kapitel-3/37-bonus-automatisierung.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [Wir bauen einen Bibliothekskatalog – Teil 2](https://elenasdiscovery.wordpress.com/2017/11/10/wir-bauen-einen-bibliothekskatalog-teil-2/)
|
|
||||||
* Marina Hess: [Wir bauen uns ein Wissensportal 1](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/wir-bauen-uns-ein-wissensportal-1/)
|
|
||||||
* Franziska Neuenschwander: [Out with the old, in with the new – Wir bauen uns ein eigenes Wissensportal](https://bainblogweb.wordpress.com/2017/11/09/out-with-the-old-in-with-the-new-wir-bauen-uns-ein-eigenes-wissensportal/)
|
|
||||||
* Moreno Pontoriero: [Es wird gebaut](https://morenoexplores.wordpress.com/2017/11/06/es-wird-gebaut/)
|
|
||||||
* Aline Strauss: [Übertragungsprotokolle und Datentransformationen 02/11/17](https://alinesbiblio.wordpress.com/2017/11/15/uebertragungsprotokolle-und-datentransformationen-02-11-17/)
|
|
|
@ -1,13 +0,0 @@
|
||||||
# 3.1 Wir bauen uns ein "Wissensportal"
|
|
||||||
|
|
||||||
[![](/flowcharts/flowchart-swissbib.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/flowcharts/flowchart-swissbib.png)Quellcode für Flowchart: [flowcharts/flowchart-swissbib.mmd](/flowcharts/flowchart-swissbib.mmd "Sourcecode") \(nutzbar im [Mermaid Live-Editor](https://mermaidjs.github.io/mermaid-live-editor/)\)
|
|
||||||
|
|
||||||
## Datenfluss
|
|
||||||
|
|
||||||
Das obige Bild zeigt den Datenfluss vom Abruf externer Daten über eine Schnittstelle bis hin zur Bereitstellung dieser Daten in einem Discovery-System. Das wollen wir bauen und so gehen wir vor:
|
|
||||||
|
|
||||||
* Wir laden heute eine Reihe von Testdaten aus Bibliothekssystemen über die SRU-Schnittstelle von Swissbib \(Kap 3.3\). Diese Daten transformieren wir mit OpenRefine von MARC21/XML in das Tabellenformat TSV \(Kap. 3.5\).
|
|
||||||
* In [Kapitel 4](/kapitel-4.md) \(16.11.17\) werden wir den Suchindex Apache Solr installieren, ein Datenmodell für eine Meta-Suche modellieren und dann die Testdaten als TSV indexieren.
|
|
||||||
* In [Kapitel 5](/kapitel-5.md) \(30.11.17\) werden wir schließlich das Content-Management-System TYPO3 mit der Erweiterung TYPO3-find installieren und unsere eigene Katalogoberfläche konfigurieren.
|
|
||||||
|
|
||||||
Danach haben wir noch zwei Kapitel Zeit, um alternative Software kennenzulernen und uns mit dem Thema Linked Data zu beschäftigen.
|
|
|
@ -1,44 +0,0 @@
|
||||||
# 3.2 Übertragungsprotokolle SRU und OAI-PMH
|
|
||||||
|
|
||||||
Es gibt zahlreiche Übertragungsprotokolle im Bibliotheks- und Archivbereich. Drei davon sind besonders weit verbreitet:
|
|
||||||
|
|
||||||
* [Z39.50](https://www.loc.gov/z3950/) \(Library of Congress\)
|
|
||||||
* [SRU](http://www.loc.gov/standards/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\)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Bevor wir konkrete Testdaten für unser "Wissensportal" herunterladen, wollen wir zunächst die Möglichkeiten der Schnittstellen erkunden. Wir orientieren uns an dem Schweizer Projekt Swissbib, das öffentliche Schnittstellen nach SRU und OAI-PMH bereitstellt und diese auch gut dokumentiert hat:
|
|
||||||
|
|
||||||
* Dokumentation SRU: [http://www.swissbib.org/wiki/index.php?title=SRU](http://www.swissbib.org/wiki/index.php?title=SRU)
|
|
||||||
* Dokumentation OAI: [http://www.swissbib.org/wiki/index.php?title=Swissbib\_oai](http://www.swissbib.org/wiki/index.php?title=Swissbib_oai)
|
|
||||||
|
|
||||||
Bitte schauen Sie sich dort um und lösen Sie die folgenden Aufgaben. Zum Laden und Speichern der Daten über die Kommandozeile können Sie wieder das Programm `curl` nutzen, dass Sie in [Kapitel 1.5]() kennengelernt haben. Um die Aufgaben vollständig lösen zu können, müssen Sie die Dokumentation genau lesen und etwas stöbern.
|
|
||||||
|
|
||||||
## Aufgabe 1
|
|
||||||
|
|
||||||
Laden Sie 100 Datensätze der ETH-Bibliothek \(Hauptbibliothek Rämistrasse 101, 8092 Zürich\) für den Suchbegriff `Albert Einstein` \(über alle Felder\) im Format MARC21. Speichern Sie die Daten in der Datei `einstein.xml`.
|
|
||||||
|
|
||||||
## Aufgabe 2
|
|
||||||
|
|
||||||
Laden Sie einige Datensätze aus dem gesamten Swissbib-Verbund, die seit dem 31.10.2017 verändert wurden im Format MARC21. Speichern Sie die Daten in der Datei `swissbib-2017-10-31.xml`.
|
|
||||||
|
|
||||||
## Bonusaufgabe
|
|
||||||
|
|
||||||
Finden Sie heraus, nach welchen Regeln die SRU-Schnittstelle von Swissbib MARC21 in Dublin Core transformiert.
|
|
||||||
|
|
||||||
## Lösungen
|
|
||||||
|
|
||||||
Die Lösungen für die obigen Aufgaben sind auf der Seite [Lösungen](/losungen.md) dokumentiert.
|
|
||||||
|
|
||||||
## Aktuelle Entwicklungen
|
|
||||||
|
|
||||||
[Resourcesync](http://www.openarchives.org/rs/) ist ein vielversprechender neuer Standard, der schnellere und spezifischere Synchronisierungen ermöglicht, als es mit OAI-PMH möglich ist. Aktuell ist Resourcesync noch selten im Einsatz, wird aber in nächster Zeit als Ergänzung zu OAI-PMH immer öfter anzutreffen sein und könnte OAI-PMH auf längere Sicht vielleicht sogar ablösen. Es gibt Referenzimplementierungen in Python für [Data Provider](https://github.com/resourcesync/py-resourcesync) und für [Harvester](https://github.com/resync/resync).
|
|
||||||
|
|
||||||
Grundlegende Informationen und aktuelle Anwendungen sind der folgenden Präsentation zu entnehmen:
|
|
||||||
|
|
||||||
> Martin Klein, Gretchen Gueguen, Mark Matienzo, Petr Knoth \(20.4.2017\): ResourceSync - Overview and Real-World Use Cases for Discovery, Harvesting, and Synchronization of Resources on the Web. Präsentation auf DPLAfest 2017. [https://www.slideshare.net/martinklein0815/resourcesync-overview-and-realworld-use-cases-for-discovery-harvesting-and-synchronization-of-resources-on-the-web](https://www.slideshare.net/martinklein0815/resourcesync-overview-and-realworld-use-cases-for-discovery-harvesting-and-synchronization-of-resources-on-the-web)
|
|
||||||
|
|
||||||
Ein ganz anderes Feld sind die vielfältigen Linked Data Schnittstellen. Damit werden wir uns später in [Kapitel 7](/kapitel-7.md) \(11.01.18\) beschäftigen.
|
|
|
@ -1,41 +0,0 @@
|
||||||
# 3.3 Testdaten über SRU herunterladen
|
|
||||||
|
|
||||||
Wir nutzen die [SRU-Schnittstelle von Swissbib](http://www.swissbib.org/wiki/index.php?title=SRU).
|
|
||||||
|
|
||||||
## Auswahl der Testdaten
|
|
||||||
|
|
||||||
Als Testdaten laden wir zunächst alles, was der NEBIS-Verbund für eine Suche nach `Albert Einstein` über alle Felder zu bieten hat \(etwa 2000 Treffer\):
|
|
||||||
|
|
||||||
* Suche im Katalog von Swissbib: [https://www.swissbib.ch/Search/Results?lookfor=albert+einstein&type=AllFields&filter%5B%5D=%7Eunion%3A%22NEBIS%22](https://www.swissbib.ch/Search/Results?lookfor=albert+einstein&type=AllFields&filter[]=~union%3A"NEBIS")
|
|
||||||
* Abfrage der SRU-Schnittstelle: <http://sru.swissbib.ch/sru/search/defaultdb?query=+dc.anywhere+%3D+Albert+Einstein+AND+dc.xNetwork+%3D+NEBIS&operation=searchRetrieve&recordSchema=info%3Asrw%2Fschema%2F1%2Fmarcxml-v1.1-light&maximumRecords=100&startRecord=0&recordPacking=XML&availableDBs=defaultdb&sortKeys=Submit+query>
|
|
||||||
|
|
||||||
Hier ist die Postkarte von Albert Einstein an Alfred Stern aus [Kapitel 2.2](//kapitel-2/22_datenstruktur-von-archivsystemen.md) übrigens nicht dabei. Die Daten aus e-manuscripta.ch laden wir erst später in [Kapitel 6](/kapitel-6.md) als separate Datenquelle.
|
|
||||||
|
|
||||||
## Abfrage der SRU-Schnittstelle mit einem Shell-Script
|
|
||||||
|
|
||||||
Die SRU-Schnittstelle lässt maximal 100 Records pro Abfrage zu, d.h. die Daten müssen in Teilen abgefragt werden:
|
|
||||||
|
|
||||||
1. `startRecord=0&maximumRecords=100`
|
|
||||||
2. `startRecord=100& maximumRecords=100`
|
|
||||||
3. und so weiter...
|
|
||||||
|
|
||||||
Um alle Daten herunterzuladen nutzen wir ein vorbereitetes Bash-Script [sru-download.sh](https://github.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/blob/master/scripte/sru-download.sh). Shell-Scripte ermöglichen die Automatisierung von Befehlen auf der Kommandozeile. So müssen Sie nicht alle Befehle nacheinander selbst eintippen, sondern brauchen nur einmal das Script starten und der Computer arbeitet die Befehle selbstständig nacheinander ab. Es können auch Variablen und Schleifen definiert werden, so dass die Befehle dynamisch innerhalb der Laufzeit des Scripts angepasst werden können, was sehr weitreichende Möglichkeiten bietet. Shell-Scripte sind somit ein erster Einstieg in die Programmierung, woher übrigens auch das Schimpfwort "[Scriptkiddie](https://de.wikipedia.org/wiki/Scriptkiddie)" stammt ;-\).
|
|
||||||
|
|
||||||
Bitte geben Sie die folgenden Befehle in die Kommandozeile ein:
|
|
||||||
|
|
||||||
* Script mit `curl` auf den Server laden: `curl -O https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/scripte/sru-download.sh`
|
|
||||||
* Script ausführbar machen: `chmod +x sru-download.sh`
|
|
||||||
* Script starten mit `./sru-download.sh`
|
|
||||||
|
|
||||||
Das Script lädt nun die Daten in 100er Paketen und speichert sie als XML-Dateien im Ordner ```Downloads```.
|
|
||||||
|
|
||||||
## Optional: Individuelle Testdaten laden
|
|
||||||
|
|
||||||
Wenn Sie sich eher für Harry Potter als für Albert Einstein interessieren, dann können Sie das Shell-Script anpassen. Öffnen Sie die Datei ```sru-download.sh``` mit einem Texteditor (hier: Anwendungen / Zubehör / Pluma Text Editor) und bearbeiten Sie die folgenden Zeilen:
|
|
||||||
|
|
||||||
* Zeile 8: ```query="dc.anywhere+%3D+Albert+Einstein+AND+dc.xNetwork+%3D+NEBIS"``` ersetzen durch ```query="dc.anywhere+%3D+Harry+Potter+AND+dc.xNetwork+%3D+NEBIS"```
|
|
||||||
* Zeile 11: ```filename="einstein-nebis"``` ersetzen durch ```filename="potter-nebis"```
|
|
||||||
|
|
||||||
Sie können sich übrigens auch über die Oberfläche von <http://sru.swissbib.ch> eine beliebige Suchanfrage zusammenstellen. Nach einem Klick auf "Submit Query" erhalten Sie die Ergebnisse und können aus der Adresszeile des Browsers den betreffenden Abschnitt kopieren und in das Shell-Script Zeile 8 einfügen.
|
|
||||||
|
|
||||||
Wenn Sie mehr über die Programmierung von Shell-Scripten erfahren wollen, finden Sie Informationen im sehr empfehlenswerten [Bash-Skripting-Guide für Anfänger](https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_f%C3%BCr_Anf%C3%A4nger/).
|
|
|
@ -1,32 +0,0 @@
|
||||||
# 3.4 Tutorial zu OpenRefine
|
|
||||||
|
|
||||||
Bevor wir die im vorigen Abschnitt heruntergeladenen MARC21-Daten verarbeiten, sollten wir uns erst noch gründlicher mit OpenRefine vertraut machen und an das sehr kurze erste Erlebnis aus [Kapitel 1.6](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md) anknüpfen.
|
|
||||||
|
|
||||||
Für OpenRefine gibt es eine [riesige Fülle von Tutorials](https://github.com/OpenRefine/OpenRefine/wiki/External-Resources), die den Einstieg erleichtern. Um die Funktionsweise kennenzulernen, ist es am einfachsten eins dieser Tutorials durchzuarbeiten.
|
|
||||||
|
|
||||||
## Aufgabe: Tutorial "Cleaning Data with OpenRefine" durcharbeiten
|
|
||||||
|
|
||||||
Wir bearbeiten jetzt das folgende selbsterklärende Tutorial:
|
|
||||||
|
|
||||||
> Seth van Hooland, Ruben Verborgh and Max De Wilde \(2013-08-05\): "Cleaning Data with OpenRefine" In: Programming Historian. [http://programminghistorian.org/lessons/cleaning-data-with-openrefine](http://programminghistorian.org/lessons/cleaning-data-with-openrefine)
|
|
||||||
|
|
||||||
Rufen Sie sich das Tutorial im Browser auf und starten dann OpenRefine. So können Sie zwischen den Browsertabs komfortabel hin und her schalten.
|
|
||||||
|
|
||||||
Falls Sie sich nicht mehr gut an OpenRefine erinnern, schauen Sie sich die Erläuterungen in [Kapitel 1.6 Metadaten ansehen mit OpenRefine](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md) noch einmal an. Hier der Startbefehl:
|
|
||||||
|
|
||||||
```
|
|
||||||
~/openrefine-2.7/refine
|
|
||||||
```
|
|
||||||
|
|
||||||
## Hinweise
|
|
||||||
|
|
||||||
Die im Tutorial benannte Ausgangsdatei `phm-collection.tsv` können Sie unter folgender Adresse herunterladen: [http://data.freeyourmetadata.org/powerhouse-museum/phm-collection.tsv](http://data.freeyourmetadata.org/powerhouse-museum/phm-collection.tsv)
|
|
||||||
|
|
||||||
Achtem Sie beim Import auf die richtigen Einstellungen:
|
|
||||||
|
|
||||||
* Checkbox "_Parse cell text into numbers, dates, ..._" aktivieren
|
|
||||||
* Checkbox "_Quotation marks are used to enclose cells containing column separators_" deaktivieren
|
|
||||||
|
|
||||||
[![](/images/tutorial-openrefine-import.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/tutorial-openrefine-import.png)
|
|
||||||
|
|
||||||
Das steht zwar so auch im Tutorial, ist aber leicht zu übersehen.
|
|
|
@ -1,165 +0,0 @@
|
||||||
# 3.5 Verarbeitung von MARC21 mit OpenRefine
|
|
||||||
|
|
||||||
Ein möglicher Weg zum Laden von Metadaten in den Suchindex Solr ist die Transformation der umfangreichen bibliothekarischen Metadaten in eine klassische Tabellenstruktur mit wenigen Spalten, in denen wir die für die Suche relevante Daten zusammenführen:
|
|
||||||
|
|
||||||
* Spaltenüberschriften werden zu Feldern im Suchindex
|
|
||||||
* Mehrere Werte in einer Tabellenzelle können mit einem Trennzeichen eingegeben werden \(das Trennzeichen muss eindeutig sein, darf also nicht bereits in den Daten vorkommen\)
|
|
||||||
* OpenRefine bietet als Export vorrangig CSV oder TSV an. Das kann der Suchindex Solr problemlos indexieren.
|
|
||||||
|
|
||||||
Nach der Transformation könnten die Daten beispielsweise so aussehen:
|
|
||||||
|
|
||||||
| id | Titel | AutorInnen | ... |
|
|
||||||
| :--- | :--- | :--- | :--- |
|
|
||||||
| 123 | Zur Elektrodynamik bewegter Körper | Einstein, Albert | ... |
|
|
||||||
| 299 | Albert Einstein | Ziegelmann, Horst␟Fischer, Ernst Peter␟Renn, Jürgen | ... |
|
|
||||||
| ... | ... | ... | ... |
|
|
||||||
|
|
||||||
Natürlich könnten wir auch mit einem anderen Werkzeug \(z.B. XSLT\) die Dateien direkt als XML transformieren und in den Suchindex laden, aber Tabellendaten sind eben einfach besonders übersichtlich und in dieser Struktur fallen Ungereimtheiten in den Daten sofort ins Auge. Für unsere erste Datenquelle im Discovery-System also eine gute Übung.
|
|
||||||
|
|
||||||
## Eigenes Schema oder einem Metadatenstandard folgen?
|
|
||||||
|
|
||||||
Es ist sicher klar, dass wir nicht die umständlichen MARC-Zahlen und Codes als Spaltennamen in unseren Katalog übernehmen wollen, sondern sprechende Namen wie TItel, AutorInnen und so weiter. Doch welche Daten brauchen wir in welcher Form für den Katalog?
|
|
||||||
|
|
||||||
Überlegen Sie:
|
|
||||||
|
|
||||||
* Welche Informationen wollen Sie in Ihrem Bibliothekskatalog anbieten?
|
|
||||||
* Wer soll die Hauptzielgruppe sein?
|
|
||||||
* Welche Filtermöglichkeiten \(Facetten\) wollen Sie anbieten?
|
|
||||||
* Welche Kurzinformationen \(Unterscheidungsmerkmale\) sollen in der Trefferliste stehen?
|
|
||||||
* Welche Informationen sollen in der Vollanzeige dargestellt werden?
|
|
||||||
|
|
||||||
Wenn Sie ein innovatives Discovery-System auf Basis von verschiedenen heterogenen Datenquellen bauen wollen, dann kann auch die absichtliche Reduktion auf wenige Felder helfen \("Simplicity"\). Wichtig für das Nutzererlebnis \("User Experience"\) ist, dass die Felder konsistent belegt sind und Trefferliste und Facetten nützliche und eindeutige Unterscheidungsmerkmale beinhalten. Bei der Datentransformation haben Sie die Chance einige Unstimmigkeiten zu bereinigen und Informationen clever zu aggregieren, so dass die Daten trotz verschiedener Quellen einigermaßen einheitlich durchsuchbar sind.
|
|
||||||
|
|
||||||
Haben Sie eigene Vorstellungen? Falls nicht, dann orientieren Sie sich an [Dublin Core](http://dublincore.org/documents/dces/), denn diese Initiative hatte von Beginn an das Ziel, einen gemeinsamen Mindeststandard zu definieren und entsprechend übersichtlich sind die Felder. Wenn Sie noch nicht mit MARC gearbeitet haben und die passenden Zahlen und Codes nicht im Kopf haben, dann orientieren Sie sich an der [Empfehlung der Library of Congress für einen "MARC to Dublin Core Crosswalk"](https://www.loc.gov/marc/marc2dc.html).
|
|
||||||
|
|
||||||
## Aufgabe 1: Testdaten importieren und zur weiteren Bearbeitung umstrukturieren
|
|
||||||
|
|
||||||
### Arbeitsspeicher für OpenRefine freigeben
|
|
||||||
|
|
||||||
Für das Laden und Transformieren der 2075 Beispieldatensätze benötigt OpenRefine etwa 1,5 GB Arbeitsspeicher. Als Standardeinstellung verwendet OpenRefine jedoch maximal 1,4 GB Arbeitsspeicher. Wenn während der Transformation der Speicher ausgeht, wird OpenRefine erst sehr langsam und stürzt dann irgendwann ab.
|
|
||||||
|
|
||||||
Wieviel freien Arbeitsspeicher Sie zur Verfügung haben, bestimmen Sie am besten, indem Sie alle Fenster bis auf den Browser schließen und dann in der Kommandozeile den Befehl `free -m` eingeben. In der Spalte "verfügbar" können Sie ablesen, wieviel MB maximal noch zur Verfügung stehen.
|
|
||||||
|
|
||||||
![Screenshot](../images/systemressourcen.png)
|
|
||||||
|
|
||||||
Ziehen Sie von diesem Wert zur Sicherheit mindestens 300 MB ab. Das Ergebnis ist der Höchstwert, den Sie OpenRefine zuordnen können.
|
|
||||||
|
|
||||||
Um jetzt das Limit zu erhöhen, bearbeiten wir die Einstellungsdatei von OpenRefine. Öffnen Sie die Datei `refine.ini` mit einem Texteditor \(hier: Anwendungen / Zubehör / Pluma Text Editor\) und ändern Sie den Wert in der Zeile `REFINE_MEMORY=1400M` auf `2000M` und speichern Sie die Datei \(`STRG` und `S`\).
|
|
||||||
|
|
||||||
Wenn Sie über genügend freien Arbeitsspeicher verfügen, können Sie auch gleich ein höheres Limit setzen. Falls Sie nicht genügend freien Arbeitsspeicher haben, um das Limit zu erhöhen, dann bleibt Ihnen nichts anderes übrig als die Anzahl der zu verarbeitenden Daten zu reduzieren. Sie könnten im Folgenden beispielsweise nur einen Teil der heruntergeladenen XML-Dateien importieren.
|
|
||||||
|
|
||||||
Weitere Informationen: [https://github.com/OpenRefine/OpenRefine/wiki/FAQ:-Allocate-More-Memory\#linux-or-mac](https://github.com/OpenRefine/OpenRefine/wiki/FAQ:-Allocate-More-Memory#linux-or-mac)
|
|
||||||
|
|
||||||
### Daten importieren
|
|
||||||
|
|
||||||
* Im Menüpunkt "Create Project" auf den Button "Durchsuchen" klicken, in den Ordner Downloads wechseln und alle der im vorigen Kapitel gespeicherten XML-Dateien \(`einstein-nebis`...\) auswählen. Mehrere Dateien können Sie, wie sonst auch üblich, mit der Taste Shift markieren \(oberste XML-Datei anklicken, Shift gedrückt halten und unterste XML-Datei anklicken\). Das Protokoll zum Download \(Dateiendung `.log`\) können wir nicht gebrauchen.
|
|
||||||
|
|
||||||
* Im nächsten Bildschirm könnten Sie von den ausgewählten Dateien noch wieder welche abwählen. Das ist aber nicht nötig. Klicken Sie gleich weiter oben rechts auf den Button "Configure Parsing Options".
|
|
||||||
|
|
||||||
* Im letzten Bildschirm können Sie nun Einstellungen vornehmen, wie die XML-Dateien von OpenRefine interpretiert werden sollen. Gehen Sie wie folgt vor:
|
|
||||||
|
|
||||||
* Klicken Sie als erstes im Vorschaubildschirm auf den Pfad `<record xmlns:xs="http://www.w3.org/2001/XMLSchema">`. Es ist wichtig genau diese Stelle zu treffen. Wenn Sie mit der Maus darüber fahren, wird ein Kasten angezeigt, welche Daten OpenRefine als einen Datensatz interpretieren wird.
|
|
||||||
![Screenshot](../images/openrefine-import-marc-xml.png)
|
|
||||||
|
|
||||||
* Nehmen Sie dann folgende weiteren Einstellungen vor:
|
|
||||||
|
|
||||||
* Checkbox "Store file source" deaktivieren
|
|
||||||
* Im Textfeld "Project Name" den hinteren Teil hinter dem Datum entfernen oder einen eigenen Namen vergeben
|
|
||||||
|
|
||||||
* Abschließend können Sie das neue OpenRefine-Projekt mit diesen Daten erstellen, indem Sie oben rechts den Button "Create Project" drücken.
|
|
||||||
|
|
||||||
### Daten prüfen
|
|
||||||
|
|
||||||
Klicken Sie bei der Spalte "All" auf das Dreieck und wählen Sie im Menü den Punkt Edit columns / Re-order / remove columns... aus.
|
|
||||||
|
|
||||||
So sollte die Spaltenstruktur aussehen:
|
|
||||||
|
|
||||||
![Screenshot](../images/openrefine-screenshot-reorder-columns.png)
|
|
||||||
|
|
||||||
Achtung: Die weiteren Schritte beziehen sich auf diese Spaltennamen, daher müssen Ihre Spaltenbezeichnungen zwingend mit denen vom Screenshot übereinstimmen. Falls es bei Ihnen anders aussieht, ist beim Import etwas schiefgegangen.
|
|
||||||
|
|
||||||
### Daten "massieren"
|
|
||||||
|
|
||||||
Bevor wir inhaltlich mit den MARC21-Daten arbeiten können, müssen wir diese zunächst umformen. OpenRefine "versteht" MARC21 nicht, sondern lädt die Daten wie andere XML-Dateien.
|
|
||||||
|
|
||||||
Um die MARC21-Daten so umzustrukturieren, dass sie in dem flachen Tabellenformat von OpenRefine benutzbar sind, sind zahlreiche Transformationsschritte notwendig. Damit Sie diese nicht manuell durchführen müssen, nutzen wir ein vorbereitetes Transformationsscript.
|
|
||||||
|
|
||||||
1. Rufen Sie die Datei [openrefine-marc.json](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/openrefine/openrefine-marc.json) im Browser auf und kopieren Sie den gesamten Inhalt in die Zwischenablage \(`STRG` und `A` um alles zu markieren und `STRG` und `C` um es in die Zwischenablage zu kopieren\)
|
|
||||||
|
|
||||||
2. Wechseln Sie in OpenRefine in den Tab "Undo / Redo" \(neben "Facet / Filter" unterhalb des OpenRefine-Logos\) und klicken Sie den Button "Apply...". Fügen Sie den Inhalt der Zwischenablage in das Textfeld ein \(`STRG` und `V`\) und bestätigen Sie mit dem Button "Perform Operations".
|
|
||||||
|
|
||||||
Die Verarbeitung kann je nach Menge der Daten ein paar Minuten dauern. Anschließend ist die Struktur schon etwas handlicher. Etwa so sollte es aussehen:
|
|
||||||
|
|
||||||
![Screenshot](../images/openrefine-marc-nach-massage.png)
|
|
||||||
|
|
||||||
## Aufgabe 2: MARC-Daten analysieren und neue Spalten für das Zielschema bilden
|
|
||||||
|
|
||||||
Jetzt wo die MARC-Daten alle einheitlich im Tabellenformat strukturiert vorliegen, können Sie für jedes Feld im Zielformat Dublin Core passende MARC-Felder und MARC-Codes auswählen/filtern und die ausgewählten Daten jeweils in neue "Dublin Core"-Spalten kopieren.
|
|
||||||
|
|
||||||
Nutzen Sie dabei die [Empfehlung der Library of Congress \(LoC\) für einen "MARC to Dublin Core Crosswalk"](https://www.loc.gov/marc/marc2dc.html) als Orientierung.
|
|
||||||
|
|
||||||
### Analyse
|
|
||||||
|
|
||||||
Um sich einen statistischen Überblick zu verschaffen, können Sie wie folgt vorgehen:
|
|
||||||
|
|
||||||
* Spalte `field` / Facet / Text facet - zeigt in einer Facette die Gesamtanzahl wie oft ein MARC-Feld in den Daten genannt wird \(ggf. mehrmals pro Datensatz\)
|
|
||||||
* Spalte `field` / Edit cells / Blank down - jetzt wird in der Facette angezeigt wie viele Datensätze das jeweilige MARC-Feld mindestens einmal beinhalten
|
|
||||||
* Klicken Sie in der Facette auf den Link "111 choices" \(oder ähnlich\), dann erhalten Sie eine tab-separierte Liste, die Sie in eine Tabellenverarbeitung kopieren können
|
|
||||||
* Vergessen Sie nicht, die Transformation "Blank down" über die Undo/Redo-Historie abschließend wieder rückgängig zu machen.
|
|
||||||
|
|
||||||
### Neue Spalten für Zielschema bilden
|
|
||||||
|
|
||||||
Wenn Sie sich auf Basis der Empfehlung der LoC, der Statistik und Stichproben für ein Mapping von bestimmten MARC-Feldern und Codes auf ein Dublin-Core-Feld entschieden haben, ist das grundsätzliche Vorgehen dann wie folgt.
|
|
||||||
|
|
||||||
1. Passende MARC Felder und Codes in den Spalten `field` und `code` mit Text-Facetten auswählen.
|
|
||||||
2. Ausgewählte Daten aus Spalte `content` mit der Funktion `add column based on column...` in eine neue "Dublin Core"-Spalte kopieren \(Name der Spalte ist das Dublin-Core-Feld\).
|
|
||||||
3. Bei Bedarf die Daten in der neuen Spalte mit Transformationen bearbeiten, um z.B. Trennzeichen einzufügen.
|
|
||||||
4. Zusammengehörige Werte \(z.B. Person und ihre Lebensdaten\) in der neuen Spalte mit der Funktion `join multi-valued cells` zusammenführen. Damit nicht zuviel \(z.B. mehrere Personen\) zusammengeführt werden, muss dabei die Spalte `index` vorne stehen.
|
|
||||||
5. Abschließend dann noch einmal mit der Funktion `join multi-valued cells` und dem bekannten Trennzeichen `␟` die Daten in einer Zeile pro Datensatz zusammenführen. Hierzu muss dann die Spalte `id` vorne stehen. Um die Performance zu verbessern, kann alternativ auch die Transformation `row.record.cells["Name der Spalte"].value.join("␟")` (zusammen mit einer Facette "by blank" mit Wert `false` auf die Spalte `id`) auf die neuen Spalten angewendet werden.
|
|
||||||
|
|
||||||
Beispiel für "Autor/in" \(MARC21 `100a,D,d,e` auf Dublin Core `dc:creator`\):
|
|
||||||
|
|
||||||
1. Passende MARC Felder und Codes auswählen.
|
|
||||||
* Die Zeilen-Ansicht wählen \(show as: rows\)
|
|
||||||
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
|
|
||||||
* Spalte `code` / Facet / Text facet / Wert `a`, `D`, `d` und `e` auswählen \(zur Auswahl mehrerer Werte mit der Maus darüber fahren und Link "include" anklicken\)
|
|
||||||
2. Ausgewählte Daten in eine neue Spalte kopieren
|
|
||||||
* Spalte `content` / Edit column / Add column based on column... / Name: `creator` / Expression: `value` \(unverändert\)
|
|
||||||
3. Bei Bedarf die Daten in der neuen Spalte mit Transformationen bearbeiten
|
|
||||||
* Trennzeichen zwischen Vor- und Nachname:
|
|
||||||
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
|
|
||||||
* Spalte `code` / Facet / Text facet / Wert `a` auswählen
|
|
||||||
* Spalte `creator` / Edit cells / Transform... / Expression: `value + ","`
|
|
||||||
* Lebensdaten in runde Klammern:
|
|
||||||
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
|
|
||||||
* Spalte `code` / Facet / Text facet / Wert `d` auswählen
|
|
||||||
* Spalte `creator` / Edit cells / Transform... / Expression: `"(" + value + ")"`
|
|
||||||
* Funktionsbezeichnung in eckige Klammern:
|
|
||||||
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
|
|
||||||
* Spalte `code` / Facet / Text facet / Wert `e` auswählen
|
|
||||||
* Spalte `creator` / Edit cells / Transform... / Expression: `"[" + value + "]"`
|
|
||||||
4. Zusammengehörige Werte in der neuen Spalte zusammenführen
|
|
||||||
* alle Facetten müssen geschlossen sein, bevor Sie fortfahren
|
|
||||||
* Spalte `id` / Edit column / Move column to end
|
|
||||||
* Spalte `creator` / Edit cells / Join multi-valued cells... / Separator: ` ` \(Leerzeichen\)
|
|
||||||
5. Abschließend die Daten in einer Zeile pro Datensatz zusammenführen
|
|
||||||
* Spalte `id` / Edit column / Move column to beginning
|
|
||||||
* Spalte `id` / Facet / Customized facets / Facet by blank... / Wert `false` auswählen
|
|
||||||
* Spalte `creator` / Edit cells / Transform... / Expression: `row.record.cells["creator"].value.join("␟")`
|
|
||||||
6. Ergebnis prüfen und ggf. nachbessern
|
|
||||||
* Spalte `creator` / Facet / Text facet
|
|
||||||
* Spalte `creator` / Edit cells / Cluster and edit... / Method: nearest neighbor
|
|
||||||
|
|
||||||
## Export
|
|
||||||
|
|
||||||
Wenn alle Spalten angelegt sind, dann können Sie die Daten für den Suchindex im Format TSV exportieren. Dazu sind noch zwei Schritte nötig:
|
|
||||||
|
|
||||||
1. Spalte `id` / Facet / Customized facets / Facet by blank / `false` - um für den Export nur die oberste Zeile pro Record auszuwählen
|
|
||||||
2. Export / Custom tabular exporter... aufrufen, dort die Spalten `index`, `field`, `ind1`, `ind2`, `code` und `content` abwählen und im Reiter "Download" auf den Button `Download` klicken.
|
|
||||||
|
|
||||||
Wenn Sie die Datei herunterladen, wird diese im Ordner `~/Downloads` gespeichert. Merken Sie sich den Dateinamen. In den Übungen in Kapitel 4 gehen wir von einem Dateinamen `einstein.tsv` aus. Wenn Ihre Datei anders heißt, müssen Sie diese entweder jetzt umbenennen oder in Kapitel 4.3 und 4.4 darauf achten, dass Sie den Dateinamen in den Befehlen entsprechend anpassen.
|
|
||||||
|
|
||||||
## Lösung
|
|
||||||
|
|
||||||
Die Lösung für Aufgabe 2 \(Mapping von MARC21 auf Dublin Core\) ist auf der Seite [Lösungen](/losungen.md) dokumentiert.
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# 3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen
|
|
||||||
|
|
||||||
Wir hätten auch auf den integrierten "Crosswalk" von Swissbib vertrauen und die Daten gleich als Dublin Core herunterladen können. Nach welchen Transformationsregeln hätte Swissbib das dann eigentlich generiert?
|
|
||||||
|
|
||||||
## Aufgabe
|
|
||||||
|
|
||||||
Versuchen Sie das [XSL-Stylesheet zur Transformation von MARC nach Dublin Core der SRU-Schnittstelle von Swissbib](http://sru.swissbib.ch/sru/xslfiles/MARC21slim2OAIDC.swissbib.xsl) zu "lesen", auch wenn Sie die Sprache XSL nicht kennen sollten. Manche Abschnitte sind dank der XML-Struktur mit etwas Puzzelei auch so verständlich.
|
|
||||||
|
|
||||||
Notieren Sie welche Dublin-Core-Felder aus welchen MARC Nummern und Codes zusammengesetzt werden. Sie werden feststellen, dass dieser Crosswalk nicht in jedem Fall der [Empfehlung der Library of Congress]((https://www.loc.gov/marc/marc2dc.html)) folgt.
|
|
||||||
|
|
||||||
## Lösung
|
|
||||||
|
|
||||||
Einen Teil der Antwort finden Sie auf der Seite [Lösungen](/losungen.md).
|
|
|
@ -1,49 +0,0 @@
|
||||||
# 3.7 Bonus: Automatisierung
|
|
||||||
|
|
||||||
Die Systemarchitektur von OpenRefine macht es möglich, die Anwendung nicht nur über die grafische Oberfläche, sondern auch über eine API "fernzusteuern". Für die [HTTP-API von OpenRefine](https://github.com/OpenRefine/OpenRefine/wiki/OpenRefine-API) gibt es Clients in den Programmiersprachen Python, Ruby, node.js, PHP und für R. Am ausgereiftesten ist der [Python-Client von Paul Makepeace](https://github.com/PaulMakepeace/refine-client-py/).
|
|
||||||
|
|
||||||
Darauf aufbauend habe ich ein Shell-Script geschrieben, das gespeicherte Transformationsregeln auf eine Vielzahl von Dateien anwenden kann. Es lädt sich alle benötigten Komponenten wie beispielsweise den Python-Client automatisch aus dem Internet. Die zu verarbeitenden Daten und die Transformationsregeln (als JSON-Dateien) müssen vorab in Dateiordnern bereitgestellt werden. Das Script ist bei GitHub frei verfügbar: [felixlohmeier/openrefine-batch](https://github.com/felixlohmeier/openrefine-batch).
|
|
||||||
|
|
||||||
## Transformationshistorie
|
|
||||||
|
|
||||||
OpenRefine verfügt über hilfreiche Undo/Redo-Funktionen, mit denen Sie auch alle bisher in einem Projekt durchgeführten Transformationsregeln speichern und auf ein anderes Projekt anwenden können.
|
|
||||||
|
|
||||||
Transformationsregeln extrahieren (altes Projekt):
|
|
||||||
|
|
||||||
* Oben links im Reiter "Undo / Redo" den Button "Extract..." drücken
|
|
||||||
* Alles im rechten Textfeld in die Zwischenablage kopieren (z.B. mit ```STRG```+```A``` und ```STRG```+```C```)
|
|
||||||
|
|
||||||
Transformationsregeln anwenden (neues Projekt):
|
|
||||||
|
|
||||||
* Neues OpenRefine-Projekt mit ähnlichen oder gleichen Datenstrukturen erstellen
|
|
||||||
* Oben links im Reiter "Undo / Redo den Button "Apply..." drücken
|
|
||||||
* Den Inhalt der Zwischenablage einfügen (z.B. mit ```STRG```+```V```) und den Button "Perform Operations" drücken.
|
|
||||||
|
|
||||||
## Download des Shell-Scripts openrefine-batch
|
|
||||||
|
|
||||||
* Falls OpenRefine im Terminal noch läuft, beenden Sie es durch die Tastenkombination ```STRG```+```C```.
|
|
||||||
* Geben Sie im Terminal folgende Befehle ein:
|
|
||||||
|
|
||||||
```
|
|
||||||
wget https://github.com/felixlohmeier/openrefine-batch/archive/master.zip
|
|
||||||
unzip master.zip
|
|
||||||
cd openrefine-batch-master
|
|
||||||
chmod +x openrefine-batch.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Tutorial aus Kapitel 3.4 automatisiert bearbeiten
|
|
||||||
|
|
||||||
In dem Download sind die Daten aus dem Tutorial enthalten. Wenn Sie mögen, können Sie die mitgelieferte JSON-Datei im Ordner examples/powerhouse-museum/config/ durch Ihre eigene Transformationshistorie ersetzen.
|
|
||||||
|
|
||||||
Geben Sie im Terminal folgenden Befehl ein, um das Script ```openrefine-batch.sh``` auf den mitgelieferten Beispieldaten laufen zu lassen:
|
|
||||||
|
|
||||||
```
|
|
||||||
./openrefine-batch.sh \
|
|
||||||
-a examples/powerhouse-museum/input/ \
|
|
||||||
-b examples/powerhouse-museum/config/ \
|
|
||||||
-c examples/powerhouse-museum/output/ \
|
|
||||||
-f tsv \
|
|
||||||
-i processQuotes=false \
|
|
||||||
-i guessCellValueTypes=true \
|
|
||||||
-RX
|
|
||||||
```
|
|
23
kapitel-4.md
|
@ -1,23 +0,0 @@
|
||||||
# Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche
|
|
||||||
|
|
||||||
In diesem Kapitel werden wir zunächst den Suchindex Apache Solr installieren und kennenlernen. Solr ist eine weit verbreite Software für Volltextsuchmaschinen und quasi Industriestandard, also nichts bibliotheksspezifisches.
|
|
||||||
|
|
||||||
Nachdem wir uns mit Solr vertraut gemacht haben, laden wir die Testdaten aus dem vorigen Kapitel als TSV in den Solr-Index. Solr versucht dabei automatisch ein Schema zu bilden, anhand derer die Daten suchbar gemacht werden. Dieses Schema werden wir kontrollieren und so anpassen, dass es für eine Meta-Suche geeignet sind.
|
|
||||||
|
|
||||||
Abschließend werden wir weitere Daten mit OpenRefine gemäß des Schemas transformieren und ebenfalls in den Solr-Index laden. So erhalten wir eine Suchmaschine zur Meta-Suche über mehrere Datenquellen.
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
|
|
||||||
|
|
||||||
* [4.1 Installation von Solr](/kapitel-4/41-installation-von-solr.md)
|
|
||||||
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
|
|
||||||
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
|
|
||||||
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
|
|
||||||
* [4.5 Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [Solr, warum es mehr ist, als eine fahlschgeschriebene Sonne…](https://elenasdiscovery.wordpress.com/2017/11/18/solr-warum-es-mehr-ist-als-eine-fahlschgeschriebene-sonne/) und [Wir bauen einen Bibliothekskatalog – Teil 3](https://elenasdiscovery.wordpress.com/2017/11/18/wir-bauen-einen-bibliothekskatalog-teil-3/)
|
|
||||||
* Marina Hess: [Solr - Unser Suchindex](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/wir-indexieren-mit-solr/)
|
|
||||||
* Franziska Neuenschwander: [Modellierung für Meta-Suche mit Apache Solr](https://bainblogweb.wordpress.com/2017/11/28/modellierung-fur-meta-suche-mit-apache-solr/)
|
|
||||||
* Moreno Pontoriero: [O Solr mio](https://morenoexplores.wordpress.com/2017/11/26/o-solr-mio/)
|
|
||||||
* Aline Strauss: [Suchmaschinen, Modellierung für Meta-Suche 16/11/2017](https://alinesbiblio.wordpress.com/2017/11/27/suchmaschinen-modellierung-fuer-meta-suche-16-11-2017/)
|
|
|
@ -1,37 +0,0 @@
|
||||||
# 4.1 Installation von Solr
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
Wir verwenden die Version 7.1 von Solr.
|
|
||||||
|
|
||||||
* Geben Sie im Terminal folgende Befehle ein, um diese Version herunterzuladen und zu entpacken:
|
|
||||||
|
|
||||||
```
|
|
||||||
wget http://archive.apache.org/dist/lucene/solr/7.1.0/solr-7.1.0.tgz
|
|
||||||
tar zxf solr-7.1.0.tgz
|
|
||||||
```
|
|
||||||
|
|
||||||
siehe auch: [Offizielle Installationsanleitung](https://lucene.apache.org/solr/guide/installing-solr.html)
|
|
||||||
|
|
||||||
## Solr mit Beispielkonfiguration starten
|
|
||||||
|
|
||||||
* Geben Sie im Terminal folgenden Befehl ein, um Solr mit der Beispielkonfiguration "techproducts" zu starten:
|
|
||||||
|
|
||||||
```
|
|
||||||
~/solr-7.1.0/bin/solr -e techproducts
|
|
||||||
```
|
|
||||||
|
|
||||||
* Laden Sie anschließend ein paar mitgelieferte Beispieldaten, damit in der integrierten Suchoberfläche etwas mehr zu sehen ist:
|
|
||||||
|
|
||||||
```
|
|
||||||
~/solr-7.1.0/bin/post -c techproducts ~/solr-7.1.0/example/exampledocs/*
|
|
||||||
```
|
|
||||||
|
|
||||||
siehe auch: [Offizielle Anleitung "Running Solr"](https://lucene.apache.org/solr/guide/running-solr.html)
|
|
||||||
|
|
||||||
## Administrations- und integrierte Suchoberfläche
|
|
||||||
|
|
||||||
Nach einer kurzen Wartezeit (max. 1 Minute) sollten folgende Oberflächen im Browser erreichbar sein:
|
|
||||||
|
|
||||||
* Administrationsoberfläche: <http://localhost:8983/>
|
|
||||||
* Integrierte Suchoberfläche: <http://localhost:8983/solr/techproducts/browse>
|
|
|
@ -1,13 +0,0 @@
|
||||||
# 4.2 Tutorial zu Solr
|
|
||||||
|
|
||||||
Zum Kennenlernen von Solr bearbeiten wir zunächst einen kleinen Teil des offiziellen Solr Tutorials der Version 7.1.
|
|
||||||
|
|
||||||
## Aufgabe: Kapitel "Basic Searching" durcharbeiten
|
|
||||||
|
|
||||||
Bearbeiten Sie jetzt den Abschnitt "Basic Searching" im offiziellen Solr Tutorial und machen Sie sich mit dem Query-Interface vertraut:
|
|
||||||
<http://lucene.apache.org/solr/guide/7_1/solr-tutorial.html#tutorial-searching>
|
|
||||||
|
|
||||||
## Hinweise
|
|
||||||
|
|
||||||
* Geben Sie auch die im Tutorial genannten ```curl```-Befehle ins Terminal ein.
|
|
||||||
* Den folgenden Abschnitt "Exercise 1 Wrap Up" bitte nicht bearbeiten.
|
|
|
@ -1,72 +0,0 @@
|
||||||
# 4.3 Daten in Solr laden
|
|
||||||
|
|
||||||
## Solr beenden und starten
|
|
||||||
|
|
||||||
Solr wurde als Prozess gestartet, der bis zum nächsten Neustart des Rechners weiterläuft. Starten Sie jetzt Solr mit folgenden Befehlen neu, damit wir nicht mehr im Beispielverzeichnis `techproducts` arbeiten, sondern im Standardverzeichnis.
|
|
||||||
|
|
||||||
* Solr beenden:`~/solr-7.1.0/bin/solr stop -all`
|
|
||||||
* Solr starten:`~/solr-7.1.0/bin/solr start`
|
|
||||||
|
|
||||||
Etwa 15-30 Sekunden nach dem Startbefehl sollte die Administrationsoberfläche unter der gewohnten Adresse \([http://localhost:8983](http://localhost:8983)\) erreichbar sein.
|
|
||||||
|
|
||||||
## Index erstellen \(im Terminal\)
|
|
||||||
|
|
||||||
Erstellen Sie jetzt einen eigenen Suchindex mit dem Namen `htw`:
|
|
||||||
|
|
||||||
```
|
|
||||||
~/solr-7.1.0/bin/solr create -c htw
|
|
||||||
```
|
|
||||||
|
|
||||||
## Daten aus Kap. 3.5 laden \(im Terminal\)
|
|
||||||
|
|
||||||
Wir benötigen jetzt die in Kapitel 3.5 erstellten Testdaten. Falls Sie dort auf Probleme gestoßen sind, finden Sie auf der Seite [Lösungen](/losungen.md) eine Datei, die Sie hier nutzen können.
|
|
||||||
|
|
||||||
Der folgende Befehl indexiert die Daten aus der Datei `einstein.tsv` aus dem Ordner `Downloads` \(die Datei wird ganz am Ende mit der öffnenden spitzen Klammer als input benannt\) im Suchindex `htw`.
|
|
||||||
|
|
||||||
```
|
|
||||||
curl "http://localhost:8983/solr/htw/update/csv?commit=true&separator=%09&split=true&f.creator.separator=%E2%90%9F" --data-binary @- -H 'Content-type:text/plain; charset=utf-8' < ~/Downloads/einstein.tsv
|
|
||||||
```
|
|
||||||
|
|
||||||
Weitere Erläuterungen des Befehls:
|
|
||||||
|
|
||||||
* Die Basis der URL, die mit curl aufgerufen wird \(`http://localhost:8983/solr/htw/update/csv`\) ist die Adresse des CSV-Update-Handlers von Solr für den Index `htw`.
|
|
||||||
* Der Teil `commit=true` sorgt dafür, dass die Daten sofort in der Anzeige sichtbar werden.
|
|
||||||
* Bei TSV-Dateien muss das Trennzeichen \(`separator=%09`\) explizit mitgegeben werden.
|
|
||||||
* Solr muss außerdem mitgeteilt werden, dass Felder mehrfachbelegt sind \(`split=true`\) und mit welchem Zeichen diese jeweils getrennt sind \(`f.creator.separator=%E2%90%9F`\)
|
|
||||||
* Der ganze hintere Teil `--data-binary @- -H 'Content-type:text/plain; charset=utf-8'` ist spezifisch für das Senden von Dateien mit curl.
|
|
||||||
|
|
||||||
Weitere mehrfachbelegte Felder ergänzen Sie, indem Sie vor dem zweiten Anführungszeichen einen weiteren Teil wie folgt anfügen. Beispiel für das Feld `title`:
|
|
||||||
|
|
||||||
```
|
|
||||||
&f.title.separator=%E2%90%9F
|
|
||||||
```
|
|
||||||
|
|
||||||
Der komplette Befehl sieht dann wie folgt aus:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl "http://localhost:8983/solr/htw/update/csv?commit=true&separator=%09&split=true&f.contributor.separator=%E2%90%9F&f.coverage.separator=%E2%90%9F&f.creator.separator=%E2%90%9F&f.date.separator=%E2%90%9F&f.description.separator=%E2%90%9F&f.extent.separator=%E2%90%9F&f.format.separator=%E2%90%9F&f.identifier.separator=%E2%90%9F&f.language.separator=%E2%90%9F&f.pages.separator=%E2%90%9F&f.publisher.separator=%E2%90%9F&f.title.separator=%E2%90%9F&f.type.separator=%E2%90%9F" --data-binary @- -H 'Content-type:text/plain; charset=utf-8' < ~/Downloads/einstein.tsv
|
|
||||||
```
|
|
||||||
|
|
||||||
## Prüfen Sie das Ergebnis
|
|
||||||
|
|
||||||
In der Browsing-Oberfläche \([http://localhost:8983/solr/htw/browse](http://localhost:8983/solr/htw/browse)\) können Sie prüfen, ob die Daten indexiert wurden. Sie werden feststellen, dass keine Daten im Index angekommen sind.
|
|
||||||
|
|
||||||
Schauen Sie noch einmal in das Terminal. Auf den `curl`-Befehl hatten Sie eine Rückmeldung erhalten, aus der das Problem ersichtlich ist. Darin steht unter anderem:
|
|
||||||
|
|
||||||
> Error adding field 'date'='uuuu' msg=For input string: \"uuuu\"
|
|
||||||
|
|
||||||
Fehlermeldungen finden Sie übrigens auch in der Administrationsoberfläche im Bereich "Logging": [http://localhost:8983/solr/\#/~logging](http://localhost:8983/solr/#/~logging)
|
|
||||||
|
|
||||||
Warum ist die Indexierung gescheitert?
|
|
||||||
|
|
||||||
* Solr versucht in der Standardeinstellung die Datentypen \(Text, Zahl, Datum, usw.\) automatisch zu erkennen und generiert daraus automatisch ein Schema. Wenn später in der Datei noch andere Daten folgen, die nicht zum "erratenen" Schema passen, dann bricht der Import ab.
|
|
||||||
* Die ersten Datensätze in unserer TSV-Datei enthalten in der Spalte `date` eine Jahreszahl (1967, 1980, 1979 usw.). Solr schließt daraus, dass das Feld `date` nur Zahlen beinhalten darf und verwendet den Feldtyp `plongs` (TrieLongField, 64-bit signed integer).
|
|
||||||
* In einem der hinteren Datensätze unserer TSV-Datei stehen in der Spalte `date` Buchstaben (uuuu). Buchstaben sind im Feldtyp `plongs` nicht zugelassen. Daher bricht der Import ab.
|
|
||||||
|
|
||||||
Wir müssen also entweder das Schema manuell definieren oder die Daten vereinheitlichen, damit wir diese erfolgreich indexieren können. Darum kümmern wir uns im nächsten Kapitel.
|
|
||||||
|
|
||||||
Das `u` steht übrigens für `Date element is totally or partially unknown` und ist im MARC-Feld `008` Zeichen 7-10 [explizit zugelassen](https://www.loc.gov/marc/bibliographic/bd008a.html). Da der Suchindex Apache Solr mit dem `u` aber nichts anfangen kann, hätten wir dies in der Transformation in Kapitel 3.5 berücksichtigen müssen. Eine Lösungsmöglichkeit wäre gewesen, die Ungenauigkeit durch einen Zeitraum (Anfangs- und Enddatum) auszudrücken. Dafür gibt es in Solr [weitreichende Möglichkeiten](https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#WorkingwithDates-DateRangeFormatting).
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
* [Offizielle Anleitung zum Einspielen von CSV-Daten](https://lucene.apache.org/solr/guide/7_1/uploading-data-with-index-handlers.html#csv-formatted-index-updates)
|
|
|
@ -1,53 +0,0 @@
|
||||||
# 4.4 Konfiguration des Solr Schemas
|
|
||||||
|
|
||||||
Ab Solr Version 6.0 ist das sogenannte "managed schema" \(auch "schemaless mode" genannt\) voreingestellt. Solr analysiert bei der Indexierung die Daten und versucht das Schema selbst zu generieren. Felder können aber weiterhin zusätzlich manuell definiert werden.
|
|
||||||
|
|
||||||
Rufen Sie dazu die Admin-Oberfläche auf. Wählen Sie im Menü "Core Selector" den Index "htw" und dann im zweiten Menü den Punkt "Schema". Direktlink: [http://localhost:8983/solr/\#/htw/schema](http://localhost:8983/solr/#/htw/schema)
|
|
||||||
|
|
||||||
## Automatisch erkanntes Feld date löschen
|
|
||||||
|
|
||||||
Durch die Indexierung in Kapitel 4.3 hat Solr automatisch einige Felder im Schema definiert. Rufen Sie im Menü das Feld `date` auf. Sie werden sehen, dass als Feldtyp `plongs` definiert wurde. Direkte Änderungen sind hier nicht möglich, daher drücken Sie den Button `delete field` und bestätigen Sie die Sicherheitsabfrage mit `delete`.
|
|
||||||
|
|
||||||
## Feld date manuell neu anlegen
|
|
||||||
|
|
||||||
Nun können wir das Feld `date` manuell definieren. Gehen Sie dazu wie folgt vor:
|
|
||||||
|
|
||||||
* Button "Add Field" drücken
|
|
||||||
* Name `date` eingeben \(Groß- und Kleinschreibung ist wichtig\)
|
|
||||||
* Als `field type` die Option `text_general` auswählen (damit ist fast alles erlaubt)
|
|
||||||
* Button `Add field` drücken
|
|
||||||
|
|
||||||
## "Catchall" Copy Field anlegen
|
|
||||||
|
|
||||||
In der Standardkonfiguration gibt es keine übergreifende Suche. Im [Query-Interface](http://localhost:8983/solr/#/htw/query) und in der [integrierten Suchoberfläche](http://localhost:8983/solr/techproducts/browse) müsste stets ein Feld bei der Suche definiert werden. Damit ähnlich wie bei dem `techproducts`-Tutorial eine freie Texteingabe möglich wird, definieren wir eine Kopieranweisung aller Werte \(`*`\) in das Standard-Feld \(`_text_`\).
|
|
||||||
|
|
||||||
* Button "Add Copy Field" drücken
|
|
||||||
* source: `*`
|
|
||||||
* destination: `_text_`
|
|
||||||
|
|
||||||
## Neuindexierung
|
|
||||||
|
|
||||||
Damit die Änderungen wirksam werden, müssen wir die Daten erneut indexieren.
|
|
||||||
|
|
||||||
Schritt 1: Index leeren:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl "http://localhost:8983/solr/htw/update?commit=true" -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
|
|
||||||
```
|
|
||||||
|
|
||||||
Schritt 2: `einstein.tsv` indexieren \(hier mit Mehrfachbelegungen\):
|
|
||||||
|
|
||||||
```
|
|
||||||
curl "http://localhost:8983/solr/htw/update/csv?commit=true&separator=%09&split=true&f.contributor.separator=%E2%90%9F&f.coverage.separator=%E2%90%9F&f.creator.separator=%E2%90%9F&f.date.separator=%E2%90%9F&f.description.separator=%E2%90%9F&f.extent.separator=%E2%90%9F&f.format.separator=%E2%90%9F&f.identifier.separator=%E2%90%9F&f.language.separator=%E2%90%9F&f.pages.separator=%E2%90%9F&f.publisher.separator=%E2%90%9F&f.title.separator=%E2%90%9F&f.type.separator=%E2%90%9F" --data-binary @- -H 'Content-type:text/plain; charset=utf-8' < ~/Downloads/einstein.tsv
|
|
||||||
```
|
|
||||||
|
|
||||||
## Ergebnis prüfen
|
|
||||||
|
|
||||||
Rufen Sie nun erneut die Browsing-Oberfläche \([http://localhost:8983/solr/htw/browse](http://localhost:8983/solr/htw/browse)\) auf. Jetzt sollten die Daten erscheinen und suchbar sein.
|
|
||||||
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
* [Exercise 2: Modify the Schema and Index Films Data \(im Solr Tutorial\)](http://lucene.apache.org/solr/guide/7_1/solr-tutorial.html#exercise-2)
|
|
||||||
* [Einführungsartikel zu "Managed Schema"](https://support.lucidworks.com/hc/en-us/articles/221618187-What-is-Managed-Schema-)
|
|
||||||
* [Einführungsartikel zur Definition von Feldern im Schema](http://www.solrtutorial.com/schema-xml.html)
|
|
|
@ -1,20 +0,0 @@
|
||||||
# 4.5 Bonus: Weitere Daten indexieren
|
|
||||||
|
|
||||||
Um eine Meta-Suche über verschiedene Datenquellen zu ermöglichen, müssen alle Daten nach dem gleichen Schema indexiert werden. Nur wenn es große Überschneidungen bei den Suchfeldern gibt, macht eine übergreifende Suche mit Filtermöglichkeiten (Facetten) Sinn.
|
|
||||||
|
|
||||||
Wir haben mit Dublin Core bereits ein Schema verwendet, dass als kleinster gemeinsamer Nenner auch für andere Daten gut geeignet ist. Damit wir weitere Daten indexieren können, müssen wir diese also ebenfalls so transformieren, dass Sie dem Dublin Core Schema folgen.
|
|
||||||
|
|
||||||
In Kapitel 3 haben wir im OpenRefine Tutorial mit Daten des Powerhouse Museum gearbeitet. Diese Daten können wir indexieren, wenn wir zuvor die Spalten gemäß der Feldbezeichnungen in unserem Schema umbenennen. Weiterhin benötigt Solr immer einen eindeutigen Identifier pro Datensatz (bei unseren Tabellendaten also pro Zeile).
|
|
||||||
|
|
||||||
## Aufgabe 1: Transformieren Sie die Daten des Powerhouse Museum mit OpenRefine
|
|
||||||
|
|
||||||
* Benennen Sie die Spalten so um, dass Sie auf die Feldbezeichnungen in unserem Schema (Dublin Core) passen. Die erste Spalte muss `id` lauten und muss mit einem eindeutigen Identifier versehen sein.
|
|
||||||
* Exportieren Sie die Daten als TSV
|
|
||||||
|
|
||||||
## Aufgabe 2: Indexieren Sie die Daten in Solr
|
|
||||||
|
|
||||||
* Verwenden Sie dazu den bekannten Befehl mit `curl` (vgl. Kap. 4.3/4.4)
|
|
||||||
|
|
||||||
## Lösung
|
|
||||||
|
|
||||||
Beispiele und Ergebnisse zu den obigen Aufgaben finden Sie auf der Seite [Lösungen](/losungen.md).
|
|
19
kapitel-5.md
|
@ -1,19 +0,0 @@
|
||||||
# Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung
|
|
||||||
|
|
||||||
Als letzten Schritt in der Kette werden wir in diesem Kapitel das Content-Management-System TYPO3 sowie die Erweiterung TYPO3-find installieren. Beides zusammen bildet die Nutzeroberfläche für den Bibliothekskatalog.
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
|
|
||||||
|
|
||||||
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
|
|
||||||
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
|
|
||||||
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
|
|
||||||
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
|
|
||||||
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [TYPO3](https://elenasdiscovery.wordpress.com/2017/11/30/typo3/) und [Wir bauen uns einen Bibliothekskatalog - Teil 4](https://elenasdiscovery.wordpress.com/2017/11/30/wir-bauen-einen-bibliothekskatalog-teil-4/)
|
|
||||||
* Marina Hess: [Portaloberfläche](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/portaloberfl%C3%A4che/)
|
|
||||||
* Franziska Neuenschwander: [TYPO3 – Katalogserstellung nicht ganz einfach gemacht (30.11)](https://bainblogweb.wordpress.com/2017/12/12/typo3-katalogserstellung-nicht-ganz-einfach-gemacht-30-11/)
|
|
||||||
* Moreno Pontoriero: [Das CMS und seine Komplizen](https://morenoexplores.wordpress.com/2017/12/07/das-cms-und-seine-komplizen/)
|
|
||||||
* Aline Strauss: [Katalogsoftware und Suchmaschinenoptimierung 30/11/17](https://alinesbiblio.wordpress.com/2017/12/13/katalogsoftware-und-suchmaschinenoptimierung-30-11-17/)
|
|
|
@ -1,84 +0,0 @@
|
||||||
# 5.1 Installation von TYPO3 und TYPO3-find
|
|
||||||
|
|
||||||
Ziel: In diesem Kapitel fügt sich das Puzzle zusammen. Wir haben mit OpenRefine die Daten transformiert und als TSV-Dateien gespeichert. Mit dem Suchindex Solr haben wir die TSV-Dateien indexiert. Nun installieren wir die Katalogoberfläche TYPO3-find, um die Daten aus dem Suchindex auf einer Webseite für die NutzerInnen zur Verfügung zu stellen.
|
|
||||||
|
|
||||||
Begriffe:
|
|
||||||
|
|
||||||
* TYPO3 ist ein häufig genutztes Content Management System (CMS) für Webseiten
|
|
||||||
* TYPO3-find ist eine von der SUB Göttingen entwickelte Erweiterung für TYPO3
|
|
||||||
|
|
||||||
Für Ubuntu gibt es derzeit kein Installationspaket, daher müssen wir die für TYPO3 benötigten Komponenten (Webserver, Datenbank, PHP) manuell installieren.
|
|
||||||
|
|
||||||
## Benötigte Pakete (Apache, MySQL, PHP, Composer) installieren
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install apache2 libapache2-mod-php7.0 php7.0 php7.0-mysql mysql-server php-gd php-json php-imagick php-mbstring php-curl php-apcu php-soap php-xml php-zip composer
|
|
||||||
```
|
|
||||||
|
|
||||||
Während der Installation müssen Sie ein Root-Passwort für MySQL vergeben. Denken Sie sich eins aus und notieren Sie dies.
|
|
||||||
|
|
||||||
## Konfiguration MySQL
|
|
||||||
|
|
||||||
Wenn die Installation abgeschlossen ist, müssen wir eine Datenbank und eine/n Nutzer/in anlegen:
|
|
||||||
* ```mysql -u root -p```
|
|
||||||
* MySQL-root-Passwort eingeben
|
|
||||||
* Anschließend folgende Befehle eingeben (_secretpassword_ durch ein eigenes Passwort ersetzen):
|
|
||||||
```
|
|
||||||
CREATE DATABASE typo3 DEFAULT CHARACTER SET utf8;
|
|
||||||
CREATE USER typo3_db_user@localhost IDENTIFIED BY 'secretpassword';
|
|
||||||
GRANT ALL PRIVILEGES ON typo3.* TO typo3_db_user@localhost;
|
|
||||||
FLUSH PRIVILEGES;
|
|
||||||
quit;
|
|
||||||
```
|
|
||||||
|
|
||||||
## Konfiguration PHP
|
|
||||||
|
|
||||||
Optimieren Sie die Einstellungen von PHP für TYPO3:
|
|
||||||
```
|
|
||||||
sudo sed -i 's/max_execution_time = 30/max_execution_time = 240/' /etc/php/7.0/apache2/php.ini
|
|
||||||
sudo sed -i 's/; max_input_vars = 1000/max_input_vars = 1500/' /etc/php/7.0/apache2/php.ini
|
|
||||||
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/7.0/apache2/php.ini
|
|
||||||
```
|
|
||||||
|
|
||||||
Abschließend ist ein Neustart des Webservers erforderlich:
|
|
||||||
```
|
|
||||||
sudo /etc/init.d/apache2 restart
|
|
||||||
```
|
|
||||||
|
|
||||||
## TYPO3 mit Composer installieren
|
|
||||||
|
|
||||||
Wir nutzen eine [Distribution von Cedric Ziel](https://github.com/cedricziel/typo3-find-distribution), die TYPO3 und die Erweiterung TYPO3-find beinhaltet. Die Installation erfolgt mit Hilfe des Tools Composer, das wir im ersten Schritt zusammen mit den anderen Paketen installiert haben.
|
|
||||||
|
|
||||||
Geben Sie folgende Befehle ins Terminal ein:
|
|
||||||
|
|
||||||
```
|
|
||||||
cd /var/www/
|
|
||||||
sudo composer create-project cedricziel/typo3-find-distribution katalog dev-master
|
|
||||||
```
|
|
||||||
|
|
||||||
Das Installationsprogramm ```composer``` lädt alle benötigten Programmteile. Die abschließende Abfrage können Sie mit Y oder n beantworten, das ist nicht entscheidend. Nach erfolgter Installation geben Sie folgende weiteren Befehle ins Terminal ein:
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
cd katalog
|
|
||||||
sudo chown www-data:www-data -R web
|
|
||||||
sudo touch web/FIRST_INSTALL
|
|
||||||
sudo sh -c 'echo "<VirtualHost *:80>
|
|
||||||
DocumentRoot /var/www/katalog/web
|
|
||||||
ServerName katalog
|
|
||||||
Options -Indexes
|
|
||||||
DirectoryIndex index.php index.html
|
|
||||||
</VirtualHost>" > /etc/apache2/sites-available/katalog.conf'
|
|
||||||
sudo a2ensite katalog.conf
|
|
||||||
sudo a2dissite 000-default.conf
|
|
||||||
sudo service apache2 reload
|
|
||||||
```
|
|
||||||
|
|
||||||
## Konfiguration von TYPO3 mit dem Installationsassistent
|
|
||||||
|
|
||||||
Nach der Installation erreichen Sie TYPO3 unter der Adresse http://localhost. Dort treffen Sie zunächst auf den Installationsassistenten.
|
|
||||||
* In Schritt 2 muss als Username ```typo3_db_user``` und das von Ihnen für den Nutzer typo3_db_user gesetzte Passwort (secretpassword) eingetragen werden.
|
|
||||||
* In Schritt 3 wählen Sie die Datenbank ```typo3``` in der Option "use an existing empty database"
|
|
||||||
* In Schritt 4 müssen Sie einen weiteren Account anlegen, diesmal für die Administration von TYPO3. Notieren Sie sich Benutzername und Passwort.
|
|
||||||
* Wählen Sie in Schritt 5 die Option ```Yes, create a base empty page to start from.```
|
|
|
@ -1,64 +0,0 @@
|
||||||
# 5.2 Grundkonfiguration von TYPO3-find
|
|
||||||
|
|
||||||
Falls der Computer zwischenzeitlich neu gestartet wurde, muss der Suchindex Solr neu gestartet werden:
|
|
||||||
```
|
|
||||||
~/solr-7.1.0/bin/solr start
|
|
||||||
```
|
|
||||||
|
|
||||||
Die Administrationsoberfläche von TYPO3 ist unter folgender URL verfügbar: http://localhost/typo3/.
|
|
||||||
|
|
||||||
## Menü Extensions
|
|
||||||
|
|
||||||
* In der Liste neben dem Eintrag ```Find``` auf den Würfel klicken, um die Extension zu aktivieren
|
|
||||||
|
|
||||||
## Menü Page
|
|
||||||
|
|
||||||
* Seite ```Home``` auswählen
|
|
||||||
* Button +Content in Spalte "Normal" drücken und im Reiter ```Plugins``` das Plugin ```TYPO3 Find``` auswählen
|
|
||||||
* Oben den Save-Button betätigen.
|
|
||||||
|
|
||||||
## Menü List
|
|
||||||
|
|
||||||
* Gleiche Seite auswählen, auf der vorhin das Plugin eingefügt wurde (müsste noch vorausgewählt sein)
|
|
||||||
* Das Template ```Main TypoScript Rendering``` bearbeiten
|
|
||||||
* Reiter ```General```: In Textfeld ```Setup``` den vorhandenen Inhalt durch Folgendes ersetzen
|
|
||||||
```
|
|
||||||
page = PAGE
|
|
||||||
page.100 < styles.content.get
|
|
||||||
page.javascriptLibs.jQuery = 1
|
|
||||||
page.includeJS.find = EXT:find/Resources/Public/JavaScript/find.js
|
|
||||||
plugin.tx_find.features.requireCHashArgumentForActionArguments = 0
|
|
||||||
plugin.tx_find.settings {
|
|
||||||
connections {
|
|
||||||
default {
|
|
||||||
options {
|
|
||||||
host = localhost
|
|
||||||
port = 8983
|
|
||||||
path = /solr/htw
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
standardFields {
|
|
||||||
title = title
|
|
||||||
snippet = creator
|
|
||||||
}
|
|
||||||
facets {
|
|
||||||
10 {
|
|
||||||
id = format
|
|
||||||
field = format
|
|
||||||
sortOrder = count
|
|
||||||
}
|
|
||||||
20 {
|
|
||||||
id = language
|
|
||||||
field = language
|
|
||||||
sortOrder = count
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
* Reiter ```Includes```: Rechts bei ```available items``` das Item ```Find (find)``` anklicken.
|
|
||||||
* Oben den Save-Button betätigen
|
|
||||||
|
|
||||||
Rufen Sie anschließend die Webseite http://localhost auf. Der Katalog sollte erscheinen.
|
|
||||||
|
|
||||||
Über das Template im Textfeld ```Setup``` kann TYPO3-find konfiguriert werden. Die Funktionen und Konfigurationsmöglichkeiten sind in der Dokumentation beschrieben: http://typo3-find.readthedocs.io/en/latest/index.html
|
|
|
@ -1,23 +0,0 @@
|
||||||
# 5.3 Konfiguration von TYPO3-find erweitern
|
|
||||||
|
|
||||||
Über das Template im Textfeld ```Setup``` (vgl. den letzten Schritt aus dem vorigen Kapitel) kann TYPO3-find konfiguriert werden.
|
|
||||||
|
|
||||||
## Aufgabe: Ergänzen Sie eine weitere Facette
|
|
||||||
|
|
||||||
Hinweise:
|
|
||||||
|
|
||||||
* Verwenden Sie das Feld ```date``` für die Facette
|
|
||||||
|
|
||||||
Literatur:
|
|
||||||
|
|
||||||
* Dokumentation von TYPO3-find: http://typo3-find.readthedocs.io/en/latest/index.html
|
|
||||||
|
|
||||||
Lösung:
|
|
||||||
|
|
||||||
* Die benötigte Konfiguration ist auf der Seite [Lösungen](/losungen.md) dokumentiert.
|
|
||||||
|
|
||||||
## Bonus: Darstellung der Trefferliste und Detailseite anpassen
|
|
||||||
|
|
||||||
Für die Anpassung der Detailseiten müssen gemäß der Dokumentation von TYPO3-find die Dateien ```Result.html``` und ```Detail.html``` im Ordner ```Resources/Private/Partials/Display/``` der Extension bearbeitet werden.
|
|
||||||
|
|
||||||
Die Dateien liegen bei unserer Installation im Ordner ```/var/www/katalog/web/typo3conf/ext/find/Resources/Private/Partials/Display```.
|
|
|
@ -1,85 +0,0 @@
|
||||||
# 5.4 Relevanzranking mit TYPO3-find und Solr
|
|
||||||
|
|
||||||
TYPO3-find basiert auf dem Suchindex Solr, weshalb für das Relevanzranking die Konfigurationsmöglichkeiten von Solr genutzt werden können. Eine Verbesserung der Relevanzsortierung von Trefferlisten kann in der Praxis bereits durch eine einfache Gewichtung der Felder erzielt werden.
|
|
||||||
|
|
||||||
* Relevanz ist abhängig vom Nutzungskontext, d.h. von der Person, die sucht und von ihrem Erkenntnisinteresse zum jeweiligen Zeitpunkt.
|
|
||||||
* Discovery-Systeme versuchen eine subjektiv als "gut" empfundene Relevanzsortierung durch eine unterschiedliche Gewichtung der verschiedenen Metadatenfelder (Titel, UrheberIn, Beschreibungstext) herzustellen.
|
|
||||||
* Wenn die Daten uneinheitlich sind (z.B. wenn zu einem Objekt viele und zu einem anderen Objekt sehr wenige beschreibende Daten vorliegen), dann führt dies oft zu unerwarteten Rankings, weil der Suchindex in der Standardkonfiguration das Verhältnis der Suchtreffer in einem Dokument zur Gesamtlänge des Dokuments in die Berechnung der Relevanzsortierung einfließen lässt.
|
|
||||||
* Weil die Definition eines Algorithmus auf Basis von objektiven Kriterien so schwer fällt, wird in der Praxis die Gewichtung der Felder oft experimentell auf Basis von häufig durchgeführten Suchen austariert. Nutzerstudien sind beim Relevanzranking also besonders wichtig.
|
|
||||||
|
|
||||||
## Schritt 1: Parser konfigurieren
|
|
||||||
|
|
||||||
Die Suchabfragen werden in Solr durch einen Parser interpretiert. Der voreingestellte Parser erlaubt keine einfache Gewichtung von Feldern, daher nutzen wir den sogenannten "eDismax" Parser. Dieser Parser muss in der Konfiguration von TYPO3-find aktiviert werden. Rufen Sie dazu die TYPO3-Administrationsoberfläche in der virtuellen Maschine auf http://localhost/typo3/ und wählen Sie im Menü List / Seite "Home" das Template "Main TypoScript Rendering". Ersetzen Sie dort den vorhandenen Eintrag im Textfeld Setup durch folgenden Abschnitt und drücken Sie anschließend den Save-Button:
|
|
||||||
|
|
||||||
```
|
|
||||||
page = PAGE
|
|
||||||
page.100 < styles.content.get
|
|
||||||
page.javascriptLibs.jQuery = 1
|
|
||||||
page.includeJS.find = EXT:find/Resources/Public/JavaScript/find.js
|
|
||||||
plugin.tx_find.features.requireCHashArgumentForActionArguments = 0
|
|
||||||
plugin.tx_find.settings {
|
|
||||||
connections {
|
|
||||||
default {
|
|
||||||
options {
|
|
||||||
host = localhost
|
|
||||||
port = 8983
|
|
||||||
path = /solr/htw
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
standardFields {
|
|
||||||
title = title
|
|
||||||
snippet = creator
|
|
||||||
}
|
|
||||||
facets {
|
|
||||||
10 {
|
|
||||||
id = format
|
|
||||||
field = format
|
|
||||||
sortOrder = count
|
|
||||||
}
|
|
||||||
20 {
|
|
||||||
id = language
|
|
||||||
field = language
|
|
||||||
sortOrder = count
|
|
||||||
}
|
|
||||||
30 {
|
|
||||||
id = date
|
|
||||||
field = date
|
|
||||||
sortOrder = count
|
|
||||||
}
|
|
||||||
}
|
|
||||||
features {
|
|
||||||
eDisMax = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Schritt 2: Relevanzranking einstellen
|
|
||||||
|
|
||||||
Im folgenden Befehl sind alle Felder mit Faktor 1 gewichtet. Variieren Sie die Zahlen und entfernen Sie Felder, die Sie aus dem Relevanzranking ausschließen wollen. Prüfen Sie die Ergebnisse im Katalog, machen Sie Beispielsuchen und nähern Sie sich Stück für Stück einem effektiven Relevanzranking an.
|
|
||||||
|
|
||||||
Befehl zur Eingabe im Terminal:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl http://localhost:8983/solr/htw/config -H 'Content-type:application/json' -d '{
|
|
||||||
"update-requesthandler": {
|
|
||||||
"name": "/select",
|
|
||||||
"class":"solr.SearchHandler",
|
|
||||||
"defaults":{
|
|
||||||
"echoParams":"explicit",
|
|
||||||
"rows":"10"
|
|
||||||
},
|
|
||||||
"appends":{
|
|
||||||
"defType":"edismax",
|
|
||||||
"qf":"contributor^1 coverage^1 creator^1 date^1 description^1 extent^1 format^1 identifier^1 language^1 pages^1 publisher^1 rights^1 title^1 type^1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
* Präsentation von Elmar Haake: Relevanzranking als Erfolgsfaktor für Discoverysysteme. http://docplayer.org/3530893-Relevanzranking-als-erfolgsfaktor-fuer-discoverysysteme-elmar-haake-staats-und-universitaetsbibliothek-bremen.html
|
|
||||||
* Hajo Seng: Relevance-Ranking auf dem VuFind-Anwendertreffen (siehe die dort verlinkten Papiere und Vortragsfolien). http://beluga-blog.sub.uni-hamburg.de/blog/2015/10/02/relevance-ranking-auf-dem-vufind-anwendertreffen-2015/
|
|
||||||
* Solr/Lucene Score Tutorial: http://www.openjems.com/solr-lucene-score-tutorial/
|
|
||||||
* The Extended DisMax Query Parser: https://cwiki.apache.org/confluence/display/solr/The+Extended+DisMax+Query+Parser
|
|
|
@ -1,33 +0,0 @@
|
||||||
# 5.5 Suchmaschinenoptimierung
|
|
||||||
|
|
||||||
Die Optimierung für Suchmaschinen wie Google oder Bing ist ein großes Geschäft. Regelmäßig werden die Ranking-Algorithmen angepasst und entsprechend häufig und vielfältig sind die auf dem Markt erhältlichen Beratungsangebote. Wer ganz oben im Ranking landen möchte, muss viel Zeit und ggf. auch Geld investieren. Gleichzeitig gibt es ein paar Grundregeln, die schon für eine wesentliche Verbesserung sorgen. Dazu zählt die Beachtung von aktuellen Webstandards, der Optimierung für Mobilgeräte und die intelligente Nutzung von HTML-Metadaten. Das bringt aktuelle Software in der Regel automatisch mit.
|
|
||||||
|
|
||||||
Was ist bei Bibliothekskatalogen im Speziellen zu beachten? Hier am Beispiel von VuFind vier grundlegende Punkte:
|
|
||||||
|
|
||||||
## 1. Für jeden Datensatz eine Seite
|
|
||||||
|
|
||||||
Wer die Katalogeinträge selbst in Suchmaschinen auffindbar machen möchte, muss die Informationen auf Webseiten unter einer permanent verfügbaren URL bereitstellen. Wenn der Suchmaschinenindex neu aufgebaut wird, dann sollte sich diese URL nicht ändern.
|
|
||||||
|
|
||||||
Beispiel: Der Eintrag für das Buch "Data science, learning by latent structures, and knowledge discovery" ist bei Swissbib unter folgender URL erreichbar: [https://www.swissbib.ch/Record/339722088](https://www.swissbib.ch/Record/339722088)
|
|
||||||
|
|
||||||
VuFind bringt diese URL-Struktur automatisch mit. Ein besseres Ranking würde sich vermutlich noch ergeben, wenn der Titel in der URL selbst vorkommen würde (z.B. so: https://www.swissbib.ch/Record/339722088-data-science-learning-by-latent-structures-and-knowledge-discovery).
|
|
||||||
|
|
||||||
Um zu prüfen, ob eine Webseite bereits in den Google-Index aufgenommen wurde, kann eine Suche mit dem Zusatz ```site:domain.com``` erfolgen. Beispiel: ```Data science, learning by latent structures, and knowledge discovery site:swissbib.ch```.
|
|
||||||
|
|
||||||
## 2. Anweisungen für Suchmaschinen in der robots.txt
|
|
||||||
|
|
||||||
In der Datei robots.txt im Hauptverzeichnis der Domain (Beispiel: [https://www.swissbib.ch/robots.txt](https://www.swissbib.ch/robots.txt)) können Anweisungen für die Suchmaschinen gegeben werden. In der Regel werden hier nur Ausschlüsse definiert, beispielsweise um zu vermeiden, dass Suchmaschinen die Server überlasten.
|
|
||||||
|
|
||||||
Siehe auch: [Dokumentation im Handbuch von VuFind zur robots.txt](https://vufind.org/wiki/administration:robots.txt)
|
|
||||||
|
|
||||||
## 3. Sitemap erstellen
|
|
||||||
|
|
||||||
Suchmaschinen-Crawler folgen in der Regel den Links, die von der Startseite einer Webseite aus gesetzt werden. Ein Suchschlitz wird von den Crawlern in der Regel eher nicht bedient. Daher kann es helfen, wenn eine sogenannte Sitemap mit Links zu allen Unterseiten erstellt wird. VuFind bietet dazu ein eigenes Tool an.
|
|
||||||
|
|
||||||
Siehe auch: [Dokumentation im Handbuch von VuFind zur Sitemap](https://vufind.org/wiki/administration:search_engine_optimization)
|
|
||||||
|
|
||||||
## 4. Eingebettete Metadaten
|
|
||||||
|
|
||||||
In den letzten Jahren hat die herstellerübergreifende Initiative [schema.org](http://schema.org/) einen Standard etabliert, mit dem Inhalte von Webseiten direkt im HTML mit einem Metadaten-Vokabular ausgezeichnet werden kann. Dazu gehören Öffnungszeiten, aber auch Medien wie Bücher, Filme, Musik und so weiter. Die Auszeichnung mit diesen eingebetteten Metadaten kann das Ranking wesentlich verbessern.
|
|
||||||
|
|
||||||
Siehe auch: [Dan Scott (30.8.2013): RDFa and schema.org all the library things](https://coffeecode.net/rdfa-and-schemaorg-all-the-library-things.html)
|
|
18
kapitel-6.md
|
@ -1,18 +0,0 @@
|
||||||
# Kapitel 6: Metadaten in Repositorien und Crosswalks
|
|
||||||
|
|
||||||
Als Alternative zur manuellen Arbeit mit OpenRefine, Solr und TYPO3-find lernen wir in diesem Kapitel die Komplettlösung VuFind kennen. Dazu bearbeiten wir ein Tutorial zu Installation, Konfiguration und Testdatenimport. Anschließend benutzen wir die Software MarcEdit, um Metadaten aus Repositorien mit integrierten Crosswalks ins MARC-Format zu konvertieren. Diese Daten importieren wir dann in VuFind.
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
|
|
||||||
|
|
||||||
* [6.1 VuFind-Tutorial](/kapitel-6/61_vufind-tutorial.md)
|
|
||||||
* [6.2 Daten im Format MARC21 indexieren](/kapitel-6/62_daten-im-format-marc21-indexieren.md)
|
|
||||||
* [6.3 Installation von MarcEdit](/kapitel-6/63_installation-von-marcedit.md)
|
|
||||||
* [6.4 Harvesting mit MarcEdit](/kapitel-6/64_harvesting-mit-marcedit.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [VuFind – Oder eher „Vu“ didn’t find?](https://elenasdiscovery.wordpress.com/2017/12/26/vufind-oder-eher-vu-didnt-find/)
|
|
||||||
* Marina Hess: [Komplett - Lösung = VuFind(?)](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/komplettl%C3%B6sung/)
|
|
||||||
* Franziska Neuenschwander: [VuFind und MarcEdit – die etwas bessere Lösung (14.12)](https://bainblogweb.wordpress.com/2018/01/10/vufind-und-marcedit-die-etwas-bessere-losung-14-12/)
|
|
||||||
* Moreno Pontoriero: [Discovery System einfach gemacht](https://morenoexplores.wordpress.com/2017/12/27/discovery-system-einfach-gemacht/)
|
|
||||||
* Aline Strauss: [Metadaten in Repositorien 14/12/17](https://alinesbiblio.wordpress.com/2018/01/10/metadaten-in-repositorien-14-12-17/)
|
|
|
@ -1,21 +0,0 @@
|
||||||
# 6.1 VuFind-Tutorial
|
|
||||||
|
|
||||||
Ziel: Mit VuFind und MarcEdit lernen Sie in diesem Kapitel Software kennen, die speziell für das MARC-Format entwickelt wurde. Im Vergleich zum manuellen/generischen Weg in den Kapiteln 3 bis 5 (OpenRefine, Solr, TYPO3-find) können Sie mit der Komplettlösung VuFind schneller Ergebnisse erzielen.
|
|
||||||
|
|
||||||
## Tutorial: Installation und Konfiguration einer Demo von VuFind
|
|
||||||
|
|
||||||
Wir verwenden ein Tutorial, dass Stefan Niesner in einer [Projektarbeit aus dem Jahr 2015](http://malisprojekte.web.th-koeln.de/wordpress/stefan-niesner/) entwickelt hatte und für diesen Kurs auf die neue VuFind-Version 4.1 aktualisiert wurde.
|
|
||||||
|
|
||||||
Lesefassung bei GitBook \(HTML\): <https://www.gitbook.com/read/book/felixlohmeier/vufind-tutorial-de>
|
|
||||||
|
|
||||||
Bitte bearbeiten Sie die Kapitel 3 bis 9:
|
|
||||||
|
|
||||||
* [3. Installation von VuFind](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/03_Installation_VuFind.html)
|
|
||||||
* [4. Durchführung eines Testimports](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/04_Installation_Testimport.html)
|
|
||||||
* [5. Überblick zur Konfiguration](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/05_Konfiguration_Ueberblick.html)
|
|
||||||
* [6. Allgemeine Einstellungen](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/06_Konfiguration_Allgemein.html)
|
|
||||||
* [7. Anpassung der Katalogoberfläche](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/07_Konfiguration_Katalogoberflaeche.html)
|
|
||||||
* [8. Konfiguration der Facetten](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/08_Konfiguration_Facetten.html)
|
|
||||||
* [9. Konfiguration von Kataloganreicherungen](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/09_Konfiguration_Kataloganreicherungen.html)
|
|
||||||
|
|
||||||
Bitte beachten Sie, dass die Installation von VuFind Teile der TYPO3-Installation überschreibt und somit der Prototyp aus Kapitel 5 anschließend nicht mehr verfügbar sein wird. Legen Sie ggf. eine Sicherheitskopie an, wenn Sie darauf noch weiter zugreifen wollen.
|
|
|
@ -1,24 +0,0 @@
|
||||||
# 6.2 Daten im Format MARC21 indexieren
|
|
||||||
|
|
||||||
Wenn Sie mindestens das [Kapitel 3 "Installation von VuFind" des VuFind-Tutorials](https://felixlohmeier.gitbooks.io/vufind-tutorial-de/content/03_Installation_VuFind.html) bearbeitet haben, dann sollte Ihre VuFind-Installation bereit für den Import (weiterer) Daten sein.
|
|
||||||
|
|
||||||
Wir laden für diesen Kurs Daten aus Schweizer Bibliotheks- und Archivbeständen.
|
|
||||||
|
|
||||||
Direkt in VuFind lassen sich Daten in den Formaten MARC21 (binäres MARC, Dateiendung .mrc) und MARCXML (Dateiendung .marcxml) importieren. Für den Import von Daten in (anderen) XML-Formaten sind größere Anpassungen erforderlich. Wir laden daher in diesem Kapitel zunächst Daten im Format MARC21.
|
|
||||||
|
|
||||||
## Rare Books der ETH-Bibliothek
|
|
||||||
|
|
||||||
Die ETH-Bibliothek stellt im Rahmen Ihrer Open-Data-Initiative [Downloads ganzer Metadatensets](http://www.library.ethz.ch/en/ms/Open-Data-at-ETH-Library/Downloads) (sogenannte "Bulk Data") zur Verfügung. Wir laden das Metadatenset "Rara" (Rare Books).
|
|
||||||
|
|
||||||
1. Daten herunterladen
|
|
||||||
* `wget download.library.ethz.ch/opendata/eth_rar.marcxml.gz -O ~/Downloads/eth_rar.marcxml.gz`
|
|
||||||
* `gunzip ~/Downloads/eth_rar.marcxml.gz`
|
|
||||||
2. Solr starten (nur erforderlich wenn zwischenzeitlich neu gestartet wurde)
|
|
||||||
* `/usr/local/vufind/solr.sh start`
|
|
||||||
3. Import konfigurieren in Datei `/usr/local/vufind/import/marc_local.properties`
|
|
||||||
* `collection = Rare Books`
|
|
||||||
* `institution = ETH-Bibliothek`
|
|
||||||
4. Indexierung durchführen
|
|
||||||
* ` /usr/local/vufind/import-marc.sh ~/Downloads/eth_rar.marcxml`
|
|
||||||
5. Suchindex optimieren (optional)
|
|
||||||
* `php /usr/local/vufind/util/optimize.php`
|
|
|
@ -1,49 +0,0 @@
|
||||||
# 6.3 Installation von MarcEdit
|
|
||||||
|
|
||||||
## MarcEdit herunterladen
|
|
||||||
|
|
||||||
Wir nutzen die Version 6.3.x für Linux, vgl. <http://marcedit.reeset.net/downloads>.
|
|
||||||
|
|
||||||
Installationsdatei herunterladen und entpacken:
|
|
||||||
|
|
||||||
```
|
|
||||||
cd ~
|
|
||||||
wget http://marcedit.reeset.net/software/marcedit.bin.zip
|
|
||||||
unzip marcedit.bin.zip
|
|
||||||
rm -f marcedit.bin.zip
|
|
||||||
```
|
|
||||||
|
|
||||||
## Benötigte Programmbibliotheken installieren
|
|
||||||
|
|
||||||
Für die Ausführung von MarcEdit unter Linux werden Programmbibliotheken der Firma Index Data und die Programmumgebung Mono (zur Ausführung von .NET Programmen) benötigt.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo sh -c 'echo "deb http://ftp.indexdata.dk/ubuntu xenial main deb-src http://ftp.indexdata.dk/ubuntu xenial main" >> /etc/apt/sources.list'
|
|
||||||
wget http://ftp.indexdata.dk/debian/indexdata.asc
|
|
||||||
sudo apt-key add indexdata.asc
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install mono-complete zlibc libyaz5 libyaz5-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## Konfiguration von MarcEdit anpassen
|
|
||||||
|
|
||||||
Damit Z39.50 und ähnliche Dienste funktionieren, müssen abschließend noch die Programmbibliotheken in einer Konfigurationsdatei von MarcEdit bekannt gemacht werden:
|
|
||||||
|
|
||||||
```
|
|
||||||
echo '<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<dllmap dll="yaz4_32.dll" target="libyaz.so.5" />
|
|
||||||
<dllmap dll="yaz4_64.dll" target="libyaz.so.5" />
|
|
||||||
<dllmap dll="yaz3.dll" target="libyaz.so.5" />
|
|
||||||
</configuration>' > ~/marcedit/Zoom.Net.YazSharp.dll.config
|
|
||||||
```
|
|
||||||
|
|
||||||
## MarcEdit starten
|
|
||||||
|
|
||||||
```
|
|
||||||
mono ~/marcedit/MarcEdit.exe
|
|
||||||
```
|
|
||||||
|
|
||||||
Beim ersten Start muss dann noch eine Einstellung vorgenommen werden:
|
|
||||||
|
|
||||||
* Menü `Locations` Pfad zur Programmbibliothek Mono \(`Mono Path`\) setzen: `/usr/bin/mono`
|
|
|
@ -1,37 +0,0 @@
|
||||||
# 6.4 Harvesting mit MarcEdit
|
|
||||||
|
|
||||||
## Z39.50-Schnittstelle abfragen
|
|
||||||
|
|
||||||
1. Auf das Zahnrad unten rechts auf der Startseite klicken und den Dialog mit OK bestätigen. Anschließend sollte das Tool Z39.50/SRU Client auf der Startseite von MarcEdit erscheinen.
|
|
||||||
2. Tool `Z39.50/SRU Client` starten
|
|
||||||
3. Schnittstelle des NEBIS-Verbunds ergänzen
|
|
||||||
* Modify Databases / Add Database / Import from Master List
|
|
||||||
* aus der langen Liste NEBIS auswählen (ID: db270)
|
|
||||||
4. Set Options
|
|
||||||
* Limit: 100
|
|
||||||
* Save File: `einstein` im Ordner `Downloads`
|
|
||||||
* Checkbox `Override local limits` aktivieren
|
|
||||||
5. Search Mode
|
|
||||||
* Search: `albert einstein` (Title)
|
|
||||||
* Options: Select database anklicken und NEBIS auswählen
|
|
||||||
* Download mit grünem Pfeil starten
|
|
||||||
* Mehrfach ganz unten den Link "Get Next 100" anklicken, bis alle Records geladen sind
|
|
||||||
* Rechtsklick auf einen Record und Option `Download All Records` wählen.
|
|
||||||
|
|
||||||
Die Daten sollten jetzt in einer Datei `einstein.mrc` im Ordner `Downloads` liegen.
|
|
||||||
|
|
||||||
## Daten in VuFind indexieren
|
|
||||||
|
|
||||||
1. Solr starten (nur erforderlich wenn zwischenzeitlich neu gestartet wurde)
|
|
||||||
* `/usr/local/vufind/solr.sh start`
|
|
||||||
2. Import konfigurieren in Datei `/usr/local/vufind/import/marc_local.properties`
|
|
||||||
* `collection = Einstein`
|
|
||||||
* `institution = NEBIS`
|
|
||||||
3. Indexierung durchführen
|
|
||||||
* `/usr/local/vufind/import-marc.sh ~/Downloads/einstein.mrc`
|
|
||||||
4. Suchindex optimieren (optional)
|
|
||||||
* `php /usr/local/vufind/util/optimize.php`
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
University Library, University of Illinois at Urbana-Champaign (Hrsg.): Querying Z39.50 Databases. In: LibGuide MarcEdit. An introduction to the MARC record editing software MarcEdit. Stand: 20.10.2017. <http://guides.library.illinois.edu/c.php?g=463460&p=3168074>
|
|
23
kapitel-7.md
|
@ -1,23 +0,0 @@
|
||||||
# Kapitel 7: Linked Data und weitere Metadatenstandards
|
|
||||||
|
|
||||||
Nach einer grundlegenden Einführung in Linked Data (Kap. 7.1 und 7.2) haben Günter Hipler (Systems Architect) und Silvia Witzig (Metadata Specialist) von der UB Basel die Sitzung vom 11. Januar gestaltet (Kap. 7.3 bis 7.9). Sie haben das Projekt [Linked swissbib](http://linked.swissbib.ch) vorgestellt und anhand von Praxisbeispielen erläutert, wie die Projektergebnisse derzeit in die produktive Umgebung von swissbib integriert werden.
|
|
||||||
|
|
||||||
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 6 Stunden Zeit:
|
|
||||||
|
|
||||||
* [7.1 Semantische Daten](/kapitel-7/71_semantische-daten-fuer-webauftritt.md)
|
|
||||||
* [7.2 Linked Data nach dem Hype](/kapitel-7/72_linked-data-nach-dem-hype.md)
|
|
||||||
* [7.3 Projekt Linked swissbib](/kapitel-7/73_projekt-linked-swissbib.md)
|
|
||||||
* [7.4 Datenmodell und Datentransformation](/kapitel-7/74_datenmodell-und-datentransformation.md)
|
|
||||||
* [7.5 Übung: RDF mit Metafacture generieren](/kapitel-7/75_uebung-rdf-mit-metafacture-generieren.md)
|
|
||||||
* [7.6 Verlinkung und Anreicherung](/kapitel-7/76_verlinkung-und-anreicherung.md)
|
|
||||||
* [7.7 Übung: Linking mit Limes](/kapitel-7/77_uebung-linking-mit-limes.md)
|
|
||||||
* [7.8 Oberfläche: Projektresultate und Integration](/kapitel-7/78_oeberflaeche-projektresultate-integration.md)
|
|
||||||
* [7.9 Publikation und Nachnutzung](/kapitel-7/79_publikation-und-nachnutzung.md)
|
|
||||||
|
|
||||||
Beiträge in den Lerntagebüchern der Studierenden:
|
|
||||||
|
|
||||||
* Elena Capelli: [Zusammenfassung einer verpassten Sitzung](https://elenasdiscovery.wordpress.com/2018/02/05/zusammenfassung-einer-verpassten-sitzung/) und [Reflexion zu BAIN](https://elenasdiscovery.wordpress.com/2018/02/05/reflexion-zu-bain/)
|
|
||||||
* Marina Hess: [Linked Data in Bibliotheken](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/linked-data/) und [Abschluss](https://mainsuche.jimdo.com/abschluss/)
|
|
||||||
* Franziska Neuenschwander: [Linked Data for Libraries (11.1)](https://bainblogweb.wordpress.com/2018/01/31/linked-data-for-libraries-11-1/) und [This is it, folks!](https://bainblogweb.wordpress.com/2018/01/31/this-is-it-folks/)
|
|
||||||
* Moreno Pontoriero: [Geschichten aus Basel](https://morenoexplores.wordpress.com/2018/01/30/geschichten-aus-basel/) und [Vorhang zu...](https://morenoexplores.wordpress.com/2018/01/31/vorhang-zu/)
|
|
||||||
* Aline Strauss: [Linked Data – Gastvortrag linkedswissbib 11/01/18](https://alinesbiblio.wordpress.com/2018/01/31/linked-data-gastvortrag-linkedswissbib-11-01-18/) und [Auch eine schöne Reise hat irgendwann ein Ende…](https://alinesbiblio.wordpress.com/2018/01/31/auch-eine-schoene-reise-hat-irgendwann-ein-ende/)
|
|
|
@ -1,26 +0,0 @@
|
||||||
# 7.1 Semantische Daten für Webauftritt
|
|
||||||
|
|
||||||
## Wozu Linked Data?
|
|
||||||
|
|
||||||
Linked Data dient der Verknüpfung zwischen Datensilos: Der Computer kann Verweisen in den Daten folgen und Zusatzinformationen aus externen Quellen automatisch heranziehen. Ein möglicher Anwendungsfall ist die Anzeige von Zusatzinformationen im Bibliothekskatalog über Personen, die nicht in den Katalogdaten stehen und beim Aufruf live aus einer Personendatenbank geladen werden.
|
|
||||||
|
|
||||||
Der [Fachinformationsdienst Performing Arts](http://www.performing-arts.eu) nutzt den Dienst [Entity Facts der Deutschen Nationalbibliothek](http://www.dnb.de/EN/Wir/Projekte/Abgeschlossen/entityFacts.html), um Personeninformationen im Katalog anzuzeigen. Hier das [Beispiel für Johann Wolfgang von Goethe](http://www.performing-arts.eu/Search/AuthorityResults?lookfor=gnd_118540238&type=agentID):
|
|
||||||
|
|
||||||
[![](/images/fid-performing-arts-entity-facts-goethe.png)](http://www.performing-arts.eu/Search/AuthorityResults?lookfor=gnd_118540238&type=agentID)
|
|
||||||
|
|
||||||
Die Informationen im blauen Kasten über die Person Johann Wolfgang von Goethe werden live beim Aufruf der Katalogsuche über den Dienst Entity Facts geladen.
|
|
||||||
|
|
||||||
## Präsentation zu semantischen Daten von Andreas Bohne-Lang \(2016\)
|
|
||||||
|
|
||||||
Eine notwendige Voraussetzung für die Nutzung von Linked Data ist die semantische Auszeichnung der Daten mit einem übergreifenden Standard-Vokabular. Bevor wir näher auf Bibliothekskataloge eingehen, betrachten wir zunächst die Chancen für Webauftritte der Bibliotheken.
|
|
||||||
|
|
||||||
[![](../images/bohne-lang-2016.png)](https://www.umm.uni-heidelberg.de/bibl/ueberuns/vortraege_folien/vortraege_bl_semandaten_agmb_2016.pdf)
|
|
||||||
|
|
||||||
Quelle: <https://www.umm.uni-heidelberg.de/bibl/ueberuns/vortraege_folien/vortraege_bl_semandaten_agmb_2016.pdf>
|
|
||||||
|
|
||||||
Vgl. auch [Kapitel 5.5](/kapitel-5/55_suchmaschinenoptimierung.md)
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
* Danowski, Patrick; Pohl, Adrian (Hrsg.) (2013): (Open) Linked Data in Bibliotheken. <http://dx.doi.org/10.1515/9783110278736>.
|
|
||||||
* Stettler, Niklaus; Aschwanden, Michael; Mastrandrea, Elena; Süsstrunk, Norman; Wenk, Bruno (2015): Linked (Open) Data - Von der Theorie zur Praxis. <http://linkeddata.fh-htwchur.ch>.
|
|
|
@ -1,28 +0,0 @@
|
||||||
# 7.2 Linked Data nach dem Hype
|
|
||||||
|
|
||||||
## Präsentation von Kai Eckert (2015)
|
|
||||||
|
|
||||||
[![](/images/eckert-2015.png)](https://www.slideshare.net/kaiec/linked-data-nach-dem-hype)
|
|
||||||
|
|
||||||
Quelle: <https://www.slideshare.net/kaiec/linked-data-nach-dem-hype>
|
|
||||||
|
|
||||||
## Potentiale von Linked Data für Bibliotheken
|
|
||||||
|
|
||||||
Im Seminar haben wir versucht die praktischen Potentiale von Linked Data am Flipchart zu sammeln. Herausgekommen sind folgende Punkte:
|
|
||||||
|
|
||||||
* Katalogisierungsprinzip (z.B. in [BIBFRAME](https://www.loc.gov/bibframe/))
|
|
||||||
* übergreifende Suche
|
|
||||||
* Verwandtes/Zusammengehöriges entdecken
|
|
||||||
* Statistische Analysen
|
|
||||||
* Einheitlichkeit und Effizienz
|
|
||||||
|
|
||||||
Ermöglicht werden diese Potentiale durch die Verknüpfung von bisher unverbundenen Datensilos mit Bezug auf gemeinsame Identifier.
|
|
||||||
|
|
||||||
* Grundlegendes Datenmodell ist das [Resource Description Framework (RDF)](https://www.w3.org/RDF/) in verschiedenen Serialisierungsformen (Turtle, N-Triples, N-Quads und aktuell besonders [JSON-LD](https://json-ld.org/)).
|
|
||||||
* Ein Austausch wird ermöglicht durch die Nutzung standardisierter Vokabulare wie [dcterms](http://lov.okfn.org/dataset/lov/vocabs/dcterms), [schema](http://lov.okfn.org/dataset/lov/vocabs/schema), [foaf](http://lov.okfn.org/dataset/lov/vocabs/foaf), [bibo](http://lov.okfn.org/dataset/lov/vocabs/bibo) und so weiter.
|
|
||||||
* Die Daten werden in sogenannten Triple-Stores abgelegt und sind über die Abfragesprache SPARQL abrufbar. Was mit SPARQL möglich ist, zeigt eindrücklich der [Wikidata Query Service](https://query.wikidata.org).
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
* [Einführungsartikel zu Resource Description Framework (RDF)](http://linkeddata.fh-htwchur.ch/Grundlagen-StrukturierteBeschreibung.html)
|
|
||||||
* [Einführungsartikel zur Abfragesprache SPARQL](http://linkeddata.fh-htwchur.ch/Grundlagen-SPARQL.html)
|
|
|
@ -1,61 +0,0 @@
|
||||||
# 7.3 Projekt Linked swissbib
|
|
||||||
|
|
||||||
## Swissbib Architektur
|
|
||||||
|
|
||||||
Die Grafik zeigt die Systemarchitektur von swissbib im Jahre 2014, bevor das Projekt Linked swissbib gestartet ist. Besonderer Wert wurde auf die Trennung verschiedener Layer gelegt, die über Schnittstellen miteinander interagieren. Dadurch wurde es möglich, kommerzielle Software (OCLC CBS) mit Open-Source-Software zu mischen.
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-01-ausgangslage.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-01-ausgangslage.png)
|
|
||||||
|
|
||||||
## Ziele von linked.swissbib
|
|
||||||
|
|
||||||
1. Konversion des swissbib data sets in ein RDF Datenmodell (als Grundlage für Datenverknüpfungen)
|
|
||||||
2. Nutze die Möglichkeiten von verlinkten Informationen in eigenen Services und biete sie anderen zur Nachnutzung an
|
|
||||||
3. Verwendung von freier (möglichst erprobter) Software, entwickelt durch vergleichbare Institutionen. Entwicklungen sollten durch andere nachgenutzt werden können
|
|
||||||
|
|
||||||
Das Projekt startete 2014 als das Thema Linked Data für Bibliotheken noch vergleichsweise neu war und überwiegend theoretisch diskutiert wurde. Swissbib war prädestiniert für einen Praxistest, weil das Datenset von Swissbib schon umfassend ist und verschiedene Datenquellen beinhaltet. Die Nachnutzung der Projektergebnisse von linked swissbib für die Produktivumgebung von swissbib war von Beginn an ein erklärtes Ziel.
|
|
||||||
|
|
||||||
Das Projekt wurde von [swissuniversities](https://www.swissuniversities.ch) gefördert und gemeinsam von drei Partnern durchgeführt:
|
|
||||||
* Haute école de gestion de Genève: Schwerpunkt Datengenerierung
|
|
||||||
* Hochschule für Technik und Wirtschaft Chur: Schwerpunkt Oberfläche
|
|
||||||
* Universitätsbibliothek Basel: Schwerpunkt Infrastruktur
|
|
||||||
|
|
||||||
## Resultate
|
|
||||||
|
|
||||||
### Datentransformation
|
|
||||||
|
|
||||||
Aus etwa 29 Mio. MARC Aufnahmen wurden etwa 125 Mio. Dokumente in JSON-LD generiert, die in 6 Konzepte aufgeteilt sind:
|
|
||||||
|
|
||||||
1. Bibliographic Resource
|
|
||||||
2. Document
|
|
||||||
3. Item
|
|
||||||
4. Work
|
|
||||||
5. Person
|
|
||||||
6. Organisation
|
|
||||||
|
|
||||||
### Suche
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-02-suche.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-02-suche.png)
|
|
||||||
|
|
||||||
### Personenseiten
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-03-personenseite.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-03-personenseite.png)
|
|
||||||
|
|
||||||
### RESTful API
|
|
||||||
|
|
||||||
CC-0 Daten stehen unter der Adresse <http://data.swissbib.ch> zur Nachnutzung zur Verfügung.
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-04-api.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-04-api.png)
|
|
||||||
|
|
||||||
## Systemarchitektur mit linked.swissbib
|
|
||||||
|
|
||||||
Die folgende Grafik zeigt die Systemarchitektur von swissbib inklusive der neuen Komponenten von linked.swissbib. Anstelle eines üblichen SPARQL-Endpoints wurde eine eigene RESTFUL API auf Basis von Elasticsearch implementiert.
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-05-systemarchitektur.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-05-systemarchitektur.png)
|
|
||||||
|
|
||||||
## Workflow und Komponenten
|
|
||||||
|
|
||||||
* Die Datentransformation erfolgt mit Metafacture, zukünftig ergänzt um die Big-Data-Technologie Spark (dazu mehr in Kap. 7.4).
|
|
||||||
* Die Anreicherung erfolgt mit LIMES (dazu mehr in Kap. 7.6).
|
|
||||||
* Die Daten werden in einem Elasticsearch-Suchindex lokal gespeichert. Mehr Informationen zur Verwendung von Elastic Search ist einem Vortrag auf einem Meetup vom August 2016 zu entnehmen (vgl. [Video](https://www.elastic.co/videos/elasticsearch-as-hub-for-linked-bibliographic-metadata-zurich-meetup-august-2016) und [Folien](http://files.meetup.com/7646592/20160831 Elasticsearch as Hub for Linked Bibliographic Metadata.pdf))
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-06-workflow.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-06-workflow.png)
|
|
|
@ -1,116 +0,0 @@
|
||||||
# 7.4 Datenmodell und Datentransformation
|
|
||||||
|
|
||||||
## Datenmodell
|
|
||||||
|
|
||||||
Das Datenmodell von linked.swissbib wurde anhand der Frage "Was wollen wir auf der Oberfläche anbieten?" nutzergesteuert entwickelt:
|
|
||||||
|
|
||||||
* Aggregationsseiten (eigener und angereicherter Inhalt)
|
|
||||||
* Knowledge Cards (Inspiration: Google Knowledge Graph), jeweils zu Autoren, Werken und Themen
|
|
||||||
* Erweitertes Autocomplete
|
|
||||||
|
|
||||||
Die MARC-Datensätze wurden dazu in 6 bibliographische Konzepte aufgeteilt:
|
|
||||||
|
|
||||||
1. Bibliographic Resource
|
|
||||||
2. Document
|
|
||||||
3. Item
|
|
||||||
4. Work
|
|
||||||
5. Person
|
|
||||||
6. Organisation
|
|
||||||
|
|
||||||
Siehe auch: Dokumentation des Datenmodells unter <https://linked-swissbib.github.io/datamodel/>
|
|
||||||
|
|
||||||
## Vokabularien
|
|
||||||
|
|
||||||
Es wurde der Ansatz verfolgt, möglichst bekannte, viel genutzte Vokabulare zu verwenden. Letztlich wurden folgende Vokabulare nachgenutzt:
|
|
||||||
|
|
||||||
* Dublin Core (dc/dct)
|
|
||||||
* Bibliographic Ontology (bibo)
|
|
||||||
* Bibframe (bf)
|
|
||||||
* RDA – unconstrained properties (rdau)
|
|
||||||
* Friend of a friend (foaf)
|
|
||||||
* DBpedia (dbp)
|
|
||||||
* Schema (sch)
|
|
||||||
* Web Ontology Language (owl)
|
|
||||||
* RDF Schema (rdfs)
|
|
||||||
* Simple Knowledge Organisation System (skos)
|
|
||||||
|
|
||||||
Darüber hinaus wurde ein eigenes Vokabular "Linked swissbib (lsb)" verwendet, um Literale aus DBpedia zu speichern.
|
|
||||||
|
|
||||||
## Datentransformation
|
|
||||||
|
|
||||||
Das folgende Beispiel [Jane Austen's letters](https://www.swissbib.ch/Record/260865931) wurde aus einer MARC-Aufnahme von swissbib gebildet (d.h. mit der Software CBS bereits aus verschiedenen Bibliothekssystemen zusammengeführte Daten).
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-07a-jane-austen-katalog.png)](https://www.swissbib.ch/Record/260865931)
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-07b-jane-austen-marc.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-07b-jane-austen-marc.png)
|
|
||||||
|
|
||||||
### Bibliographic Resource
|
|
||||||
|
|
||||||
Um auszuwählen, welche MARC-Felder für das Konzept "Bibliographic Resource" genutzt werden sollen, wurde wie folgt vorgegangen:
|
|
||||||
|
|
||||||
* Die am häufigsten vorkommenden MARC Felder werden transformiert.
|
|
||||||
* Die für die Oberfläche notwendigen MARC Felder werden transformiert.
|
|
||||||
|
|
||||||
Daraufhin wurden 22 MARC-Felder ausgewählt. Bei der Transformation werden Links unter anderem auf die folgenden externen Webseiten gesetzt:
|
|
||||||
|
|
||||||
- geonames.org für Länder
|
|
||||||
- d-nb.info/gnd/ für Sachschlagworte
|
|
||||||
- lexvo.org für Sprache
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-08-bibliographic-resource.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-08-bibliographic-resource.png)
|
|
||||||
|
|
||||||
### Document und Item
|
|
||||||
|
|
||||||
Es erfolgte eine Trennung von bibliografischen Daten und administrativen Daten:
|
|
||||||
|
|
||||||
* Document: Metadaten über die bibliografischen Daten
|
|
||||||
* Item: Exemplar in einer Bibliothek
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-09-document.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-09-document.png)
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-10-item.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-10-item.png)
|
|
||||||
|
|
||||||
### Work
|
|
||||||
|
|
||||||
Das Werk-Konzept von Linked Swissbib ist aktuell nicht mit dem Werk aus [FRBR](https://en.wikipedia.org/wiki/Functional_Requirements_for_Bibliographic_Records) gleichzusetzen. Abgebildet werden weitere Ausgaben auf swissbib.ch. Das Clustering erfolgt in CBS mittels der Kriterien Titel, Autoren, ISBN und ISSN.
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-11-work.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-11-work.png)
|
|
||||||
|
|
||||||
### Person und Organisation
|
|
||||||
|
|
||||||
Personen werden, wenn möglich, als identisch erkannt und mit einer einheitlichen URI versehen. Die Dublettenerkennung erfolgt über einen "Author Hash" mit den folgenden Kriterien (in dieser Reihenfolge):
|
|
||||||
|
|
||||||
* GND
|
|
||||||
* Name, Titel der Person und Lebensdaten
|
|
||||||
* Name, Titel der Person und Titel der Publikation
|
|
||||||
|
|
||||||
Organisationen werden mit den Kriterien Name, Abteilung, Datum und Ort zusammengeführt, wenn möglich.
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-12-person.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-12-person.png)
|
|
||||||
|
|
||||||
Das Resultat der Datentransformation (vor der Anreicherung) auf einen Blick:
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-13-resultat-vor-anreicherung.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-13-resultat-vor-anreicherung.png)
|
|
||||||
|
|
||||||
## Umsetzung mit Metafacture
|
|
||||||
|
|
||||||
Für das Erstellen der RDF-Konzepte aus einem MARC-Satz wird das Werkzeug [Metafacture](https://github.com/metafacture/metafacture-core) genutzt. In linked.swissbib wird MarcXML in RDF (als JSON-LD) transformiert. Besonderheiten von Metafacture:
|
|
||||||
|
|
||||||
* Metafacture bietet die Möglichkeit, Workflows aus einzelnen Komponenten zusammenzubauen.
|
|
||||||
* Die Datentransformationen werden mit einer Domain Specific Language (DSL) konfiguriert. Durch die Verwendung einer DSL zur Erstellung von Konfigurationsdateien ist Metafacture prinzipiell auch für NichtprogrammiererInnen geeignet (die dann vielleicht Lust auf Mehr bekommen).
|
|
||||||
* Neben der Datentransformation ist auch die Analyse von Metadaten ein wichtiges Einsatzfeld.
|
|
||||||
|
|
||||||
Ein vergleichbares Werkzeug ist [Catmandu](http://librecat.org).
|
|
||||||
|
|
||||||
## Präsentation von Christoph Böhme (2015)
|
|
||||||
|
|
||||||
Im folgenden Kapitel 7.5 werden wir mit einer vorbereiteten Arbeitsumgebung mit Metafacture Beispieldaten in RDF transformieren. Um die Übung besser einordnen zu können, schauen Sie sich zunächst die folgende Präsentation an, die in die Konzepte von Metafacture einführt. Relevant sind hier die Folien 4 bis 18.
|
|
||||||
|
|
||||||
[![](/images/boehme-2014.png)](https://github.com/guenterh/htwChur20180111/blob/master/machwas/metafacture/dokus/presentation.cb.dnb.pdf)
|
|
||||||
|
|
||||||
Quelle: Präsentation von Christoph Böhme (Deutsche Nationalbibliothek) auf dem Metafacture-Workshop der SWIB 2014 in Bonn. Bereitgestellt von Günter Hipler auf GitHub unter <https://github.com/guenterh/htwChur20180111/blob/master/machwas/metafacture/dokus/presentation.cb.dnb.pdf>. Siehe auch komplette Workshop-Materialien unter <http://swib.org/swib14/slides/christoph_swib14_40.zip>
|
|
||||||
|
|
||||||
## Literatur zur Transformation von Bibliotheksmetadaten
|
|
||||||
|
|
||||||
* Beispiel für Mapping von MARC21 zu RDF <https://wiki.dnb.de/display/DINIAGKIM/MARC+21-RDF-Mapping>
|
|
||||||
* Christina Harlow (2015): Data Munging Tools in Preparation for RDF: Catmandu and LODRefine. <http://journal.code4lib.org/articles/11013>
|
|
|
@ -1,49 +0,0 @@
|
||||||
# 7.5 Übung: RDF mit Metafacture generieren
|
|
||||||
|
|
||||||
## Vorgehen in der Übung
|
|
||||||
|
|
||||||
* ein Marc Record dient als Input
|
|
||||||
* wir benutzen die vorbereiteten Shellscripte zur Steuerung der Abläufe
|
|
||||||
|
|
||||||
## Download der Arbeitsumgebung
|
|
||||||
|
|
||||||
Starten Sie ein Terminal und geben Sie die folgenden Befehle ein:
|
|
||||||
|
|
||||||
```
|
|
||||||
wget https://felixlohmeier.de/htw/htwChur.linked.swissbib.tar.gz
|
|
||||||
tar -xzf htwChur.linked.swissbib.tar.gz
|
|
||||||
```
|
|
||||||
|
|
||||||
## Übung
|
|
||||||
|
|
||||||
Folgen Sie der Übung und versuchen Sie anhand der vorhergehenden Einführung in Metafacture die Datentransformation grob nachzuvollziehen.
|
|
||||||
|
|
||||||
### Schritt 1: Schauen Sie sich den Ausgangsdatensatz an
|
|
||||||
|
|
||||||
```
|
|
||||||
pluma ~/htwChur.linked.swissbib/machwas/metafacture/data.in/single.record.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Schritt 2: Schauen Sie sich die Flux-Konfiguration an
|
|
||||||
|
|
||||||
```
|
|
||||||
pluma ~/htwChur.linked.swissbib/machwas/metafacture/transform2RDF.all.flux
|
|
||||||
```
|
|
||||||
|
|
||||||
### Schritt 3: Schauen Sie sich die Metamorph-Konfiguration an
|
|
||||||
|
|
||||||
```
|
|
||||||
pluma ~/htwChur.linked.swissbib/machwas/metafacture/morph/*.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Schritt 4: Starten Sie das vorbereitete Shellscript
|
|
||||||
|
|
||||||
```
|
|
||||||
~/htwChur.linked.swissbib/machwas/metafacture/start.transform2RDF.all.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Schritt 5: Öffnen Sie die Ergebnisse in einem Texteditor
|
|
||||||
|
|
||||||
```
|
|
||||||
pluma ~/htwChur.linked.swissbib/machwas/metafacture/data.out/rdfdump_$(date +%Y%m%d)*
|
|
||||||
```
|
|
|
@ -1,62 +0,0 @@
|
||||||
# 7.6 Verlinkung und Anreicherung
|
|
||||||
|
|
||||||
## Vorgehen
|
|
||||||
|
|
||||||
* Nur Personen werden verlinkt
|
|
||||||
* Verlinkung mit VIAF und DBpedia
|
|
||||||
* Matching über Vorname / Nachname / Lebensdaten oder GND-Nummer
|
|
||||||
* swissbib-Person wird angereichert mit den Informationen aus VIAF und DBpedia
|
|
||||||
|
|
||||||
## Person: VIAF, DBpedia, swissbib
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-14-person.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-14-person.png)
|
|
||||||
|
|
||||||
## Person: VIAF, DBpedia, swissbib - Matching (GND-ID)
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-16-person-matching-gnd.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-16-person-matching-gnd.png)
|
|
||||||
|
|
||||||
## Person: VIAF, DBpedia, swissbib - Matching (Name, Lebensdaten)
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-17-person-matching-lebensdaten.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-17-person-matching-lebensdaten.png)
|
|
||||||
|
|
||||||
## Person: Anreicherung
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-15-person-anreicherung.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-15-person-anreicherung.png)
|
|
||||||
|
|
||||||
## Resultat
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-18-resultat-nach-anreicherung.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-18-resultat-nach-anreicherung.png)
|
|
||||||
|
|
||||||
## Verlinkung mit LIMES
|
|
||||||
|
|
||||||
[LIMES](http://aksw.org/Projects/LIMES.html) ist ein Open-Source-Projekt der Uni Leipzig. Es dient der automatisierten Verknüpfung von identischen Ressourcen.
|
|
||||||
|
|
||||||
Das Ziel ist hier Übereinstimmungen zwischen den 25 Mio. swissbib-Personen und den Personen in DBPedia und VIAF herzustellen.
|
|
||||||
|
|
||||||
Technisch werden diese Übereinstimmungen über eine sameAs-Beziehung gekennzeichnet. Beispiel für ein generiertes RDF triple:
|
|
||||||
|
|
||||||
```
|
|
||||||
<http://data.swissbib.ch/person/8004f8a7-66e6-3880-a4fc-b2b8ae136084>
|
|
||||||
<owl:sameAs>
|
|
||||||
<http://dbpedia.org/resource/Waldo_Rudolph_Wedel>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Schritte des linking workflows bei swissbib
|
|
||||||
|
|
||||||
* Download eines Datendumps von DBPedia / VIAF im RDF Format
|
|
||||||
* Aufbereitung beider Datendumps (Stichwort: sortierte n-triples)
|
|
||||||
* Transformation des kompletten swissbib Bestandes nach RDF mit Metafacture und Vorbereitung der Personentriples zum Vergleich mit Limes (auch hier im Format n-triples)
|
|
||||||
* Suche nach owl:same Verbindungen mit limes
|
|
||||||
* "Nachbereitung" der gefunden Verbindungen (zum Beispiel Speicherung im Triple-Store)
|
|
||||||
|
|
||||||
## Datenqualität
|
|
||||||
|
|
||||||
* Projekt zeigt was mit den vorhandenen Daten möglich ist... und was nicht
|
|
||||||
* Matching von Personen ist schwierig, da oft nur Name und Vorname vorhanden
|
|
||||||
* Für die Mehrheit der Personen kann kein Match erzielt werden
|
|
||||||
* Gute Datenqualität ist Voraussetzung für Verlinkung!
|
|
||||||
|
|
||||||
## Literatur
|
|
||||||
|
|
||||||
* Dokumentation der einzelnen Schritte: <https://guenterh.gitbooks.io/dokumentation-ablauf-linking-mit-limes/content/ubersicht-gesamter-workflow.html>
|
|
||||||
* Bensmann, F., Zapilko, B., & Mayr, P. (2017). Interlinking Large-scale Library Data with Authority Records. Frontiers in Digital Humanities, 4. <https://doi.org/10.3389/fdigh.2017.00005>
|
|
|
@ -1,29 +0,0 @@
|
||||||
# 7.7 Übung: Linking mit Limes
|
|
||||||
|
|
||||||
## Vorgehen in der Übung
|
|
||||||
|
|
||||||
In der in Kapitel 7.5 heruntergeladenen Arbeitsumgebung sind auch Beispieldaten (u.a. DBpedia) für die Verlinkung enthalten. Wir starten ein vorbereitetes Shellscript, dass die Verlinkung durchführt.
|
|
||||||
|
|
||||||
## Übung
|
|
||||||
|
|
||||||
Folgen Sie der Übung und versuchen Sie anhand der vorhergehenden Einführung in LIMES die Verlinkung grob nachzuvollziehen.
|
|
||||||
|
|
||||||
### Schritt 1: Schauen Sie sich die Konfiguration an
|
|
||||||
|
|
||||||
```
|
|
||||||
pluma ~/htwChur.linked.swissbib/machwas/linking/linking/configs/limes_config_u57_1-u57_1.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Schritt 2: Starten Sie das vorbereitete Shellscript
|
|
||||||
|
|
||||||
```
|
|
||||||
~/htwChur.linked.swissbib/machwas/linking/start.linking.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Schritt 3: Prüfen Sie das Ergebnis
|
|
||||||
|
|
||||||
Mit den bereitgestellten Testdaten generiert LIMES genau einen Link. Öffnen Sie das Ergebnis in einem Texteditor:
|
|
||||||
|
|
||||||
```
|
|
||||||
pluma ~/htwChur.linked.swissbib/machwas/linking/linking/configs/accept_u57_1-u57_1.nt
|
|
||||||
```
|
|
|
@ -1,27 +0,0 @@
|
||||||
# 7.8 Oberfläche: Projektresultate und Integration
|
|
||||||
|
|
||||||
## Prototyp Linked Swissbib
|
|
||||||
|
|
||||||
Prototyp: <http://linked.swissbib.ch>
|
|
||||||
|
|
||||||
* Autocomplete
|
|
||||||
* Personen: Knowledge Cards, Detailseiten, Tab
|
|
||||||
* Themen: Knowledge Cards und Detailseiten
|
|
||||||
* Problem mit Dubletten
|
|
||||||
* Aktuell nicht mehrsprachig
|
|
||||||
|
|
||||||
## Integration in swissbib.ch
|
|
||||||
|
|
||||||
Testsystem: <http://devlinked.swissbib.ch>
|
|
||||||
|
|
||||||
Siehe auch: Was ist neu in Swissbib? <http://swissbib.blogspot.de/2017/12/was-ist-neu-in-swissbib.html>
|
|
||||||
|
|
||||||
### Autocomplete
|
|
||||||
|
|
||||||
Anders als im Prototyp auf Solr basierend, damit keine Daten ausgeschlossen werden
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-19-integration-autocomplete.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-19-integration-autocomplete.png)
|
|
||||||
|
|
||||||
### Knowledge Cards und Detailseiten für Personen und Themen
|
|
||||||
|
|
||||||
[![](/images/linked-swissbib-20-integration-knowledge-cards.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/linked-swissbib-20-integration-knowledge-cards.png)
|
|
|
@ -1,48 +0,0 @@
|
||||||
# 7.9 Publikation und Nachnutzung
|
|
||||||
|
|
||||||
## Linked Open Data
|
|
||||||
|
|
||||||
* Im Projekt: Open Data Call
|
|
||||||
* Ca. 80% unter CC0 lizenziert
|
|
||||||
* Kennzeichnung der nicht-CC0 Daten in den Verbünden
|
|
||||||
* Ausschluss dieser Daten für die Schnittstelle data.swissbib.ch
|
|
||||||
|
|
||||||
## Schnittstellen für Maschinen
|
|
||||||
|
|
||||||
<http://data.swissbib.ch>
|
|
||||||
|
|
||||||
* auf REST und Hydra Prinzipien basierend
|
|
||||||
* SPARQL hat oft eine geringe Verfügbarkeit, deshalb bisher nicht eingesetzt
|
|
||||||
|
|
||||||
Beispiel für SPARQL-Abfrage: [Suche nach allen Autoren in DBPedia mit ihren bemerkenswerten Werken und dem Publikationsdatum der Werke](http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&qtxt=PREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+dbo%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2F%3E%0D%0APREFIX+dbp%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fproperty%2F%3E%0D%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0D%0A%0D%0ASELECT+%3Fauthor+%3Fwork+%3Fdate+%0D%0AFROM+%3Chttp%3A%2F%2Fdbpedia.org%2F%3E+%0D%0AWHERE+%7B%0D%0A+++++++%3Fauthor+rdf%3Atype+dbo%3AWriter+.%0D%0A+++++++%3Fauthor+dbo%3AnotableWork+%3Fwork+.%0D%0A+++++++%3Fwork+dbp%3AreleaseDate+%3Fdate+%0D%0A%7D+ORDER+BY+DESC%28%3Fdate%29%0D%0ALIMIT+100%0D%0A&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on) (Quelle: [Kurs Semantic Web 2016 auf OpenHPI](https://open.hpi.de/courses/semanticweb2016))
|
|
||||||
|
|
||||||
## Übung: Lokale SPARQL-Abfrage
|
|
||||||
|
|
||||||
Starten Sie das vorbereitete Shellscript in der Arbeitsumgebung
|
|
||||||
|
|
||||||
```
|
|
||||||
~/htwChur.linked.swissbib/machwas/linking/lokale.sparql.abfrage.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Wie weiter?
|
|
||||||
|
|
||||||
* Daten verbessern: Personen, Werk
|
|
||||||
* Nutzung ermöglichen
|
|
||||||
* Oberfläche ausbauen
|
|
||||||
|
|
||||||
## Quellen und Links
|
|
||||||
|
|
||||||
* GitHub: <https://github.com/swissbib> und <https://github.com/linked-swissbib>
|
|
||||||
* linked.swissbib.ch: Prototype User Interface <http://linked.swissbib.ch>
|
|
||||||
* linked.swissbib.ch: Beta RESTful API <http://data.swissbib.ch>
|
|
||||||
* Blog series "swissbib data goes linked" <http://swissbib.blogspot.ch/2016/04/swissbib-data-goes-linked-teil-1.html>
|
|
||||||
* Interlinking Large Scale Library Data with Authority Records / Felix Bensmann, Benjamin Zapilko and Philipp Mayr <http://journal.frontiersin.org/article/10.3389/fdigh.2017.00005/full>
|
|
||||||
* Datenmodell linked.swissbib <https://linked-swissbib.github.io/datamodel/>
|
|
||||||
* Elasticsearch as Hub for Linked Bibliographic Metadata <http://files.meetup.com/7646592/20160831%20Elasticsearch%20as%20Hub%20for%20Linked%20Bibliographic%20Metadata.pdf> und <https://www.elastic.co/videos/elasticsearch-as-hub-for-linked-bibliographic-metadata-zurich-meetup-august-2016>
|
|
||||||
* Suominen, Osma, & Nina Hyvönen. "From MARC silos to Linked Data silos?.". In: o-bib 4.2 (2017): 1-13. <https://www.o-bib.de/article/view/2017H2S1-13/5854>
|
|
||||||
* Beschreibung des Metamorph – Datenmodells: <http://b3e.net/metamorph-book/latest/datamodel.html>
|
|
||||||
|
|
||||||
## Kontakt
|
|
||||||
|
|
||||||
* [Günter Hipler](mailto:guenter.hipler@unibas.ch), Systems Architect, Project swissbib, Universitätbibliothek Basel
|
|
||||||
* [Silvia Witzig](mailto:silvia.witzig@unibas.ch), Metadata Specialist, Project swissbib, Universitätbibliothek Basel
|
|
|
@ -1,16 +0,0 @@
|
||||||
# Lerntagebücher
|
|
||||||
|
|
||||||
Als Prüfungsleistung schreiben Studierende öffentliche Lerntagebücher, in denen sie von ihren Erkenntnissen berichten und sich mit dem Inhalt des Seminars auseinandersetzen.
|
|
||||||
|
|
||||||
Die öffentlichen Lerntagebücher haben zwei Ziele:
|
|
||||||
|
|
||||||
1. Anreiz für andere SeminarteilnehmerInnen sich über Lernerfolge auszutauschen
|
|
||||||
2. Anreiz für andere Studierende \(auch außerhalb der Hochschule\) sich mit dem Skript im Selbststudium zu beschäftigen
|
|
||||||
|
|
||||||
## Blogs der Studierenden
|
|
||||||
|
|
||||||
* Elena Capelli: <https://elenasdiscovery.wordpress.com>
|
|
||||||
* Marina Hess: <https://mainsuche.jimdo.com>
|
|
||||||
* Franziska Neuenschwander: <https://bainblogweb.wordpress.com>
|
|
||||||
* Moreno Pontoriero: <https://morenoexplores.wordpress.com>
|
|
||||||
* Aline Strauss: <https://alinesbiblio.wordpress.com>
|
|