Seminar 14.11.2016
This commit is contained in:
parent
8e9a9ab973
commit
790c3d1160
|
@ -12,6 +12,7 @@ Inhalte:
|
||||||
6. Daten bereinigen
|
6. Daten bereinigen
|
||||||
7. Felder definieren
|
7. Felder definieren
|
||||||
8. Daten exportieren
|
8. Daten exportieren
|
||||||
|
9. Automatisierung
|
||||||
|
|
||||||
Beiträge der Studierenden in den Lerntagebüchern:
|
Beiträge der Studierenden in den Lerntagebüchern:
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
|
|
||||||
Alle folgenden Übungen in den Kapiteln 7.1 bis 7.3 führen wir zunächst mit einer einzigen Datei aus dem Download durch. Diese Datei beinhaltet "nur" 100 Datensätze, mit denen wir beispielhaft arbeiten. In Kapitel 7.4 werden wir dann die gelernten Transformationen auf alle 450.000 Datensätze anwenden.
|
Alle folgenden Übungen in den Kapiteln 7.1 bis 7.3 führen wir zunächst mit einer einzigen Datei aus dem Download durch. Diese Datei beinhaltet "nur" 100 Datensätze, mit denen wir beispielhaft arbeiten. In Kapitel 7.4 werden wir dann die gelernten Transformationen auf alle 450.000 Datensätze anwenden.
|
||||||
|
|
||||||
OpenRefine "versteht" das MARC-Format nicht. Es interpretiert die Daten daher genauso wie jede andere XML-Datei. In den Daten stehen daher die üblichen Nummern und Codes für die jeweiligen MARC-Felder. Der GBV bietet meines Wissens nach keine Beschreibung der Feldbelegungen an. Zur Orientierung können Sie 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.
|
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. Der GBV bietet meines Wissens nach keine Beschreibung der Feldbelegungen an. Zur Orientierung können Sie 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.
|
||||||
|
|
||||||
## Aufgabe 1: Analysieren Sie die Daten mit Hilfe von Facetten und Text Filtern
|
## Aufgabe 1: Analysieren Sie die Daten mit Hilfe von Facetten und Text Filtern
|
||||||
|
|
||||||
siehe [Seite zur Facettierung in der Dokumentation von OpenRefine](https://github.com/OpenRefine/OpenRefine/wiki/Faceting)
|
siehe [Seite zur Facettierung in der Dokumentation von OpenRefine](https://github.com/OpenRefine/OpenRefine/wiki/Faceting)
|
||||||
|
|
||||||
## Aufgabe 2: Laden Sie die Arbeitstabelle der DNB in OpenRefine
|
## Bonusaufgabe: Laden Sie die Arbeitstabelle der DNB in OpenRefine
|
||||||
|
|
||||||
|
Die Dokumentation der DNB steht auch als Tabellendokument zur Verfügung. Da OpenRefine auf die Bearbeitung von tabellarischen Daten ausgelegt ist, können Sie die Arbeitstabelle anstatt in Excel/LibreOffice auch gleich in OpenRefine als neues Projekt anlegen.
|
||||||
|
|
||||||
[Arbeitstabelle der Deutschen Nationalbibliothek](http://www.dnb.de/SharedDocs/Downloads/DE/DNB/standardisierung/marc21FeldbeschreibungTitelExcel032016.zip)
|
[Arbeitstabelle der Deutschen Nationalbibliothek](http://www.dnb.de/SharedDocs/Downloads/DE/DNB/standardisierung/marc21FeldbeschreibungTitelExcel032016.zip)
|
|
@ -2,10 +2,32 @@
|
||||||
|
|
||||||
## Aufgabe: Editieren Sie die Daten so, dass OpenRefine die 100 Datensätze jeweils als "Records" erkennt.
|
## Aufgabe: Editieren Sie die Daten so, dass OpenRefine die 100 Datensätze jeweils als "Records" erkennt.
|
||||||
|
|
||||||
Hinweis:
|
Hinweise:
|
||||||
* OpenRefine erkennt Records (Datensätze) anhand der ersten Spalte. Versuchen Sie in alle 100 Zeilen, in denen ein Datensatz beginnt, eine eindeutige Kennung in die erste Spalte zu bekommen. Die übrigen Felder in der ersten Spalte sollten leer sein.
|
|
||||||
|
* OpenRefine erkennt Records (Datensätze) anhand der ersten Spalte. Versuchen Sie in alle 100 Zeilen, in denen ein Datensatz beginnt, eine eindeutige Kennung in die erste Spalte zu bekommen. Die übrigen Zellen in der ersten Spalte sollten leer sein.
|
||||||
* Wechseln Sie die Ansicht oben zwischen "Rows" und "Records" und prüfen Sie die Änderung der Darstellung.
|
* Wechseln Sie die Ansicht oben zwischen "Rows" und "Records" und prüfen Sie die Änderung der Darstellung.
|
||||||
|
* Den Wert einer anderen Spalte kopieren Sie über die Transformationsregel: ```cells["NAME-DER-SPALTE"].value```
|
||||||
|
|
||||||
Literatur:
|
Literatur:
|
||||||
|
|
||||||
* [Difference between a record and a row](http://kb.refinepro.com/2012/03/difference-between-record-and-row.html)
|
* [Difference between a record and a row](http://kb.refinepro.com/2012/03/difference-between-record-and-row.html)
|
||||||
* [Create records in Google Refine](http://kb.refinepro.com/2012/06/create-records-in-google-refine.html)
|
* [Create records in Google Refine](http://kb.refinepro.com/2012/06/create-records-in-google-refine.html)
|
||||||
|
|
||||||
|
## Lösung
|
||||||
|
|
||||||
|
1) Spalten ordnen
|
||||||
|
|
||||||
|
* {%s%}All / Edit columns / Re-order / remove columns...{%ends%}
|
||||||
|
* {%s%}Spalte "record - leader" ganz nach oben schieben{%ends%}
|
||||||
|
|
||||||
|
2) Angabe in Spalte record-leader durch PPN aus Spalte "record - controlfield" ersetzen
|
||||||
|
|
||||||
|
* {%s%}Spalte record - controlfield - tag / Facet / Text Facet / Wert 001 auswählen{%ends%}
|
||||||
|
* {%s%}Spalte "record - leader" / Edit cells / Transform... und folgenden Wert eingeben: {%s%}cells["record - controlfield"].value{%ends%}
|
||||||
|
|
||||||
|
3) Leere Zeilen löschen
|
||||||
|
|
||||||
|
* {%s%}Spalte "record - datafield - subfield" / Facet / Customized facets / Facet by blank / Wert true anklicken (Achtung: im Modus "rows" und vorige Facette wieder schließen){%ends%}
|
||||||
|
* {%s%}All / Edit rows / Remove all matching rows{%ends%}
|
||||||
|
|
||||||
|
4) Records anklicken
|
|
@ -3,13 +3,57 @@
|
||||||
## Aufgabe: Transformieren Sie die Daten so, dass jeder Datensatz nur über eine Zeile geht
|
## Aufgabe: Transformieren Sie die Daten so, dass jeder Datensatz nur über eine Zeile geht
|
||||||
|
|
||||||
Aktuell sind die Inhalte eines Datensatzes über viele Zeilen verteilt. Die MARC-Felder stehen untereinander in Zeilen. Versuchen Sie, die Daten in eine übliche Tabellenstruktur zu bringen:
|
Aktuell sind die Inhalte eines Datensatzes über viele Zeilen verteilt. Die MARC-Felder stehen untereinander in Zeilen. Versuchen Sie, die Daten in eine übliche Tabellenstruktur zu bringen:
|
||||||
|
|
||||||
* Die MARC-Felder in den Spaltenüberschriften.
|
* Die MARC-Felder in den Spaltenüberschriften.
|
||||||
* Jeder Datensatz nur über eine Zeile.
|
* Jeder Datensatz nur über eine Zeile.
|
||||||
|
|
||||||
Hinweis:
|
Hinweise:
|
||||||
* Experimentieren Sie mit den Funktionen im Menü "Transpose"
|
|
||||||
* Vor dem Transpose sollten Sie die Daten in wenige Spalten zusammenführen.
|
* Experimentieren Sie mit den Funktionen im Menü "Transpose".
|
||||||
|
* Vor dem Transpose sollten Sie die Daten in wenige Spalten zusammenführen. Nutzen Sie dazu die folgende Transformationsregel: ```value + " : " + cells["NAME-DER-SPALTE"].value```
|
||||||
|
* Für manche zeilenbasierte Operationen müssen Sie wieder auf den Modus "Rows" (statt "Records") wechseln.
|
||||||
|
|
||||||
Literatur:
|
Literatur:
|
||||||
|
|
||||||
* [How can I join two datasets using a key in OpenRefine, with the secondary table having more than one value?](http://www.devsplanet.com/question/35776263) und [Cells to columns in OpenRefine](http://stackoverflow.com/questions/15187543/cells-to-columns-in-openrefine)
|
* [How can I join two datasets using a key in OpenRefine, with the secondary table having more than one value?](http://www.devsplanet.com/question/35776263) und [Cells to columns in OpenRefine](http://stackoverflow.com/questions/15187543/cells-to-columns-in-openrefine)
|
||||||
* [Zellen zusammenführen](http://kb.refinepro.com/2011/07/merge-2-columns-that-have-both-blank.html)
|
* [Zellen zusammenführen](http://kb.refinepro.com/2011/07/merge-2-columns-that-have-both-blank.html)
|
||||||
|
* [Trick, um neue Zeilen einzufügen](http://kb.refinepro.com/2011/12/add-extra-rows-records-in-google-refine.html)
|
||||||
|
|
||||||
|
## Lösung
|
||||||
|
|
||||||
|
1) Alle Schritte aus [Übung 7.2](https://felixlohmeier.gitbooks.io/seminar-wir-bauen-uns-einen-bibliothekskatalog/content/07_2_records_bilden.html)
|
||||||
|
|
||||||
|
2) Vorerst nicht benötigte Spalten löschen
|
||||||
|
|
||||||
|
* {%s%}All / Edit columns / Re-order / remove columns...{%ends%}
|
||||||
|
* {%s%}Spalten "record", "record - datafield", "record - datafield - ind1", "record - datafield - ind2" "record-controlfield" und "record-controlfield-tag" nach rechts schieben{%ends%}
|
||||||
|
|
||||||
|
3) MARC-Felder durchgängig belegen
|
||||||
|
|
||||||
|
* {%s%}Spalte "record - datafield - tag" / Edit cells / Fill down{%ends%}
|
||||||
|
|
||||||
|
4) PPN aus Spalte record-leader in Spalte mit MARC-Feldern verschieben (und dafür eine neue Zeile einfügen)
|
||||||
|
|
||||||
|
* {%s%}Spalte "record - leader" / Add Column based on this column...; Name für neue Spalte: NEU{%ends%}
|
||||||
|
* {%s%}Spalte "record - leader" / Transpose / Transpose cells across columns into Rows; In der zweiten Feldliste Spalte "NEU" ganz oben auswählen, rechts "One column" auswählen und Name "PPN" eingeben{%ends%}
|
||||||
|
* {%s%}Spalte "record - datafield - tag" / Facet / Customized facets / Facet by blank / Wert true auswählen und in Modus "rows" wechseln{%ends%}
|
||||||
|
* {%s%}Spalte "record - datafield - tag" / Edit cells / Transform... / Wert "001" (also mit Anführungszeichen) eingeben und Facette schließen{%ends%}
|
||||||
|
* {%s%}Spalte "record - datafield - tag" / Facet / Text facet / Wert 001 auswählen{%ends%}
|
||||||
|
* {%s%}Spalte "record - datafield - subfield" / Edit cells / Transform... / Wert cells["PPN"].value eingeben und Facette schließen{%ends%}
|
||||||
|
|
||||||
|
5) Sortieren und Aufräumen
|
||||||
|
|
||||||
|
* {%s%}Spalte "PPN" / Edit cells / Fill down{%ends%}
|
||||||
|
* {%s%}Spalte "PPN" / Sort...{%ends%}
|
||||||
|
* {%s%}Spalte "record - datafield - tag" / Sort...{%ends%}
|
||||||
|
* {%s%}Im neu verfügbaren Menü "Sort" den Menüpunkt "Reorder rows permanently" auswählen
|
||||||
|
* {%s%}Spalte "PPN" / Edit column / Remove this column{%ends%}
|
||||||
|
|
||||||
|
6) MARC-Feld mit Feld MARC-Code zusammenfassen
|
||||||
|
|
||||||
|
* {%s%}Spalte "record - datafield - tag" / Edit cells / Transform... den Wert value + " : " + cells["record - datafield - subfield - code"].value eingeben{%ends%}
|
||||||
|
* {%s%}Spalte "record - datafield - subfield - code" / Edit column / Remove this column{%ends%}
|
||||||
|
|
||||||
|
7) Transpose
|
||||||
|
|
||||||
|
* Spalte "record - datafield - tag" / Transpose / Columnize by key/value columns...
|
|
@ -1,2 +1,28 @@
|
||||||
# 7.4 Transformationen anwenden
|
# 7.4 Transformationen anwenden
|
||||||
|
|
||||||
|
## Aufgabe: Speichern Sie die bisher durchgeführten Transformationsregeln und wenden Sie diese auf eine andere MARCXML-Datei an
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Hinweise:
|
||||||
|
|
||||||
|
* Nutzen Sie die Funktion "Extract" im Bereich Undo/Redo und speichern Sie die Regeln in einer Textdatei zwischen (z.B. mit Windows Editor)
|
||||||
|
|
||||||
|
Literatur:
|
||||||
|
|
||||||
|
* [...](http://www.)
|
||||||
|
* [...](http://www.)
|
||||||
|
|
||||||
|
## Lösung
|
||||||
|
|
||||||
|
1) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
2) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
3) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
|
@ -1,2 +1,61 @@
|
||||||
# 7.5 Alle Daten in ein Projekt laden
|
# 7.5 Alle Daten in ein Projekt laden
|
||||||
|
|
||||||
|
## Aufgabe 1: Laden Sie 100 MARCXML-Dateien in ein neues Projekt und beobachten Sie den Speicherbedarf
|
||||||
|
|
||||||
|
Hinweise:
|
||||||
|
|
||||||
|
* Auf dem Webserver können mit Sie mit dem Befehl ```top``` die aktuellen Prozesse und deren Speicherbedarf sehen.
|
||||||
|
* Vermeiden Sie es, die Dateinamen von OpenRefine in den Daten speichern zu lassen. Dafür gibt es eine Checkbox beim Import.
|
||||||
|
|
||||||
|
## Lösung
|
||||||
|
|
||||||
|
1) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
2) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
3) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
## Aufgabe 2: Wenden Sie die Transformationsregeln aus Kapitel 7.3 auf das neue Projekt an
|
||||||
|
|
||||||
|
Hinweise:
|
||||||
|
* Beobachten Sie auch hier den Speicherbedarf und notieren Sie sich die Laufzeit.
|
||||||
|
|
||||||
|
## Lösung
|
||||||
|
|
||||||
|
1) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
2) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
3) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
## Aufgabe 3: Wenden Sie die Transformationsregeln aus Kapitel 7.3 auf alle 4500 Datensätze an
|
||||||
|
|
||||||
|
Hinweise:
|
||||||
|
* Am wenigsten klicken müssen Sie, wenn Sie alle 4500 Dateien auf einmal laden. Dann wird OpenRefine jedoch nicht genug Arbeitsspeicher zur Verfügung haben, um alle Transformationen durchzuführen.
|
||||||
|
* Machen Sie eine kleine Hochrechnung auf Basis des Speicherbedarfs aus Aufgabe 2, planen Sie mindestens 25% Reserve ein und wählen Sie auf dieser Basis die Größe ihrer "Pakete".
|
||||||
|
|
||||||
|
## Lösung
|
||||||
|
|
||||||
|
1) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
2) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
||||||
|
|
||||||
|
3) ...
|
||||||
|
|
||||||
|
* {%s%}...{%ends%}
|
|
@ -0,0 +1 @@
|
||||||
|
# 7.9 Automatisierung
|
|
@ -38,6 +38,7 @@
|
||||||
* [7.6 Daten bereinigen](07_6_daten_bereinigen.md)
|
* [7.6 Daten bereinigen](07_6_daten_bereinigen.md)
|
||||||
* [7.7 Felder definieren](07_7_felder_definieren.md)
|
* [7.7 Felder definieren](07_7_felder_definieren.md)
|
||||||
* [7.8 Daten exportieren](07_8_daten_exportieren.md)
|
* [7.8 Daten exportieren](07_8_daten_exportieren.md)
|
||||||
|
* [7.9 Automatisierung](07_9_automatisierung.md)
|
||||||
* [Lerntagebücher](lerntagebucher.md)
|
* [Lerntagebücher](lerntagebucher.md)
|
||||||
* [Prüfungsleistungen](pruefungsleistungen.md)
|
* [Prüfungsleistungen](pruefungsleistungen.md)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue