MAB-MARC-Konverter und Normalisierungen in Alma
Verbundtag | Klagenfurt| 15. Mai 2018
Wolfgang Bruckner | wolfgang.bruckner@obvsg.at Josef Labner | josef.labner@obvsg.at
Inhalt
• in a nutshell: Kreiskonvertierung und Kreishybridisierung mit Produktions- aufnahme Alma NZ (Network Zone)
• Einblicke in die M2M-Werkstatt
• Bibliographische Datenflüße nach Produktivnahme der Network Zone
• Einblicke in die DROOLs-Werkstatt
MARC 21 im OBV
• 21.08.2017: Go-Live der Kohorte-1-
Bibliotheken und Produktionsaufnahme des Kreiskonverters
• Anfang Jänner 2018: Go-Live der Kohorte-2- Bibliotheken
• Mitte März 2018: Go-Live der Network-Zone und Übergang zu Kreiskonvertierung Stufe 2 (Primärdatenbank Alma – NZ, ACC01 Aleph- Bridge)
• ständige kontinuierliche Verbesserungen
3
in a nutshell:
Kreiskonvertierung und Kreishybridisierung mit
Produktionsaufnahme Alma NZ
(Network Zone)
Kreiskonvertierung – Stufe 1
ACC01
IZ 1
IZ 2
IZ n
Alma
BIB01
BIB01
BIBn
Aleph Alephino
MAB-MARC-Konverter (convtb)
Kreiskonvertierung – Stufe 2
ACC01
IZ 1
IZ 2
IZ n
Alma
BIB01
BIB01
BIBn
Aleph Alephino
Aleph-Bridge (convtb)
NZ
Kreishybridisierung
MAB ASEQ RAK-WB
MAB ASEQ
RAK-WB + RDA
MARC 21
RAK-WB + RDA
Kreishybridisierung
001 AC-Nr.
331 Haupttitel 410 Verlagsort 412 Verlag 425 Ersch.jahr 425a Ersch.jahr 509 Vermerk VA 519 HS-Vermerk
001 AC-Nr.
331 Haupttitel 419 Veröff.ang.
425a Ersch.jahr 501 Allg. Anm.
520 HS-Vermerk
001 MMS-ID 008 Ersch.jahr 035 AC-Nr.
245 Haupttitel 264 Veröff.ang.
500 Allg. Anm.
502 HS-Vermerk
Einblicke in die M2M-Werkstatt
Werkzeuge
• Ticketsystem – alma-kat@obvsg.at
• M2M-GoogleDocs (mit Ex Libris)
• Monitoring
Ticketsystem
alma-kat@obvsg.at
369 Tickets
Stand: 09.05.2018
Diverse Gründe – Stufe 1 Primärdatenbank = ACC01
• Konverter-Anpassungen (VST- Reparaturen)
• Katalogisierungsfehler
• fehlende Normalisierungen/Schablonen in den IZs
• Fremddatennutzungen außerhalb der D- A-CH-Community
• (Anfangs-)Probleme bei Parallel Operations
Diverse Gründe – Stufe 2
Primärdatenbank = Alma NZ
• zunehmend Tickets von Aleph- KatalogisiererInnen
• fehlende Validierungen und Fix-Docs, insbesondere fehlender Dublettencheck auf die AC-Nummer
• Katalogisierungsfehler (z.B.: falsche Codierungen in Aleph führen zu
Konverterfehlern)
• notwendiger Ausbau des Konverters aufgrund (nicht immer) korrekter
Interpretation von ISBD
Diverse Gründe – Stufe 2
Primärdatenbank = Alma NZ
• … und weiterhin von Alma-Seite …
• Anforderungen an neue/adaptierte Schablonen in Alma
• Anforderungen an neue/adaptierte Normalisierungsregeln in Alma
• Anforderungen an neue/adaptierte CV- Listen in Alma
• weiterhin Fremddatennutzungen außerhalb (und in) der D-A-CH-
Community – z.B.: Flexibilität beim Sprachencode
M2M-GoogleDocs
M2M-GoogleDocs
• MAB2MARC: 246 Fehlermeldungen
• MARC2MAB: 166 Fehlermeldungen
• in Summe 412 Fixes implementiert
• von einfachen Fehlern zu komplexen Spezifikationen…
Stand: 09.05.2018
Monitoring
• PC-Server Log
PC-Server - Logfile
komplexe Konverteränderungen!
• Testversion des Konverters läuft parallel und kreiert Differenzprotokolle
• TTT-DIFF-FIELDS
PC-Server- TTT-DIFF-FIELDS
Bibliographische Datenflüsse nach
Produktivnahme der Network Zone
Bibliographische Datenflüsse
nach
Produktivnahme der Network Zone
(inkl. GND in der CZ)
ACC01
IZ 1
IZ 2
IZ n
Alma
BIB01
BIB01
BIBn
Aleph Alephino
NZ
MAB-MARC-Konverter
GND CZ
BVB
GND BVB BVB
BVB
LoC LoC LoC
O A I
ZDB DNB
D R O O L S
O A I O A I
MD-Editor
in Alma
• Normalization Rules
• Merge Rules
• Indication Rules
• Brief Level Rules
• Authority Headings Rules
“… similar to normalization rules, indication rules use the flexible Drools logic …”
Regelbasierter Ansatz:
Regeln besitzen eine Bedingung und eine Konsequenz:
Wenn Dann
Normalisierungsregeln – Grundlagen
rule “Name der Regel“
when
(<conditions on MARC record>) then
action1 (if condition) action1 (if condition) action1 (if condition) action1 (if condition)
… end
Normalisierungsregeln – Beispiel
rule "KATA-020-a035ZDB: generate 035.a from 016 - ZDB-IDNR“
when
exists "016.{7,-}.2.DE-600*“
then
removeField "035" if (exists "035.a.(DE-600)*")
copyField "016" to "035" if (exists "016.{7,-}.2.DE-600*") prefix "035.a" with "(DE-600)" if (exists "035.2.DE-600*") removeSubField "035.2" if (exists "035.2.DE-600*")
changeFirstIndicator "035" to " " if (exists "035.{7,-}") end
Normalisierungsregeln im Einsatz
• Dokumentation, welche Regeln im Einsatz bzw.
in Planung sind (drools_nr_summary_pakete.docx)
• Versionierung in gitlab
• Konfigurationshinweise für
SystembibliothekarInnen im OBVSG-Wiki und per Aussendung
(https://wiki.obvsg.at/Arbeitsbereich/ImplementierungAl ma/DROOLS)
• Dokumentationen im Wiki
(https://wiki.obvsg.at/Arbeitsbereich/ImplementierungAl ma/Katalogisierung)
Statistik
Knapp 300 commits (Großteil Änderungen der Normalisierungsregeln) ca. 100 Regeln
ca. 200 Teilregeln (+ 108 für Sprachcode)
ACC01
IZ 1
IZ 2
IZ n
Alma
BIB01
BIB01
BIBn
Aleph Alephino
NZ
MAB-MARC-Konverter
GND CZ
BVB
GND
ZDB DNB BVB BVB
LoC LoC BVB
LoC
O A I O A I O A I
MD-Editor
D R O O L S
BVB
LoC
1. Normalisierungen bei Nutzung von
Externen Ressourcen
Nutzen von Fremddaten (= Externe Ressourcen)
Deutschsprachige Ressourcen
Nutzen von Fremddaten (= Externe Ressourcen) –
Normalisierungsgründe
• Doppelungen bezüglich Codierungen und aufgelösten Codierungen
• Beispiel: 336 $$aText$$btxt
• Beispiel: BZKs $$4 und zusätzlich in $e bzw. $j
• Lokale Felder und weitere 9er Felder und Subfelder
• Beispiel: 020 $$9978-3-86930-580-6
• Beispiel: MARC 940 – 944 (lokale Felder BVB)
• Redundanzen bei ID-Nummern, Verlinkungen, doppelt gelieferte RSWK-Ketten
• Beispiel: 68900 $$0(DE-588)4551202-4$$0http://d- nb.info/gnd/4551202-4$$0(DE-101)956880096
$$Ds$$aLö sungsorientierte Kurztherapie
• Sortierungen, hauptsächlich bei mit GND verlinkten Feldern
Nutzen von Fremddaten (= Externe Ressourcen) –
Normalisierungsgründe
• In Alma sind nur bestimmte Felder indexiert
• Beispiel: 083 auf 082
• Beispiel: 348 auf 655 $$2 gnd-music
• Daten werden aufgrund des Internformats anders als vereinbart geliefert
• Beispiel: DNB liefert Verantwortlichkeitsangabe in MARC 249 in $$b / statt in $$c
• „SRU-Fehler“ in Alma (verschobene Indikatoren)
• 6557 statt 655 7
• 2641 statt 264 1
• Korrekturen für eine korrekte Darstellung in Alma
• Nichtsortierzeichen (˜ bzw. œ) als doppelte spitze Klammern
Nutzen von Fremddaten (= Externe Ressourcen) –
Beispiel LoC
…
___ LDR Pos. 18 = a (AACR 2) statt c (ISBD punctuation omitted)
___ (library binding, ..) in 020 $$a statt in $$q
___ Interpunktionszeichen am Ende diverser Subfelder
___ alle modifying agencies in 040 $$d statt nur die letzte
___ Veröffentlichungsangabe in MARC 260
ACC01
IZ 1
IZ 2
IZ n
Alma
BIB01
BIB01
BIBn
Aleph Alephino
NZ
MAB-MARC-Konverter
GND CZ
BVB
GND
ZDB DNB BVB BVB
LoC LoC BVB
LoC
O A I O A I O A I
MD-Editor
D R O O L S
MD-Editor
2. Normalisierungen im Metadaten Editor
Normalisierungen im Metadaten
Editor
Normalisierungen im Metadaten
Editor
ACC01
IZ 1
IZ 2
IZ n
Alma
BIB01
BIB01
BIBn
Aleph Alephino
NZ
MAB-MARC-Konverter
GND CZ
BVB BVB BVB
LoC LoC BVB
LoC GND
ZDB DNB
O A I O A I O A I
MD-Editor
3. Normalisierungen bei (automatischen) Datenanreicherungen über OAI
ZDB DNB
D R O O L S
O A I O A I
Normalisierungen bei
Datenanreicherungen über OAI
• Anreicherung bzw. Updates von Titeldaten mit Daten aus der DNB bzw. ZDB
• Merge rules nur sehr rudimentär
• ein primary record, in den Felder eines
zweiten zweiten Datensatzes gemergt werden können
Normalisierungen bei
Datenanreicherungen über OAI - Workflow
Fremddaten (ZDB, DNB)
Normalisierungsprozess I
Normalisierungsprozess II
Alma NZ Harvesting über OAI
Match & Merge (über ZDB-IDNR bzw.
EKI)
changeField "084" to "411" if (exists
"084.2.rvk")
rule "KATA-034-DATA: rule 2-1 dnb"
when
not exists "084.2.rvk" and exists "411.2.rvk"
then
changeField "411" to "084" if (exists
"411.2.rvk")
removeField "411" if (exists "411.2.rvk") end
rule "KATA-034-DATA: rule 2-2 dnb"
when
exists "084.2.rvk" and exists "411.2.rvk"
then
add MARC."411"