Nachtrag zu Kapitel 3
This commit is contained in:
parent
b16457a662
commit
0df729c19d
|
@ -94,39 +94,69 @@ Die Verarbeitung kann je nach Menge der Daten ein paar Minuten dauern. Anschlie
|
|||
|
||||
## Aufgabe 2: MARC-Daten analysieren und neue Spalten für das Zielschema bilden
|
||||
|
||||
**Das Skript ist an dieser Stelle noch nicht vollständig ausgearbeitet. Hier eine kurze englische Anleitung, wie Sie vorgehen können. Eine ausführliche Erläuterung erfolgt spätestens bis zum 16.11.2017.**
|
||||
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.
|
||||
|
||||
### Statistik
|
||||
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.
|
||||
|
||||
* Text facet on column "field"
|
||||
* Try "Blank down" on column "field" to see how many records include each MARC field
|
||||
* Get a tab separated list by clicking the "... choices" link below the facet name
|
||||
* Rollback the "Blank down" operation via "Undo / Redo"
|
||||
### Analyse
|
||||
|
||||
### Neue Spalten erstellen
|
||||
Um sich einen statistischen Überblick zu verschaffen, können Sie wie folgt vorgehen:
|
||||
|
||||
#### A\) Werte in neue Spalte kopieren
|
||||
* 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.
|
||||
|
||||
* Select row mode \(show as: rows\)
|
||||
* Select values with text facets in "field" and "code" \(example: field 100 and codes a, d and q for authors\)
|
||||
* Add column based on column "content" with expression `value`
|
||||
### Neue Spalten für Zielschema bilden
|
||||
|
||||
#### B\) Werte in neuer Spalte transformieren
|
||||
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.
|
||||
|
||||
* Normalize values in new column \(e.g. search/replace\)
|
||||
* Add separators \(e.g. add brackets to birth dates: select field 100 and code d and transform new column with expression `"(" + value + ")"`\)
|
||||
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.
|
||||
|
||||
#### C\) Werte in neuer Spalte zusammenführen
|
||||
Beispiel für "Autor/in" (MARC21 `100a,D,d,e` auf Dublin Core `dc:creator`):
|
||||
|
||||
* Move column "id" to the end
|
||||
* Move column "index" to the beginning
|
||||
* Join multi-valued cells in new column with separator ` ` \(space\)
|
||||
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 `q` 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
|
||||
* 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 `creator` / Edit cells / Join multi-valued cells... / Separator: `␟` (Unit Separator)
|
||||
6. Ergebnis prüfen und ggf. nachbessern
|
||||
* Spalte `creator` / Facet / Text facet
|
||||
* Spalte `creator` / Edit cells / Cluster and edit... / Method: nearest neighbor
|
||||
|
||||
### Datensätze zusammenführen
|
||||
## Export
|
||||
|
||||
* Move column "id" to the beginning
|
||||
* Join multi-valued cells in each new column with separator `␟`
|
||||
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:
|
||||
|
||||
### Daten exportieren
|
||||
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.
|
||||
|
||||
* Use Export / Custom tabular exporter, select relevant columns and download file
|
||||
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.
|
||||
|
|
|
@ -18,6 +18,12 @@ curl "http://oai.swissbib.ch/oai/DB=2.1?verb=ListRecords&metadataPrefix=m21-xml%
|
|||
|
||||
* Rufen Sie den [Explain-Befehl der SRU-Schnittstelle von Swissbib](http://sru.swissbib.ch/sru/explain?operation=explain) auf. Im XML gibt es ein Element `ns:schemaInfo` in dem Informationen zu den angebotenen Metadatenformaten stehen. Bei Dublin Core ist im Attribut `location` ein [XSL-Stylesheet](http://sru.swissbib.ch/sru/xslfiles/MARC21slim2OAIDC.swissbib.xsl) verlinkt. Diesem sind konkrete Transformationsanweisungen zu entnehmen, siehe Interpretation in [Kapitel 3.6.](/kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
|
||||
|
||||
## [3.5 Verarbeitung von MARC21 mit OpenRefine](/kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
|
||||
|
||||
### Aufgabe 2
|
||||
|
||||
JSON-Datei mit Transformationsregeln für ein Mapping von MARC21 auf Dublin Core: [openrefine-marc2dc.json](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/openrefine/openrefine-marc2dc.json)
|
||||
|
||||
## [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](/kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
|
||||
|
||||
Folgende Regeln stehen \(leicht vereinfacht\) darin:
|
||||
|
@ -35,4 +41,4 @@ Folgende Regeln stehen \(leicht vereinfacht\) darin:
|
|||
* dc:coverage aus MARC 752a, 752b, 752c, 752d
|
||||
* dc:relation aus MARC 530a, 530b, 530c, 530d, 530u und aus 760, 762, 765, 767, 770, 772-777, 780, 785-787 jeweils o und t
|
||||
* dc:identifier aus MARC 856u und 020a
|
||||
* dc:rights aus MARC 506a, 540a
|
||||
* dc:rights aus MARC 506a, 540a
|
||||
|
|
Loading…
Reference in New Issue