diff --git a/src/main/resources/alma/fix/item.fix b/src/main/resources/alma/fix/item.fix index 8f39a3fb3..2b2273d72 100644 --- a/src/main/resources/alma/fix/item.fix +++ b/src/main/resources/alma/fix/item.fix @@ -125,3 +125,21 @@ do list(path: "hasItem[]","var":"$i") add_field("$i.inCollection[].1.label","Bibliotheken ohne zentrale Katalogisierung (IZ Bridge)") end end + +set_array("@callNumberRvk[]") +do list(path:"hasItem[]","var":"$i") + if any_match("$i.callNumber","([A-Z]{2} \\d{3,6})(\\.\\d*)?( [A-Z]\\d+)+([\\.\\d\\-\\(\\)+]*)?") + copy_field("$i.callNumber","@callNumberRvk[].$append") + end +end + +replace_all("@callNumberRvk[].*","([A-Z][A-Z] \\d{3,6}) .*","$1") + +do list(path:"@callNumberRvk[]","var":"$i") + copy_field("$i","subject[].$append.notation") + set_array("subject[].$last.type[]","Concept") + add_field("subject[].$last.source.label","RVK (Regensburger Verbundklassifikation)") + add_field("subject[].$last.source.id","https://d-nb.info/gnd/4449787-8") +end + +uniq("subject[]") diff --git a/src/test/resources/alma-fix/990014830510206441.json b/src/test/resources/alma-fix/990014830510206441.json index df82560a9..3ad5b2575 100644 --- a/src/test/resources/alma-fix/990014830510206441.json +++ b/src/test/resources/alma-fix/990014830510206441.json @@ -100,6 +100,13 @@ "dateOfDeath" : "1977", "altLabel" : [ "Chaplin, Charles S.", "Spencer Chaplin, Charles", "Chaplin, Charly", "Tsaplin, Tsarl Spenser", "Sa-plin, Sác-li", "Cāplin, Cārlī", "Čaplin, Č'arlz", "Chaplin, Charles Spencer", "Chaplin, Charles", "Čaplin, Čarl'z Spenser", "Spencer-Chaplin, Charles", "Чаплин, Чарльз", "Zhuobielin", "Sarlō", "Charlot", "Sac-lô" ] } ] + }, { + "notation" : "AP 51081", + "type" : [ "Concept" ], + "source" : { + "label" : "RVK (Regensburger Verbundklassifikation)", + "id" : "https://d-nb.info/gnd/4449787-8" + } } ], "subjectslabels" : [ "Chaplin, Charlie" ], "hasItem" : [ { diff --git a/src/test/resources/alma-fix/990058434730206441.json b/src/test/resources/alma-fix/990058434730206441.json index ffddba455..3ccdbf5bd 100644 --- a/src/test/resources/alma-fix/990058434730206441.json +++ b/src/test/resources/alma-fix/990058434730206441.json @@ -155,6 +155,13 @@ "dateOfDeath" : "0039", "altLabel" : [ "Herodes Antipatros", "Herodes, Antipas" ] } ] + }, { + "notation" : "BC 8740", + "type" : [ "Concept" ], + "source" : { + "label" : "RVK (Regensburger Verbundklassifikation)", + "id" : "https://d-nb.info/gnd/4449787-8" + } } ], "subjectslabels" : [ "Herodes ", "Makkabäer", "Herrschaftssystem", "Neues Testament / Zeithintergrund", "Herodes Antipas, Galiläa, Tetrarch" ], "hasItem" : [ { diff --git a/src/test/resources/alma-fix/990075429930206441.json b/src/test/resources/alma-fix/990075429930206441.json index a21fd18f9..e9187bc22 100644 --- a/src/test/resources/alma-fix/990075429930206441.json +++ b/src/test/resources/alma-fix/990075429930206441.json @@ -87,6 +87,14 @@ "label" : "Deutsch" } ], "extent" : "64 S.", + "subject" : [ { + "notation" : "BO 4075", + "type" : [ "Concept" ], + "source" : { + "label" : "RVK (Regensburger Verbundklassifikation)", + "id" : "https://d-nb.info/gnd/4449787-8" + } + } ], "hasItem" : [ { "label" : "lobid Bestandsressource", "type" : [ "Item", "PhysicalObject" ],