diff --git a/conf/lobid-transformation/fix/contribution.fix b/conf/lobid-transformation/fix/contribution.fix index 75aba40..4d30383 100644 --- a/conf/lobid-transformation/fix/contribution.fix +++ b/conf/lobid-transformation/fix/contribution.fix @@ -1,9 +1,9 @@ # 245 - Title Statement (NR) - Subfield: $c (NR) -set_array("responsibilityStatement[]") +add_array("responsibilityStatement[]") copy_field("245??.c", "responsibilityStatement[].$append") -set_array("contribution[]") +add_array("contribution[]") # 100 and 700 @@ -31,41 +31,43 @@ do list(path:"100[01] ", "var":"$i") end end do list(path: "$i.4", "var":"$j") - set_hash("contribution[].$append.agent") - do list(path:"$i.0","var":"$k") - if all_match("$k", "^\\(DE-588\\).*$") - # GND identifier - paste("contribution[].$last.agent.gndIdentifier","$k") - # GND Identifier id - paste("contribution[].$last.agent.id","$k") - end - # GND idn as variable - if exists("$i.B") - do list(path: "$i.B","var":"$gnd") - unless exists("contribution[].$last.agent.@gndIdn") - copy_field("$gnd","contribution[].$last.agent.@gndIdn") + if any_match("$j","[A-Za-z]{3}") + add_hash("contribution[].$append.agent") + do list(path:"$i.0","var":"$k") + if all_match("$k", "^\\(DE-588\\).*$") + # GND identifier + paste("contribution[].$last.agent.gndIdentifier","$k") + # GND Identifier id + paste("contribution[].$last.agent.id","$k") + end + # GND idn as variable + if exists("$i.B") + do list(path: "$i.B","var":"$gnd") + unless exists("contribution[].$last.agent.@gndIdn") + copy_field("$gnd","contribution[].$last.agent.@gndIdn") + end end + elsif any_match("$k","^.*DNB\\|(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") + elsif any_match("$k","^\\(DE-101\\)(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end - elsif any_match("$k","^.*DNB\\|(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") - elsif any_match("$k","^\\(DE-101\\)(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end + # name + call_macro("gndPersonCombinedLabel",field:"$i") + copy_field("$i.@combinedLabel","contribution[].$last.agent.label") + # type + add_array("contribution[].$last.agent.type[]","Person") + # role + copy_field("$j","contribution[].$last.role.id") + # dateOfBirthAndDeath #will be split on a later stage + unless exists("$i.d.1") + copy_field("$i.d","contribution[].$last.agent.dateOfBirthAndDeath") + end + call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end - # name - call_macro("gndPersonCombinedLabel",field:"$i") - copy_field("$i.@combinedLabel","contribution[].$last.agent.label") - # type - set_array("contribution[].$last.agent.type[]","Person") - # role - copy_field("$j","contribution[].$last.role.id") - # dateOfBirthAndDeath #will be split on a later stage - unless exists("$i.d.1") - copy_field("$i.d","contribution[].$last.agent.dateOfBirthAndDeath") - end - call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end end end @@ -83,41 +85,43 @@ do list(path:"700[01] ", "var":"$i") add_field("$i.4","ctb") end do list(path: "$i.4", "var":"$j") - set_hash("contribution[].$append.agent") - do list(path:"$i.0","var":"$k") - if all_match("$k", "^\\(DE-588\\).*$") - # GND identifier - paste("contribution[].$last.agent.gndIdentifier","$k") - # GND Identifier id - paste("contribution[].$last.agent.id","$k") - end - # GND idn as variable - if exists("$i.B") - do list(path: "$i.B","var":"$gnd") - unless exists("contribution[].$last.agent.@gndIdn") - copy_field("$gnd","contribution[].$last.agent.@gndIdn") + if any_match("$j","[A-Za-z]{3}") + add_hash("contribution[].$append.agent") + do list(path:"$i.0","var":"$k") + if all_match("$k", "^\\(DE-588\\).*$") + # GND identifier + paste("contribution[].$last.agent.gndIdentifier","$k") + # GND Identifier id + paste("contribution[].$last.agent.id","$k") + end + # GND idn as variable + if exists("$i.B") + do list(path: "$i.B","var":"$gnd") + unless exists("contribution[].$last.agent.@gndIdn") + copy_field("$gnd","contribution[].$last.agent.@gndIdn") + end end + elsif any_match("$k","^.*DNB\\|(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") + elsif any_match("$k","^\\(DE-101\\)(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end - elsif any_match("$k","^.*DNB\\|(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") - elsif any_match("$k","^\\(DE-101\\)(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end + # name + call_macro("gndPersonCombinedLabel",field:"$i") + copy_field("$i.@combinedLabel","contribution[].$last.agent.label") + # type + add_array("contribution[].$last.agent.type[]","Person") + # role + copy_field("$j","contribution[].$last.role.id") + # dateOfBirthAndDeath #will be split on a later stage + unless exists("$i.d.1") + copy_field("$i.d","contribution[].$last.agent.dateOfBirthAndDeath") + end + call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end - # name - call_macro("gndPersonCombinedLabel",field:"$i") - copy_field("$i.@combinedLabel","contribution[].$last.agent.label") - # type - set_array("contribution[].$last.agent.type[]","Person") - # role - copy_field("$j","contribution[].$last.role.id") - # dateOfBirthAndDeath #will be split on a later stage - unless exists("$i.d.1") - copy_field("$i.d","contribution[].$last.agent.dateOfBirthAndDeath") - end - call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end end end @@ -145,37 +149,39 @@ do list(path:"110[012] ", "var":"$i") end end do list(path: "$i.4", "var":"$j") - set_hash("contribution[].$append.agent") - do list(path:"$i.0","var":"$k") - if all_match("$k", "^\\(DE-588\\).*$") - # GND identifier - paste("contribution[].$last.agent.gndIdentifier","$k") - # GND Identifier id - paste("contribution[].$last.agent.id","$k") - end - # GND idn as variable - if exists("$i.B") - do list(path: "$i.B","var":"$gnd") - unless exists("contribution[].$last.agent.@gndIdn") - copy_field("$gnd","contribution[].$last.agent.@gndIdn") + if any_match("$j","[A-Za-z]{3}") + add_hash("contribution[].$append.agent") + do list(path:"$i.0","var":"$k") + if all_match("$k", "^\\(DE-588\\).*$") + # GND identifier + paste("contribution[].$last.agent.gndIdentifier","$k") + # GND Identifier id + paste("contribution[].$last.agent.id","$k") + end + # GND idn as variable + if exists("$i.B") + do list(path: "$i.B","var":"$gnd") + unless exists("contribution[].$last.agent.@gndIdn") + copy_field("$gnd","contribution[].$last.agent.@gndIdn") + end end + elsif any_match("$k","^.*DNB\\|(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") + elsif any_match("$k","^\\(DE-101\\)(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end - elsif any_match("$k","^.*DNB\\|(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") - elsif any_match("$k","^\\(DE-101\\)(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end + # name + call_macro("gndOtherCombinedLabel",field:"$i") + copy_field("$i.@combinedLabel", "contribution[].$last.agent.label") + # type + add_array("contribution[].$last.agent.type[]","CorporateBody") + # role + copy_field("$j","contribution[].$last.role.id") + call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end - # name - call_macro("gndOtherCombinedLabel",field:"$i") - copy_field("$i.@combinedLabel", "contribution[].$last.agent.label") - # type - set_array("contribution[].$last.agent.type[]","CorporateBody") - # role - copy_field("$j","contribution[].$last.role.id") - call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end end end @@ -194,37 +200,39 @@ do list(path:"710[012] ", "var":"$i") add_field("$i.4","ctb") end do list(path: "$i.4", "var":"$j") - set_hash("contribution[].$append.agent") - do list(path:"$i.0","var":"$k") - if all_match("$k", "^\\(DE-588\\).*$") - # GND identifier - paste("contribution[].$last.agent.gndIdentifier","$k") - # GND Identifier id - paste("contribution[].$last.agent.id","$k") - end - # GND idn as variable - if exists("$i.B") - do list(path: "$i.B","var":"$gnd") - unless exists("contribution[].$last.agent.@gndIdn") - copy_field("$gnd","contribution[].$last.agent.@gndIdn") + if any_match("$j","[A-Za-z]{3}") + add_hash("contribution[].$append.agent") + do list(path:"$i.0","var":"$k") + if all_match("$k", "^\\(DE-588\\).*$") + # GND identifier + paste("contribution[].$last.agent.gndIdentifier","$k") + # GND Identifier id + paste("contribution[].$last.agent.id","$k") + end + # GND idn as variable + if exists("$i.B") + do list(path: "$i.B","var":"$gnd") + unless exists("contribution[].$last.agent.@gndIdn") + copy_field("$gnd","contribution[].$last.agent.@gndIdn") + end end + elsif any_match("$k","^.*DNB\\|(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") + elsif any_match("$k","^\\(DE-101\\)(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end - elsif any_match("$k","^.*DNB\\|(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") - elsif any_match("$k","^\\(DE-101\\)(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end + # name + call_macro("gndOtherCombinedLabel",field:"$i") + copy_field("$i.@combinedLabel", "contribution[].$last.agent.label") + # type + add_array("contribution[].$last.agent.type[]","CorporateBody") + # role + copy_field("$j","contribution[].$last.role.id") + call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end - # name - call_macro("gndOtherCombinedLabel",field:"$i") - copy_field("$i.@combinedLabel", "contribution[].$last.agent.label") - # type - set_array("contribution[].$last.agent.type[]","CorporateBody") - # role - copy_field("$j","contribution[].$last.role.id") - call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end end end @@ -242,43 +250,45 @@ do list(path:"111[012] |711[012] ", "var":"$i") add_field("$i.4","oth") end do list(path: "$i.4", "var":"$j") - set_hash("contribution[].$append.agent") - do list(path:"$i.0","var":"$k") - if all_match("$k", "^\\(DE-588\\).*$") - # GND identifier - paste("contribution[].$last.agent.gndIdentifier","$k") - # GND Identifier id - paste("contribution[].$last.agent.id","$k") - end - # GND idn as variable - if exists("$i.B") - do list(path: "$i.B","var":"$gnd") - unless exists("contribution[].$last.agent.@gndIdn") - copy_field("$gnd","contribution[].$last.agent.@gndIdn") + if any_match("$j","[A-Za-z]{3}") + add_hash("contribution[].$append.agent") + do list(path:"$i.0","var":"$k") + if all_match("$k", "^\\(DE-588\\).*$") + # GND identifier + paste("contribution[].$last.agent.gndIdentifier","$k") + # GND Identifier id + paste("contribution[].$last.agent.id","$k") + end + # GND idn as variable + if exists("$i.B") + do list(path: "$i.B","var":"$gnd") + unless exists("contribution[].$last.agent.@gndIdn") + copy_field("$gnd","contribution[].$last.agent.@gndIdn") + end end + elsif any_match("$k","^.*DNB\\|(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") + elsif any_match("$k","^\\(DE-101\\)(.*)$") + copy_field("$k", "contribution[].$last.agent.@gndIdn") + replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end - elsif any_match("$k","^.*DNB\\|(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^.*DNB\\|(.*)$","GND-$1") - elsif any_match("$k","^\\(DE-101\\)(.*)$") - copy_field("$k", "contribution[].$last.agent.@gndIdn") - replace_all("contribution[].$last.agent.@gndIdn", "^\\(DE-101\\)(.*)$","GND-$1") end + # name + call_macro("gndEventCombinedLabel",field:"$i") + copy_field("$i.@combinedLabel", "contribution[].$last.agent.label") + # type + add_array("contribution[].$last.agent.type[]","ConferenceOrEvent") + # role + copy_field("$j","contribution[].$last.role.id") + call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end - # name - call_macro("gndEventCombinedLabel",field:"$i") - copy_field("$i.@combinedLabel", "contribution[].$last.agent.label") - # type - set_array("contribution[].$last.agent.type[]","ConferenceOrEvent") - # role - copy_field("$j","contribution[].$last.role.id") - call_macro("alternateGraphicRepresationArrayOfObjects",targetArray:"contribution[]",targetField:".agent",variable:"$i") end end end -set_array("contribution[].*.type[]", "Contribution") +add_array("contribution[].*.type[]", "Contribution") replace_all("contribution[].*.agent.id","^\\(DE-588\\)(.*$)","https://d-nb.info/gnd/$1") replace_all("contribution[].*.agent.gndIdentifier","^\\(DE-588\\)(.*$)","$1") replace_all("contribution[].*.agent.label","(?>","") uniq("$i.agent.altLabel[]") replace_all("$i.agent.altLabel[].*","<<|>>","") diff --git a/conf/lobid-transformation/fix/describedBy.fix b/conf/lobid-transformation/fix/describedBy.fix index 439c6fd..6891ec8 100644 --- a/conf/lobid-transformation/fix/describedBy.fix +++ b/conf/lobid-transformation/fix/describedBy.fix @@ -5,14 +5,14 @@ prepend("describedBy.id", "http://lobid.org/resources/") copy_field("almaMmsId", "describedBy.label") prepend("describedBy.label", "Webseite der hbz-Ressource ") -set_array("describedBy.type[]", "BibliographicDescription") +add_array("describedBy.type[]", "BibliographicDescription") add_field("describedBy.inDataset.id","http://lobid.org/resources/dataset#!") add_field("describedBy.inDataset.label","lobid-resources – Der hbz-Verbundkatalog als Linked Open Data") -set_array("describedBy.resultOf.type[]", "CreateAction") +add_array("describedBy.resultOf.type[]", "CreateAction") add_field("@createTime","$[createEndTime]") if all_match("@createTime","0") @@ -24,16 +24,31 @@ end add_field("describedBy.resultOf.instrument.id","https://github.com/hbz/lobid-resources") -set_array("describedBy.resultOf.instrument.type[]", "SoftwareApplication") +add_array("describedBy.resultOf.instrument.type[]", "SoftwareApplication") add_field("describedBy.resultOf.instrument.label","Software lobid-resources") copy_field("almaMmsId","describedBy.resultOf.object.id") prepend("describedBy.resultOf.object.id","https://lobid.org/marcxml/") -# MNG is a ALMA-specific element +# 008/00-05 has the initial cataloguing date. We test strictly if 008 only has 6 digits, sometimes records have 8 digits that are not valid. +# We use MNG info as fallback. +# MNG is a ALMA-specific element (MNG .b only states the indexing date into ALMA.) + +if any_match("008", "^\\d{6}\\D.*") # 008/00-05 is the correct form for the cataloguing date in MARC. + copy_field("008","@initialCataloguingDate") + substring("@initialCataloguingDate","0","6") +end + +if any_match("@initialCataloguingDate","^[0-4]\\d*") # Complete dates after 2000 + prepend("@initialCataloguingDate","20") +elsif any_match("@initialCataloguingDate","\\d*") # Complete dates before 2000 + prepend("@initialCataloguingDate","19") +else + copy_field("MNG .b","@initialCataloguingDate") +end +copy_field("@initialCataloguingDate","describedBy.resultOf.object.dateCreated") -copy_field("MNG .b","describedBy.resultOf.object.dateCreated") copy_field("MNG .d","describedBy.resultOf.object.dateModified") replace_all("describedBy.resultOf.object.dateCreated","-","") replace_all("describedBy.resultOf.object.dateCreated"," .*","") @@ -41,18 +56,18 @@ replace_all("describedBy.resultOf.object.dateCreated","c|©|\\s?|,|.|:|;|/|=","" replace_all("describedBy.resultOf.object.dateModified","-","") replace_all("describedBy.resultOf.object.dateModified"," .*","") replace_all("describedBy.resultOf.object.dateModified","c|©|\\s?|,|.|:|;|/|=","") -unless any_match("describedBy.resultOf.object.dateCreated","\\d{8}|\\d{4}") - remove_field("describedBy.resultOf.object.dateCreated") -end -unless any_match("describedBy.resultOf.object.dateModified","\\d{8}|\\d{4}") - remove_field("describedBy.resultOf.object.dateModified") -end +#unless any_match("describedBy.resultOf.object.dateCreated","\\d{8}|\\d{4}") +# remove_field("describedBy.resultOf.object.dateCreated") +#end +#unless any_match("describedBy.resultOf.object.dateModified","\\d{8}|\\d{4}") +# remove_field("describedBy.resultOf.object.dateModified") +#end replace_all("describedBy.resultOf.object.dateCreated","^(\\d{4})(\\d{2})(\\d{2})$","$1-$2-$3") replace_all("describedBy.resultOf.object.dateModified","^(\\d{4})(\\d{2})(\\d{2})$","$1-$2-$3") replace_all("describedBy.resultOf.object.dateCreated","^(\\d{4})$","$1-01-01") replace_all("describedBy.resultOf.object.dateModified","^(\\d{4})$","$1-01-01") -set_array("describedBy.resultOf.object.type[]", "DataFeedItem") +add_array("describedBy.resultOf.object.type[]", "DataFeedItem") copy_field("almaMmsId","describedBy.resultOf.object.label") prepend("describedBy.resultOf.object.label","hbz-Ressource ") @@ -62,7 +77,7 @@ add_field("describedBy.resultOf.object.inDataset.id", "https://datahub.io/datase add_field("describedBy.resultOf.object.inDataset.label", "hbz_unioncatalog") -set_array("describedBy.license[]") +add_array("describedBy.license[]") add_field("describedBy.license[].$append.id","http://creativecommons.org/publicdomain/zero/1.0" ) add_field("describedBy.license[].$last.label","Creative Commons-Lizenz CC0 1.0 Universal" ) @@ -85,23 +100,17 @@ do list(path: "040 ", "var":"$i") end end -set_array("describedBy.resultOf.object.modifiedBy[]") +add_array("describedBy.resultOf.object.modifiedBy[]") do list(path:"$i.d", "var":"$j") copy_field("$j", "describedBy.resultOf.object.modifiedBy[].$append.id") end end -call_macro("provenanceLinks",field: "describedBy.resultOf.object.sourceOrganization.id") -copy_field("describedBy.resultOf.object.sourceOrganization.id","describedBy.resultOf.object.sourceOrganization.label") -lookup("describedBy.resultOf.object.sourceOrganization.label","lobidOrgLabels",delete:"true") -call_macro("provenanceLinks",field: "describedBy.resultOf.object.provider.id") -copy_field("describedBy.resultOf.object.provider.id","describedBy.resultOf.object.provider.label") -lookup("describedBy.resultOf.object.provider.label","lobidOrgLabels",delete:"true") +call_macro("provenanceLinks",field: "describedBy.resultOf.object.sourceOrganization.id",label: "describedBy.resultOf.object.sourceOrganization.label") +call_macro("provenanceLinks",field: "describedBy.resultOf.object.provider.id",label: "describedBy.resultOf.object.provider.label") do list(path:"describedBy.resultOf.object.modifiedBy[]","var":"$i") - call_macro("provenanceLinks",field: "$i.id") - copy_field("$i.id","$i.label") + call_macro("provenanceLinks",field: "$i.id",label:"$i.label") end -lookup("describedBy.resultOf.object.modifiedBy[].*.label","lobidOrgLabels",delete:"true") uniq("describedBy.resultOf.object.modifiedBy[]") diff --git a/conf/lobid-transformation/fix/identifiers.fix b/conf/lobid-transformation/fix/identifiers.fix index e818a01..8787f2a 100644 --- a/conf/lobid-transformation/fix/identifiers.fix +++ b/conf/lobid-transformation/fix/identifiers.fix @@ -6,7 +6,7 @@ paste("id", "~http://lobid.org/resources/", "001", "~#!", join_char: "") # 024 - Other Standard Identifier (R) Subfield: $a (NR) $2 (NR) # urn -set_array("urn[]") +add_array("urn[]") do list(path: "0247?", "var": "$i") if any_equal("$i.2","urn") @@ -17,7 +17,7 @@ end # Sometimes urn are not set in 024 then we could pick up the missing from 856. # 856 - Electronic Location and Access (R) - Subfield: $u (R) $3 (NR) # 1. Indicator: 4 = HTTP -set_array("@urnLinks") +add_array("@urnLinks") do list(path:"856??", "var":"$i") if all_match("$i.u", "^http.*(urn=|\\.(org|de)/)urn:.+$") # This should ignore repository links like: https://sammlungen.ulb.uni-muenster.de/urn/urn:nbn:de:hbz:6-85659520092 @@ -50,8 +50,8 @@ end # 020 - International Standard Book Number (R) - $a (NR) # source data sometimes provides repeated subfield $a even if this is not valid marc -set_array("@isbn[]") -set_array("isbn[]") +add_array("@isbn[]") +add_array("isbn[]") do list(path:"020 ", "var": "$i") do list(path:"$i.a", "var": "$j") @@ -74,7 +74,7 @@ uniq("isbn[]") # 022 - International Standard Serial Number (R) - Subfield $a (NR) -set_array("issn[]") +add_array("issn[]") do list(path:"022? ", "var":"$i") copy_field("$i.a", "issn[].$append") end @@ -82,7 +82,7 @@ replace_all("issn[].*", "-","") uniq("issn[]") # 024 - Other Standard Identifier (R) - Subfield a (NR) 1. Indicator 2 = ISMN -set_array("ismn[]") +add_array("ismn[]") do list(path:"0242?", "var":"$i") copy_field("$i.a", "ismn[].$append") end @@ -90,7 +90,7 @@ replace_all("ismn[].*", "-","") # 024 (R) Subfield a (NR) 1. Indicator 7 = to defined Identifier -set_array("doi[]") +add_array("doi[]") do list(path:"0247?", "var":"$i") if all_equal("$i.2","doi") copy_field("$i.a", "doi[].$append") @@ -109,7 +109,7 @@ replace_all("doi[].*", ".*doi.org.*(10\\.(\\d)+/(\\S)+).*", "$1") uniq("doi[]") # 035 - System Control Number (R) - Subfield: $a (NR) -set_array("oclcNumber[]") +add_array("oclcNumber[]") do list(path:"035 ", "var":"$i") if all_match("$i.a", "\\(OCoLC\\)(.*)") @@ -137,8 +137,6 @@ do list(path:"035 ", "var":"$i") unless exists("zdbId") if all_match("$i.a", "\\(DE-600\\)(.*)") copy_field("$i.a", "zdbId") - elsif all_match("$i.a", "\\(DE-599\\)(ZDB.*)") - copy_field("$i.a", "zdbId") end end end @@ -153,7 +151,7 @@ copy_field("almaMmsId","rpbId") lookup("rpbId","almaMmsId2rpbId",delete:"true") replace_all("rpbId", "^RPB","") -set_array("stockNumber[]") +add_array("stockNumber[]") do list(path:"028??", "var":"$i") copy_field("$i.a", "stockNumber[].$append") end @@ -168,3 +166,7 @@ unless exists("hbzId") copy_field("@hbzId","hbzId") end end + +unless exists("@inNZ") + remove_field("hbzId") +end diff --git a/conf/lobid-transformation/fix/item.fix b/conf/lobid-transformation/fix/item.fix index 8f39a3f..2470339 100644 --- a/conf/lobid-transformation/fix/item.fix +++ b/conf/lobid-transformation/fix/item.fix @@ -1,11 +1,11 @@ -set_array("hasItem[]") -set_array("@ITM-H") # Helper element for creating Holding from HOL ("PhysikalischerTitel") +add_array("hasItem[]") +add_array("@ITM-H") # Helper element for creating Holding from HOL ("PhysikalischerTitel") do list(path:"ITM ", "var": "$i") call_macro("suppressedLocation", targetField: "$i", libraryCodeSubfield: "w", locationCodeSubfield: "x") unless exists("$i.suppressedLocation") # Test if location is suppressed with mapping provided by the libraries. - set_hash( "hasItem[].$append") + add_hash( "hasItem[].$append") add_field("hasItem[].$last.label", "lobid Bestandsressource") - set_array("hasItem[].$last.type[]", "Item","PhysicalObject") + add_array("hasItem[].$last.type[]", "Item","PhysicalObject") if exists("$i.z") # Temporary call number subfield copy_field("$i.z", "hasItem[].$last.callNumber") elsif exists("$i.n") # Item call number subfield @@ -21,7 +21,7 @@ do list(path:"ITM ", "var": "$i") end end -set_array("@HOL-M_POR-M") # Helper element for creating Holding from MBD ("NurTitel") +add_array("@HOL-M_POR-M") # Helper element for creating Holding from MBD ("NurTitel") do list(path: "HOL ", "var": "$i") copy_field("$i.M","@HOL-M_POR-M.$append") unless in("$i.8", "@ITM-H") # Checks if there is no corresponding ITM-Field @@ -30,9 +30,9 @@ do list(path: "HOL ", "var": "$i") if exists("$H52.b") call_macro("suppressedLocation", targetField: "$H52", libraryCodeSubfield: "b", locationCodeSubfield: "c") unless exists("$H52.suppressedLocation") # Test if location is suppressed with mapping provided by the libraries. - set_hash( "hasItem[].$append") + add_hash( "hasItem[].$append") add_field("hasItem[].$last.label", "lobid Bestandsressource") - set_array("hasItem[].$last.type[]", "Item","PhysikalischerTitel") + add_array("hasItem[].$last.type[]", "Item","PhysikalischerTitel") if exists("$H52.b.1") copy_field("$H52.b.1","hasItem[].$last.currentLibrary") else @@ -56,8 +56,8 @@ do list(path:"POR ", "var": "$i") copy_field("$i.M","@HOL-M_POR-M.$append") # entity for every POR .a without POR .A unless any_match("$i.a",".*6441$") # filter out hbz - set_hash( "hasItem[].$append") - set_array("hasItem[].$last.type[]", "Item", "DigitalDocument") + add_hash( "hasItem[].$append") + add_array("hasItem[].$last.type[]", "Item", "DigitalDocument") add_field("hasItem[].$last.label", "Electronic Portfolio") copy_field("$i.D", "$i.@electronicLocator") replace_all("$i.@electronicLocator","https://eu04.alma.exlibrisgroup.com/view/uresolver/49HBZ_NETWORK","") @@ -74,8 +74,8 @@ do list(path:"POR ", "var": "$i") copy_field("$i.d", "$i.@sublocation") replace_all("$i.@sublocation","https://hbz-network.userservices.exlibrisgroup.com/view/uresolver/49HBZ_NETWORK","") do list(path:"$i.A", "var": "$j") - set_hash( "hasItem[].$append") - set_array("hasItem[].$last.type[]", "Item", "DigitalDocument") + add_hash( "hasItem[].$append") + add_array("hasItem[].$last.type[]", "Item", "DigitalDocument") add_field("hasItem[].$last.label", "Electronic Portfolio") paste("hasItem[].$last.electronicLocator", "~https://eu04.alma.exlibrisgroup.com/view/uresolver/","$j","$i.@electronicLocator", join_char: "") paste("hasItem[].$last.sublocation", "~https://hbz-network.userservices.exlibrisgroup.com/view/uresolver/","$j","$i.@sublocation", join_char: "") @@ -85,7 +85,7 @@ do list(path:"POR ", "var": "$i") copy_field("$i.@iz","hasItem[].$last.heldBy.isil") paste("hasItem[].$last.heldBy.id", "~http://lobid.org/organisations/", "hasItem[].$last.heldBy.isil", "~#!", join_char:"") copy_field("hasItem[].$last.heldBy.id", "hasItem[].$last.heldBy.label") - set_array("hasItem[].$last.inCollection[]") + add_array("hasItem[].$last.inCollection[]") paste("hasItem[].$last.inCollection[].$append.id", "~http://lobid.org/organisations/", "$i.@iz", "~#!", join_char:"") copy_field("hasItem[].$last.inCollection[].$last.id", "hasItem[].$last.inCollection[].$last.label") # item id is constructed "http://lobid.org/items/[almaMmsId of the record]:[isil of the Owner]:[almaMmsId of the holding]#!" @@ -97,9 +97,9 @@ end do list(path: "MBD ", "var": "$i") unless any_match("$i.M","49HBZ_NETWORK") unless in("$i.M", "@HOL-M_POR-M") # Checks if there is no corresponding HOL or POR-Field - set_hash( "hasItem[].$append") + add_hash( "hasItem[].$append") add_field("hasItem[].$last.label", "lobid Bestandsressource") - set_array("hasItem[].$last.type[]", "Item","NurTitel") + add_array("hasItem[].$last.type[]", "Item","NurTitel") copy_field("$i.i", "$i.@iz") replace_all("$i.@iz",".*(\\d{4})$","$1") lookup("$i.@iz", "alma-institution-code-to-isil") @@ -107,7 +107,7 @@ do list(path: "MBD ", "var": "$i") copy_field("$i.@iz","hasItem[].$last.heldBy.isil") paste("hasItem[].$last.heldBy.id", "~http://lobid.org/organisations/", "hasItem[].$last.heldBy.isil", "~#!", join_char:"") copy_field("hasItem[].$last.heldBy.id", "hasItem[].$last.heldBy.label") - set_array("hasItem[].$last.inCollection[]") + add_array("hasItem[].$last.inCollection[]") paste("hasItem[].$last.inCollection[].$append.id", "~http://lobid.org/organisations/", "$i.@iz", "~#!", join_char:"") copy_field("hasItem[].$last.inCollection[].$last.id", "hasItem[].$last.inCollection[].$last.label") # item id is constructed "http://lobid.org/items/[almaMmsId of the record]:[isil of the Owner]:[almaMmsId of the holding]#!" diff --git a/conf/lobid-transformation/fix/macros.fix b/conf/lobid-transformation/fix/macros.fix index d242292..7a57a62 100644 --- a/conf/lobid-transformation/fix/macros.fix +++ b/conf/lobid-transformation/fix/macros.fix @@ -8,7 +8,7 @@ do put_macro("alternateGraphicRepresationArrayOfObjects") do list(path:"alternateGraphicRepresentation[]","var":"$AGR") if in ("$880.@script.id","$AGR.script.id") unless exists("$AGR.record.$[targetArray]") - set_array("$AGR.record.$[targetArray]") + add_array("$AGR.record.$[targetArray]") end copy_field("$880.a","$AGR.record.$[targetArray].$append$[targetField].label") end @@ -16,7 +16,7 @@ do put_macro("alternateGraphicRepresationArrayOfObjects") else copy_field("$880.@script.id","alternateGraphicRepresentation[].$append.script.id") copy_field("$880.@script.label","alternateGraphicRepresentation[].$last.script.label") - set_array("alternateGraphicRepresentation[].$last.record.$[targetArray]") + add_array("alternateGraphicRepresentation[].$last.record.$[targetArray]") copy_field("$880.a","alternateGraphicRepresentation[].$last.record.$[targetArray].$append$[targetField].label") end end @@ -33,7 +33,7 @@ do put_macro("alternateGraphicRepresationArrayOfStrings") do list(path:"alternateGraphicRepresentation[]","var":"$AGR") if in ("$880.@script.id","$AGR.script.id") unless exists("$AGR.record.$[targetArray]") - set_array("$AGR.record.$[targetArray]") + add_array("$AGR.record.$[targetArray]") end copy_field("$880.a","$AGR.record.$[targetArray].$append") end @@ -41,7 +41,7 @@ do put_macro("alternateGraphicRepresationArrayOfStrings") else copy_field("$880.@script.id","alternateGraphicRepresentation[].$append.script.id") copy_field("$880.@script.label","alternateGraphicRepresentation[].$last.script.label") - set_array("alternateGraphicRepresentation[].$last.record.$[targetArray]") + add_array("alternateGraphicRepresentation[].$last.record.$[targetArray]") copy_field("$880.a","alternateGraphicRepresentation[].$last.record.$[targetArray].$append") end end @@ -58,9 +58,9 @@ do put_macro("alternateGraphicRepresationIsPartOf") do list(path:"alternateGraphicRepresentation[]","var":"$AGR") if in ("$880.@script.id","$AGR.script.id") unless exists("$AGR.record.isPartOf[]") - set_array("$AGR.record.isPartOf[]") + add_array("$AGR.record.isPartOf[]") end - set_array("$AGR.record.isPartOf[].$append.hasSuperordinate[]") + add_array("$AGR.record.isPartOf[].$append.hasSuperordinate[]") copy_field("$880.a","$AGR.record.isPartOf[].$last.hasSuperordinate[].$append.label") copy_field("$880.v", "$AGR.record.isPartOf[].$last.numbering") end @@ -68,8 +68,8 @@ do put_macro("alternateGraphicRepresationIsPartOf") else copy_field("$880.@script.id","alternateGraphicRepresentation[].$append.script.id") copy_field("$880.@script.label","alternateGraphicRepresentation[].$last.script.label") - set_array("alternateGraphicRepresentation[].$last.record.isPartOf[]") - set_array("alternateGraphicRepresentation[].$last.record.isPartOf[].$append.hasSuperordinate[]") + add_array("alternateGraphicRepresentation[].$last.record.isPartOf[]") + add_array("alternateGraphicRepresentation[].$last.record.isPartOf[].$append.hasSuperordinate[]") copy_field("$880.a","alternateGraphicRepresentation[].$last.record.isPartOf[].$last.hasSuperordinate[].$append.label") copy_field("$880.v", "alternateGraphicRepresentation[].$last.record.isPartOf[].$last.numbering") end @@ -83,7 +83,7 @@ do put_macro("rolesFromSubfieldE") if exists("$i.e") unless is_array("$i.4") move_field("$i.4","$i.@4") - set_array("$i.4") + add_array("$i.4") move_field("$i.@4","$i.4.$append") end do list(path:"$i.e","var":"$e") @@ -171,11 +171,11 @@ end # Macro for combinedLabel Event / Meeting do put_macro("gndEventCombinedLabel") - set_array("$[field].@combinedLabel") # check if GND concept has combined variant + add_array("$[field].@combinedLabel") # check if GND concept has combined variant copy_field("$[field].a","$[field].@combinedLabel.$append") copy_field("$[field].b","$[field].@combinedLabel.$append") join_field("$[field].@combinedLabel", ". ") # This is the difference to gnd person - set_array("$[field].@combinedDetailsForEvents") + add_array("$[field].@combinedDetailsForEvents") copy_field("$[field].n","$[field].@combinedDetailsForEvents.$append") copy_field("$[field].g","$[field].@combinedDetailsForEvents.$append") copy_field("$[field].d","$[field].@combinedDetailsForEvents.$append") @@ -192,7 +192,7 @@ end # Macro for combinedLabel Person do put_macro("gndPersonCombinedLabel") - set_array("$[field].@combinedLabel") # check if GND concept has combined variant + add_array("$[field].@combinedLabel") # check if GND concept has combined variant copy_field("$[field].a","$[field].@combinedLabel.$append") copy_field("$[field].b","$[field].@combinedLabel.$append") join_field("$[field].@combinedLabel", " ") # This is the difference to gnd non person @@ -214,7 +214,7 @@ end # Macro for combinedLabel Non-Person and Non-Event do put_macro("gndOtherCombinedLabel") - set_array("$[field].@combinedLabel") # check if GND concept has combined variant + add_array("$[field].@combinedLabel") # check if GND concept has combined variant copy_field("$[field].a","$[field].@combinedLabel.$append") copy_field("$[field].p","$[field].@combinedLabel.$append") copy_field("$[field].b","$[field].@combinedLabel.$append") @@ -289,6 +289,18 @@ do put_macro("provenanceLinks") end prepend("$[field]", "http://lobid.org/organisations/") append("$[field]", "#!") + copy_field("$[field]","$[label]") + lookup("$[label]","lobidOrgLabels",delete:"true") + end + + unless exists("$[label]") + if any_contain("$[field]","lobid") + add_field("$[label]","lobid Organisation") + elsif any_contain("$[field]","ebookcentral") + add_field("$[label]","Ebookcentral Proquest") + elsif any_contain("$[field]","ebrary") + add_field("$[label]","Ebrary") + end end @@ -333,7 +345,7 @@ do put_macro("holdingLibrary+opacLink") end paste("hasItem[].$last.heldBy.id", "~http://lobid.org/organisations/", "hasItem[].$last.heldBy.isil", "~#!", join_char:"") copy_field("hasItem[].$last.heldBy.id", "hasItem[].$last.heldBy.label") - set_array("hasItem[].$last.inCollection[]") + add_array("hasItem[].$last.inCollection[]") paste("hasItem[].$last.inCollection[].$append.id", "~http://lobid.org/organisations/", "$i.@iz", "~#!", join_char:"") copy_field("hasItem[].$last.inCollection[].$last.id", "hasItem[].$last.inCollection[].$last.label") # item id is constructed "http://lobid.org/items/[almaMmsId of the record]:[isil of the Owner]:[almaMmsId of the holding]#!" @@ -365,7 +377,7 @@ do put_macro("opacLink") # lookup("$i.@opacLinkIsbn","isil2opac_isbn", delete:"true") # split_field("$i.@opacLinkZdbId","\\{isbn\\}") # end - set_array("hasItem[].$last.seeAlso[]") + add_array("hasItem[].$last.seeAlso[]") if exists("$i.@opacLinkZdbId.1") paste("hasItem[].$last.seeAlso[].$append","$i.@opacLinkZdbId.1","zdbId","$i.@opacLinkZdbId.2",join_char:"") elsif exists("$i.@opacLinkHbzId.1") @@ -383,11 +395,11 @@ end do put_macro("schlagwortfolge") if exists("$[field]") - set_array("subject[].$append.type[]","ComplexSubject") - set_array("subject[].$last.label") - set_array("subject[].$last.componentList[]") + add_array("subject[].$append.type[]","ComplexSubject") + add_array("subject[].$last.label") + add_array("subject[].$last.componentList[]") do list(path:"$[field]", "var":"$i") - set_array("subject[].$last.componentList[].$append.type[]") + add_array("subject[].$last.componentList[].$append.type[]") if exists("$i.t") # Marker for Werktitel/Work even when the GND-enrichment is falsly labeld as Peron or differently add_field("subject[].$last.componentList[].$last.type[].$append","Work") else @@ -438,8 +450,8 @@ end do put_macro("subjectLabel") - set_array("subject[].$last.label") - set_array("$i.@name") + add_array("subject[].$last.label") + add_array("$i.@name") copy_field("$i.a","$i.@name.$append") copy_field("$i.b","$i.@name.$append") copy_field("$i.c","$i.@name.$append") @@ -455,7 +467,7 @@ end do put_macro("publication") do list(path:"$[field]", "var":"$i") - set_hash( "publication[].$append") + add_hash( "publication[].$append") do list(path: "$i.c", "var":"$j") replace_all("$j", "\\[|\\]|ca. |c ", "") unless exists("publication[].$last.startDate") @@ -469,10 +481,10 @@ do put_macro("publication") end end end - set_array("publication[].$last.type[]","PublicationEvent") - set_array("publication[].$last.location[]") + add_array("publication[].$last.type[]","PublicationEvent") + add_array("publication[].$last.location[]") copy_field("$i.a", "publication[].$last.location[].$append") - set_array("publication[].$last.publishedBy[]") + add_array("publication[].$last.publishedBy[]") copy_field("$i.b", "publication[].$last.publishedBy[].$append") if exists("$i.6") copy_field("$i.6","$i.linkageTest") @@ -482,23 +494,23 @@ do put_macro("publication") do list(path:"alternateGraphicRepresentation[]","var":"$AGR") if in ("$880.@script.id","$AGR.script.id") unless exists("$AGR.record.publication[]") - set_array("$AGR.record.publication[]") + add_array("$AGR.record.publication[]") end - set_hash( "$AGR.record.publication[].$append") - set_array("$AGR.record.publication[].$last.location[]") + add_hash( "$AGR.record.publication[].$append") + add_array("$AGR.record.publication[].$last.location[]") copy_field("$880.a", "$AGR.record.publication[].$last.location[].$append") - set_array("$AGR.record.publication[].$last.publishedBy[]") + add_array("$AGR.record.publication[].$last.publishedBy[]") copy_field("$880.b", "$AGR.record.publication[].$last.publishedBy[].$append") end end else copy_field("$880.@script.id","alternateGraphicRepresentation[].$append.script.id") copy_field("$880.@script.label","alternateGraphicRepresentation[].$last.script.label") - set_array("alternateGraphicRepresentation[].$last.publication[]") - set_hash( "alternateGraphicRepresentation[].$last.publication[].$append") - set_array("alternateGraphicRepresentation[].$last.publication[].$last.location[]") + add_array("alternateGraphicRepresentation[].$last.publication[]") + add_hash( "alternateGraphicRepresentation[].$last.publication[].$append") + add_array("alternateGraphicRepresentation[].$last.publication[].$last.location[]") copy_field("$880.a", "alternateGraphicRepresentation[].$last.publication[].$last.location[].$append") - set_array("alternateGraphicRepresentation[].$last.publication[].$last.publishedBy[]") + add_array("alternateGraphicRepresentation[].$last.publication[].$last.publishedBy[]") copy_field("$880.b", "alternateGraphicRepresentation[].$last.publication[].$last.publishedBy[].$append") end end @@ -509,7 +521,7 @@ end do put_macro("manufacture") do list(path:"$[field]", "var":"$i") - set_hash( "manufacture[].$append") + add_hash( "manufacture[].$append") do list(path: "$i.c", "var":"$j") replace_all("$j", "\\[|\\]|ca. |c ", "") unless exists("manufacture[].$last.startDate") @@ -523,10 +535,10 @@ do put_macro("manufacture") end end end - set_array("manufacture[].$last.type[]","Event") - set_array("manufacture[].$last.location[]") + add_array("manufacture[].$last.type[]","Event") + add_array("manufacture[].$last.location[]") copy_field("$i.a", "manufacture[].$last.location[].$append") - set_array("manufacture[].$last.manufacturedBy[]") + add_array("manufacture[].$last.manufacturedBy[]") copy_field("$i.b", "manufacture[].$last.manufacturedBy[].$append") if exists("$i.6") copy_field("$i.6","$i.linkageTest") @@ -536,23 +548,23 @@ do put_macro("manufacture") do list(path:"alternateGraphicRepresentation[]","var":"$AGR") if in ("$880.@script.id","$AGR.script.id") unless exists("$AGR.record.manufacture[]") - set_array("$AGR.record.manufacture[]") + add_array("$AGR.record.manufacture[]") end - set_hash( "$AGR.record.manufacture[].$append") - set_array("$AGR.record.manufacture[].$last.location[]") + add_hash( "$AGR.record.manufacture[].$append") + add_array("$AGR.record.manufacture[].$last.location[]") copy_field("$880.a", "$AGR.record.manufacture[].$last.location[].$append") - set_array("$AGR.record.manufacture[].$last.manufacturedBy[]") + add_array("$AGR.record.manufacture[].$last.manufacturedBy[]") copy_field("$880.b", "$AGR.record.manufacture[].$last.manufacturedBy[].$append") end end else copy_field("$880.@script.id","alternateGraphicRepresentation[].$append.script.id") copy_field("$880.@script.label","alternateGraphicRepresentation[].$last.script.label") - set_array("alternateGraphicRepresentation[].$last.manufacture[]") - set_hash( "alternateGraphicRepresentation[].$last.manufacture[].$append") - set_array("alternateGraphicRepresentation[].$last.manufacture[].$last.location[]") + add_array("alternateGraphicRepresentation[].$last.manufacture[]") + add_hash( "alternateGraphicRepresentation[].$last.manufacture[].$append") + add_array("alternateGraphicRepresentation[].$last.manufacture[].$last.location[]") copy_field("$880.a", "alternateGraphicRepresentation[].$last.manufacture[].$last.location[].$append") - set_array("alternateGraphicRepresentation[].$last.manufacture[].$last.publishedBy[]") + add_array("alternateGraphicRepresentation[].$last.manufacture[].$last.publishedBy[]") copy_field("$880.b", "alternateGraphicRepresentation[].$last.manufacture[].$last.publishedBy[].$append") end end @@ -560,3 +572,16 @@ do put_macro("manufacture") end end end + + +# lobid resources label +do put_macro("lobidResourcesFallbackLabel") + do list(path:"$[field]","var":"$array") + unless exists("$array.label") + if any_contain("$array.id","lobid") + add_field("$array.label","lobid Ressource") + end + end + end +end + diff --git a/conf/lobid-transformation/fix/maps.fix b/conf/lobid-transformation/fix/maps.fix index 9726051..338e0ae 100644 --- a/conf/lobid-transformation/fix/maps.fix +++ b/conf/lobid-transformation/fix/maps.fix @@ -55,6 +55,12 @@ put_filemap("./maps/isil2opac_issn.tsv","isil2opac_issn", sep_char:"\t") put_filemap("./maps/isil2opac_zdbId.tsv","isil2opac_zdbId", sep_char:"\t") put_filemap("./maps/isil2opac_almaMmsId.tsv","isil2opac_almaMmsId", sep_char:"\t") +# marcRel +put_filemap("./maps/marcRel.tsv","marcRel", sep_char:"\t",key_column:"0",value_column:"1",expected_columns:"-1") + +# collection labels +put_filemap("./maps/collectionLabels.tsv","collectionLabels", sep_char:"\t",key_column:"0",value_column:"1",expected_columns:"-1") + put_map("rswk-indicator", "p": "Person", @@ -65,8 +71,22 @@ put_map("rswk-indicator", "s": "SubjectHeading" ) - - +put_map("marc-publication-frequency-label", + "http://marc21rdf.info/terms/continuingfre#d" : "täglich", + "http://marc21rdf.info/terms/continuingfre#i" : "dreimal wöchentlich", + "http://marc21rdf.info/terms/continuingfre#c" : "zweimal wöchentlich", + "http://marc21rdf.info/terms/continuingfre#w" : "wöchentlich", + "http://marc21rdf.info/terms/continuingfre#e" : "vierzehntägig", + "http://marc21rdf.info/terms/continuingfre#s" : "halbmonatlich", + "http://marc21rdf.info/terms/continuingfre#m" : "monatlich", + "http://marc21rdf.info/terms/continuingfre#b" : "alle zwei Monate", + "http://marc21rdf.info/terms/continuingfre#q" : "vierteljährlich", + "http://marc21rdf.info/terms/continuingfre#f" : "halbjährlich", + "http://marc21rdf.info/terms/continuingfre#a" : "jährlich", + "http://marc21rdf.info/terms/continuingfre#g" : "alle zwei Jahre", + "http://marc21rdf.info/terms/continuingfre#h" : "alle drei Jahre", + "http://marc21rdf.info/terms/continuingfre#z" : "unregelmäßig oder sonstige Erscheinungsfrequenz" +) put_map("medium-id-to-label", "Audio-Dokument": "http://purl.org/ontology/bibo/AudioDocument", diff --git a/conf/lobid-transformation/fix/mediumAndType.fix b/conf/lobid-transformation/fix/mediumAndType.fix index 7dc4b58..d728ade 100644 --- a/conf/lobid-transformation/fix/mediumAndType.fix +++ b/conf/lobid-transformation/fix/mediumAndType.fix @@ -1,4 +1,4 @@ -set_array("medium[]") +add_array("medium[]") # The type and medium transformation has to be completly remodeled since the transformation was not identical with # the old ALEPH Moprh Transformation. @@ -52,7 +52,7 @@ end paste("@leaderTyp+008","@leaderTyp","008", join_char:"") # Collects Portfolio resource types -set_array("@PORtype") +add_array("@PORtype") do list(path: "POR ","var":"$i") copy_field("$i.f","@PORtype.$append") end @@ -65,7 +65,7 @@ end # TODO: Check introx concerning possible mappings of 340 https://github.com/hbz/limetrans/blob/d2dff10e1b5cdf5699239a8f3474f8b652d582a3/src/main/resources/transformation/alma.fix#L629 -set_array("@300a_mainExtend") +add_array("@300a_mainExtend") do list(path:"300 ", "var":"$i") do list(path:"$i.a", "var":"$j") copy_field("$j","@300a_mainExtend.$append") # All extent infos listed after : or ; are only refering to parts not the resource itself. @@ -338,7 +338,7 @@ end # All metadata records have type: "BibliographicResource" # Base for type list is schema: https://github.com/hbz/lobid-resources/blob/eb1cbfaf013b03aee49291d8b3a4d00aa046e333/src/test/resources/schemas/type.json -set_array("type[]","BibliographicResource") +add_array("type[]","BibliographicResource") # There seems to be a discrepancy between the values in the schema enum and in the aggregation. # Real data: http://lobid.org/resources/search?format=json&aggregations=type @@ -360,10 +360,12 @@ if any_equal("natureOfContent[].*.label","Website") end end # if type is ArchivedWebPage also add element `webPageArchived` - set_array("webPageArchived[]") + add_array("webPageArchived[]") do list(path: "856??", "var": "$i") unless any_contain("$i.u", "edoweb") copy_field("$i.u","webPageArchived[].$append.id") + copy_field("$i.u","webPageArchived[].$last.label") + replace_all("webPageArchived[].$last.label","http[s]?://(.*?)[/]?$","$1") end end end diff --git a/conf/lobid-transformation/fix/otherFields.fix b/conf/lobid-transformation/fix/otherFields.fix index dc780d6..de90ad9 100644 --- a/conf/lobid-transformation/fix/otherFields.fix +++ b/conf/lobid-transformation/fix/otherFields.fix @@ -1,7 +1,7 @@ # 008 - Fixed-Length Data Elements-General Information (NR) - No subfields # 041 - 041 - Language Code (R) -set_array("@language") +add_array("@language") copy_field("008", "@008-lang") substring("@008-lang", "35", "3") copy_field("@008-lang", "@language.$append.id") @@ -13,7 +13,7 @@ end lookup("@language.*.label","ISO639-2-to-GND", delete:"true") -set_array("language[]") +add_array("language[]") do list(path:"@language", "var":"$i") unless any_match("$i.id","zxx|mul|sgn|und|.*[\\|\\#].*|\\s*") if exists("$i.label") @@ -34,8 +34,8 @@ uniq("language[]") # 300 - Physical Description (R) # We reuse the introx transformation here. -set_array("@300a") -set_array("@300c") +add_array("@300a") +add_array("@300c") do list(path: "300 ", "var": "$i") copy_field("$i.a", "@300a.$append") do list(path: "$i.b", "var": "$j") @@ -110,7 +110,7 @@ replace_all("extent", " ", " ") # 500 - General Note (R) Subfield: $a (NR) -set_array("note[]") +add_array("note[]") do list(path:"500 ", "var": "$i") copy_field("$i.a", "note[].$append") end @@ -125,13 +125,13 @@ end # 520 - Summary, Etc. (R) Subfield: $a (NR), $b (NR) # TODO: Check if 1. Indicator 1 (REVIEW) is really to count as abstract. Perhaps 2 (Scope and content) is a better fit. # TODO: Get testdata. -set_array("abstract[]") +add_array("abstract[]") do list(path:"520[ 23] ", "var": "$i") copy_field("$i.[ab]", "abstract[].$append") end # 502 - Dissertation Note (R) Subfield: $a (R) -set_array("thesisInformation[]") +add_array("thesisInformation[]") do list(path:"502 ", "var": "$i") copy_field("$i.a", "thesisInformation[].$append") paste("thesisInformation[].$append","$i.c","$i.b","$i.d","$i.o","$i.g", join_char:", ") @@ -143,7 +143,7 @@ end # Also the element bibliographicCitation is confusing since it has a broader concept than the scope in lobid: only bibliographicInfo about issues/collection that an article belongs to. # Do we need a filter only for articles? -set_array("bibliographicCitation") +add_array("bibliographicCitation") # 773 - Host Item Entry (R) - $t - Title (NR), $b - Edition (NR), $d - Place, publisher, and date of publication (NR), $g - Related parts (R), $n - Note (R) @@ -174,18 +174,23 @@ replace_all("bibliographicCitation.*","^In: ","") join_field("bibliographicCitation", "; ") +# 540 - Terms Governing Use and Reproduction Note (R) + # 542 - Information Relating to Copyright Status (R) - $n - Note (R) $u - Uniform Resource Identifier (R) -set_array("license[]") -do list(path: "542??", "var": "$i") +add_array("license[]") +do list(path: "540??|542??", "var": "$i") copy_field("$i.u", "license[].$append.id") + replace_all("license[].$last.id", "^(http://|https://)(.*)$","https://$2") copy_field("$i.u", "license[].$last.label") replace_all("license[].$last.label", "^(http://|https://)(.*)$","$2") end -set_array("langNote[]") +uniq("license[]") + +add_array("langNote[]") do list(path: "546??", "var": "$i") - set_array("$i.@langNote") + add_array("$i.@langNote") copy_field("$i.a", "$i.@langNote.$append") copy_field("$i.b", "$i.@langNote.$append") replace_all("$i.@langNote.*", "[.;]$", "") diff --git a/conf/lobid-transformation/fix/relatedRessourcesAndLinks.fix b/conf/lobid-transformation/fix/relatedRessourcesAndLinks.fix index 92d423c..1ee1625 100644 --- a/conf/lobid-transformation/fix/relatedRessourcesAndLinks.fix +++ b/conf/lobid-transformation/fix/relatedRessourcesAndLinks.fix @@ -1,4 +1,4 @@ -set_array("sameAs[]") +add_array("sameAs[]") # 035 - System Control Number (R) - Subfield: $a (NR) @@ -51,12 +51,12 @@ end # 770 - Supplement/Special Issue Entry (R) - Subflied: $i (R), $t (NR), $w (R) -set_array("supplement[]") +add_array("supplement[]") do list(path:"77008", "var":"$i") if any_match("$i.i", "Beil.*|Supp.*") - set_hash( "supplement[].$append") - set_array("supplement[].$last.note[]") + add_hash( "supplement[].$append") + add_array("supplement[].$last.note[]") do list(path:"$i.i","var":"$j") copy_field("$j","supplement[].$last.note[].$append") end @@ -72,12 +72,13 @@ end replace_all("supplement[].*.id","^\\(DE-605\\)(.*)$","http://lobid.org/resources/$1#!") replace_all("supplement[].*.id","^\\(DE-600\\)(.*)$","http://lobid.org/resources/ZDB-$1#!") replace_all("supplement[].*.label","<<|>>","") +call_macro("lobidResourcesFallbackLabel",field:"supplement[]") # isPartOf # it describes the relation between a published ressource and its superordinate series or collection. # in contrast to containedIn it is a standalone publication -set_array("isPartOf[]") +add_array("isPartOf[]") # 773 - Host Item Entry (R) Subfield: $w (NR), $t (NR), $q (NR) @@ -85,16 +86,16 @@ unless any_match("leader", "^.{7}[ad].*") do list(path: "773??", "var": "$i") unless any_equal("$i.9","LOCAL") do list(path: "$i.w", "var": "$j") - set_array("isPartOf[].$append.type[]", "IsPartOfRelation") - set_array("isPartOf[].$last.hasSuperordinate[]") - set_hash( "isPartOf[].$last.hasSuperordinate[].$append") + add_array("isPartOf[].$append.type[]", "IsPartOfRelation") + add_array("isPartOf[].$last.hasSuperordinate[]") + add_hash( "isPartOf[].$last.hasSuperordinate[].$append") if all_match("$j", "^\\((?:DE-600|DE-605)\\)(.*)$") copy_field("$j", "isPartOf[].$last.hasSuperordinate[].$last.id") end copy_field("$i.t", "isPartOf[].$last.hasSuperordinate[].$last.label") call_macro("alternateGraphicRepresationIsPartOf",variable:"$i") copy_field("$i.q", "isPartOf[].$last.numbering") - set_array("isPartOf[].$last.note[]") + add_array("isPartOf[].$last.note[]") do list(path:"$i.i","var":"$j") copy_field("$j","isPartOf[].$last.note[].$append") end @@ -107,17 +108,17 @@ end # 490 with 1. Indicator 1 has an identical entry in 830. So only 490 with 1. Indicator 0 do list(path: "4900?", "var": "$i") - set_array("isPartOf[].$append.type[]", "IsPartOfRelation") - set_array("isPartOf[].$last.hasSuperordinate[]") - set_hash( "isPartOf[].$last.hasSuperordinate[].$append") - set_array("isPartOf[].$last.hasSuperordinate[].$last.label") + add_array("isPartOf[].$append.type[]", "IsPartOfRelation") + add_array("isPartOf[].$last.hasSuperordinate[]") + add_hash( "isPartOf[].$last.hasSuperordinate[].$append") + add_array("isPartOf[].$last.hasSuperordinate[].$last.label") do list(path:"$i.a", "var":"$j") copy_field("$j", "isPartOf[].$last.hasSuperordinate[].$last.label.$append") end join_field("isPartOf[].$last.hasSuperordinate[].$last.label", " / ") call_macro("alternateGraphicRepresationIsPartOf",variable:"$i") - set_array("isPartOf[].$last.numbering") + add_array("isPartOf[].$last.numbering") do list(path:"$i.v", "var":"$j") copy_field("$j", "isPartOf[].$last.numbering.$append") end @@ -129,13 +130,13 @@ end # Element can be repeatable with local entries they have subfield $M. do list(path: "830??", "var": "$i") - set_array("isPartOf[].$append.type[]", "IsPartOfRelation") - set_array("isPartOf[].$last.hasSuperordinate[]") - set_hash( "isPartOf[].$last.hasSuperordinate[].$append") + add_array("isPartOf[].$append.type[]", "IsPartOfRelation") + add_array("isPartOf[].$last.hasSuperordinate[]") + add_hash( "isPartOf[].$last.hasSuperordinate[].$append") if all_match("$i.w", "^\\((?:DE-600|DE-605)\\)(.*)$") copy_field("$i.w", "isPartOf[].$last.hasSuperordinate[].$last.id") end - set_array("isPartOf[].$last.hasSuperordinate[].$last.label") + add_array("isPartOf[].$last.hasSuperordinate[].$last.label") do list(path:"$i.a", "var":"$j") copy_field("$j", "isPartOf[].$last.hasSuperordinate[].$last.label.$append") end @@ -154,7 +155,7 @@ replace_all("isPartOf[].*.hasSuperordinate[].*.label","<<|>>","") # containedIn # containedIn only states ressources that are not published by them self but as part of a host ressource. -set_array("containedIn[]") +add_array("containedIn[]") # 773 - Host Item Entry (R) - $w (R) @@ -163,15 +164,15 @@ if any_match("leader", "^.{7}[ad].*") do list(path: "773??", "var": "$i") unless any_equal("$i.9","LOCAL") do list(path: "$i.w", "var": "$j") - set_array("isPartOf[].$append.type[]", "IsPartOfRelation") - set_array("isPartOf[].$last.hasSuperordinate[]") - set_hash( "isPartOf[].$last.hasSuperordinate[].$append") + add_array("isPartOf[].$append.type[]", "IsPartOfRelation") + add_array("isPartOf[].$last.hasSuperordinate[]") + add_hash( "isPartOf[].$last.hasSuperordinate[].$append") if all_match("$j", "^\\((?:DE-600|DE-605)\\)(.*)$") copy_field("$j", "isPartOf[].$last.hasSuperordinate[].$last.id") end copy_field("$i.t", "isPartOf[].$last.hasSuperordinate[].$last.label") copy_field("$i.q", "isPartOf[].$last.numbering") - set_array("isPartOf[].$last.note[]") + add_array("isPartOf[].$last.note[]") do list(path:"$i.i","var":"$j") copy_field("$j","isPartOf[].$last.note[].$append") end @@ -182,7 +183,7 @@ if any_match("leader", "^.{7}[ad].*") do list(path:"773??", "var":"$i") do list(path:"$i.w", "var":"$j") if any_match("$j","^\\(DE-(600|605)\\).*") - set_hash( "containedIn[].$append") + add_hash( "containedIn[].$append") copy_field("$j","containedIn[].$last.id") copy_field("$i.t","containedIn[].$last.label") end @@ -201,10 +202,15 @@ replace_all("isPartOf[].*.hasSuperordinate[].*.id", "^\\(DE-605\\)(.*)$", "http: replace_all("isPartOf[].*.hasSuperordinate[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") replace_all("isPartOf[].*.numbering", "^[©]|\\s?[,.:;/=]?$", "") +do list(path:"isPartOf[]","var":"$i") + call_macro("lobidResourcesFallbackLabel",field:"$i.hasSuperordinate[]") +end + uniq("isPartOf[]") replace_all("containedIn[].*.id", "^\\(DE-605\\)(.*)$", "http://lobid.org/resources/$1#!") replace_all("containedIn[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") replace_all("containedIn[].*.label","<<|>>","") +call_macro("lobidResourcesFallbackLabel",field:"containedIn[]") uniq("containedIn[]") @@ -212,17 +218,17 @@ uniq("containedIn[]") # 776 - Additional Physical Form Entry (R) - $i (R), $w (R) -set_array("primaryForm[]") +add_array("primaryForm[]") do list(path: "77608", "var":"$i") if any_match ("$i.i", ".*eproduktion von.*") - set_hash( "primaryForm[].$append") + add_hash( "primaryForm[].$append") if all_match("$i.w", "^\\((?:DE-600|DE-605)\\)(.*)$") copy_field("$i.w", "primaryForm[].$last.id") end paste("primaryForm[].$last.label", "$i.i", "$i.w") replace_all("primaryForm[].$last.label", "\\((?:DE-600|DE-605)\\)", "") - set_array("primaryForm[].$last.note[]") + add_array("primaryForm[].$last.note[]") do list(path:"$i.i","var":"$j") copy_field("$j","primaryForm[].$last.note[].$append") end @@ -231,28 +237,34 @@ end replace_all("primaryForm[].*.id", "^\\(DE-605\\)(.*)$", "http://lobid.org/resources/$1#!") replace_all("primaryForm[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") +call_macro("lobidResourcesFallbackLabel",field:"primaryForm[]") # secondaryForm -set_array("secondaryForm[]") +add_array("secondaryForm[]") do list(path: "77608", "var":"$i") if any_match ("$i.i", ".*eproduktion") - set_hash( "secondaryForm[].$append") + add_hash( "secondaryForm[].$append") if all_match("$i.w", "^\\((?:DE-600|DE-605)\\)(.*)$") - copy_field("$i.w", "secondaryForm[].$last.id") + do list(path:"$i.w", "var":"$j") + replace_all("$j", "^\\(DE-605\\)(.*)$", "http://lobid.org/resources/$1#!") + replace_all("$j", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") + copy_field("$j", "secondaryForm[].$append.id") + copy_field("$i.i", "secondaryForm[].$last.label") + end end - copy_field("$i.i", "secondaryForm[].$last.label") end end -replace_all("secondaryForm[].*.id", "^\\(DE-605\\)(.*)$", "http://lobid.org/resources/$1#!") -replace_all("secondaryForm[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") +call_macro("lobidResourcesFallbackLabel",field:"secondaryForm[]") + + # 856 - Electronic Location and Access (R) - Subfield: $u (R) $3 (NR) # 1. Indicator: 4 = HTTP -set_array("tableOfContents[]") +add_array("tableOfContents[]") do list(path: "856??", "var":"$i") if all_match("$i.3", "^[Ii][Nn][Hh][aA][lL][tT][sS][vV].*") # Inhaltsverzeichnis @@ -261,7 +273,7 @@ do list(path: "856??", "var":"$i") end end -set_array("description[]") +add_array("description[]") do list(path: "856??", "var":"$i") if all_match("$i.3", "^[Ii][Nn][Hh][aA][lL][tT][sS][tT].*") # Inhaltstext @@ -270,7 +282,7 @@ do list(path: "856??", "var":"$i") end end -set_array("seeAlso[]") +add_array("seeAlso[]") do list(path: "856??", "var":"$i") if all_match("$i.3", "^[zZ][uU][sS].*") # Zusätzliche Angaben @@ -279,7 +291,7 @@ do list(path: "856??", "var":"$i") end end -set_array("fulltextOnline[]") +add_array("fulltextOnline[]") do list(path: "856??", "var":"$i") if exists("$i.u") @@ -309,6 +321,7 @@ do list(path:"doi[]","var":"$i") prepend("fulltextOnline[].$last.id","https://doi.org/") copy_field("fulltextOnline[].$last.id", "sameAs[].$append.id") add_field("fulltextOnline[].$last.label", "DOI-Link") + add_field("sameAs[].$last.label", "DOI-Link") end # urn for fullTextOnline and sameAs @@ -317,6 +330,7 @@ do list(path:"@urnLinks","var":"$i") copy_field("$i", "fulltextOnline[].$append.id") copy_field("fulltextOnline[].$last.id", "sameAs[].$append.id") add_field("fulltextOnline[].$last.label", "URN-Link") + add_field("sameAs[].$last.label", "URN-Link") end if is_empty("@urnLinks") @@ -325,6 +339,7 @@ if is_empty("@urnLinks") prepend("fulltextOnline[].$last.id","https://nbn-resolving.org/") copy_field("fulltextOnline[].$last.id", "sameAs[].$append.id") add_field("fulltextOnline[].$last.label", "URN-Link") + add_field("sameAs[].$last.label", "URN-Link") end end @@ -359,22 +374,22 @@ end # 775 - Other Edition Entry (R) - Subfield: $w (R), $t (NR), $i (R), $n (R), $x(NR), $z (R) # 776 - Additional Physical Form Entry (R) - Subfield: $w (R), $t (NR), $i (R), $n (R), $x (NR), $z (R) -set_array("related[]") +add_array("related[]") do list(path:"775??|776??", "var":"$i") unless any_match ("$i.i", ".*eproduktion von.*|.*eproduktion") do list_as("$hbzId":"$i.w", "$isbn":"$i.z", "$label":"$i.t", "$note":"$i.n", "$issn":"$i.x", "$info":"$i.i") unless in("$isbn", "related[].*.isbn[]") # Skip duplicates - set_hash("related[].$append") + add_hash("related[].$append") if all_match("$hbzId", "^\\((DE-600|DE-605)\\).*$") copy_field("$hbzId", "related[].$last.id") end - set_array("related[].$last.note[]") + add_array("related[].$last.note[]") paste("related[].$last.note[].$append","$info", "$note") replace_all("related[].$last.note[].$last", "Erscheint auch als ","") copy_field("$label", "related[].$last.label") - set_array("related[].$last.issn[]") + add_array("related[].$last.issn[]") copy_field("$issn", "related[].$last.issn[].$append") - set_array("related[].$last.isbn[]") + add_array("related[].$last.isbn[]") isbn("$isbn", to:"isbn13") copy_field("$isbn", "related[].$last.isbn[].$append") isbn("$isbn", to:"isbn10") @@ -393,10 +408,10 @@ end do list(path: "50580", "var":"$i") if any_match("$i.6","[A-Z]{2}\\d*") - set_hash("related[].$append") + add_hash("related[].$append") paste("related[].$last.id","~http://lobid.org/resources/","$i.6","~#!",join_char:"") copy_field("$i.t","related[].$last.label") - set_array("related[].$last.note[]") + add_array("related[].$last.note[]") copy_field("$i.g","related[].$last.note[].$append") end end @@ -404,8 +419,9 @@ end replace_all("related[].*.id", "^\\(DE-605\\)(.*)$", "http://lobid.org/resources/$1#!") replace_all("related[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") replace_all("related[].*.label","<<|>>","") +call_macro("lobidResourcesFallbackLabel",field:"related[]") -set_array("inCollection[]") +add_array("inCollection[]") # hbz NZ # digiBib hbz Vk @@ -542,6 +558,9 @@ do list(path:"912 ", "var":"$i") replace_all("inCollection[].$last.id", "(ZDB-[0-9]{1,6}-[a-zA-Z|0-9\\-]*).*", "http://lobid.org/organisations/$1#!") copy_field("inCollection[].$last.id","$i.@label") lookup("$i.@label","lobidOrgLabels",delete:"true") + unless exists("$i.@label") + add_field("$i.@label","lobid Organisation ZDB Collection") + end move_field("$i.@label","inCollection[].$last.label") end end @@ -556,12 +575,15 @@ do list(path:"962 ", "var":"$i") unless any_match("$j", "^ZDB.*") copy_field("$j", "inCollection[].$append.id") replace_all("inCollection[].$last.id", "^(.*)$", "https://lobid.org/collections#$1") - # TODO: Do we need a label? + copy_field("inCollection[].$last.id","inCollection[].$last.label") + lookup("inCollection[].$last.label","collectionLabels") + if any_match("inCollection[].$last.label","https://lobid.org/collections.*") #Fallback label for hbz collections + replace_all("inCollection[].$last.label","https://lobid.org/collections#(.*)","$1 Collection") + end end end end - # 960 ## no Information about repeatability # TODO: This needs further inspection if we need a collection fr all subfields: https://service-wiki.hbz-nrw.de/display/VDBE/960+-+Selektionskennzeichen+NZ # Values from r can be invalid. @@ -569,23 +591,22 @@ end # do list(path:"960??", "var":"$i") # do list(path:"$i.?", "var": "$j") # copy_field("$j", "inCollection[].$append.id") -# replace_all("inCollection[].$last.id", "^(.*)$", "https://lobid.org/collections#$1") +# replace_all("inCollection[].$last.id", "^(.*)$", "http://lobid.org/collections#$1") # # TODO: Do we need a label? https://github.com/hbz/lobid-resources/issues/1305#issuecomment-912312471, also labels seem wrong. # end # end -set_array("inCollection[].*.type[]","Collection") - +add_array("inCollection[].*.type[]","Collection") # predecessor # 780 - Preceding Entry (R) - Subfield: $t (NR), $w (R) -set_array("predecessor[]") +add_array("predecessor[]") do list(path:"780??", "var":"$i") - set_hash( "predecessor[].$append") + add_hash( "predecessor[].$append") copy_field("$i.t", "predecessor[].$last.label") do list(path:"$i.w", "var":"$j") if all_match("$j", "^\\((?:DE-600|DE-605)\\)(.*)$") @@ -593,7 +614,7 @@ do list(path:"780??", "var":"$i") end end replace_all("predecessor[].$last.label", "\\((?:DE-600|DE-605)\\)", "") - set_array("predecessor[].$last.note[]") + add_array("predecessor[].$last.note[]") do list(path:"$i.i","var":"$j") copy_field("$j","predecessor[].$last.note[].$append") end @@ -601,7 +622,7 @@ end replace_all("predecessor[].*.id", "^\\(DE-605\\)(.*)$", "http://lobid.org/resources/$1#!") replace_all("predecessor[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resources/ZDB-$1#!") - +call_macro("lobidResourcesFallbackLabel",field:"predecessor[]") replace_all("predecessor[].*.label","Vorg. ---> ","") @@ -609,17 +630,17 @@ replace_all("predecessor[].*.label","Vorg. ---> ","") # 785 - Succeeding Entry (R) - Subfield: $t (NR), $w (R) -set_array("successor[]") +add_array("successor[]") do list(path:"785??", "var":"$i") - set_hash( "successor[].$append") + add_hash( "successor[].$append") copy_field("$i.t", "successor[].$last.label") do list(path:"$i.w", "var":"$j") if all_match("$j", "^\\((?:DE-600|DE-605)\\)(.*)$") copy_field("$j", "successor[].$last.id") end end - set_array("successor[].$last.note[]") + add_array("successor[].$last.note[]") do list(path:"$i.i","var":"$j") copy_field("$j","successor[].$last.note[].$append") end @@ -631,7 +652,7 @@ replace_all("successor[].*.id", "^\\(DE-600\\)(.*)$", "http://lobid.org/resource # 130 - Main Entry-Uniform Title (NR) -set_array("exampleOfWork.label") +add_array("exampleOfWork.label") copy_field("1300 .a", "exampleOfWork.label.$append") copy_field("1300 .g", "exampleOfWork.label.$append") do list(path: "1300 .0", "var":"$i") @@ -652,16 +673,16 @@ end join_field("exampleOfWork.label", " ") unless any_equal("exampleOfWork.label", "") - set_array("exampleOfWork.type[]","Work") + add_array("exampleOfWork.type[]","Work") end replace_all("exampleOfWork.label","<<|>>","") # 041 h|k - Language code of original and/or intermediate translations of text -set_array("lang_temp") +add_array("lang_temp") copy_field("041[ 01] .[hk]", "lang_temp.$append") -set_array("exampleOfWork.language[]") +add_array("exampleOfWork.language[]") do list(path:"lang_temp", "var": "$i") copy_field("$i","exampleOfWork.language[].$append.id") copy_field("$i","exampleOfWork.language[].$last.label") @@ -677,10 +698,10 @@ prepend("exampleOfWork.language[].*.id", "http://id.loc.gov/vocabulary/iso639-2/ # 711 - Added Entry-Meeting Name (R) # 730 - Added Entry-Uniform Title (R) -set_array("containsExampleOfWork[]") +add_array("containsExampleOfWork[]") do list(path:"700?2|710?2|711?2|730?2", "var": "$i") - set_array("containsExampleOfWork[].$append.label") - set_array("containsExampleOfWork[].$last.creatorOfWork") + add_array("containsExampleOfWork[].$append.label") + add_array("containsExampleOfWork[].$last.creatorOfWork") copy_field("$i.a","containsExampleOfWork[].$last.creatorOfWork.$append") copy_field("$i.d","containsExampleOfWork[].$last.creatorOfWork.$append") copy_field("$i.t","containsExampleOfWork[].$last.label.$append") @@ -691,8 +712,8 @@ do list(path:"700?2|710?2|711?2|730?2", "var": "$i") join_field("containsExampleOfWork[].$last.creatorOfWork", " ") copy_field("$i.n","containsExampleOfWork[].$last.workNumbering") copy_field("$i.r","containsExampleOfWork[].$last.musicalKey") - set_array("containsExampleOfWork[].$last.type[]","Work") - set_array("containsExampleOfWork[].$last.instrumentation[]") + add_array("containsExampleOfWork[].$last.type[]","Work") + add_array("containsExampleOfWork[].$last.instrumentation[]") do list(path:"$i.m","var":"$j") copy_field("$j","containsExampleOfWork[].$last.instrumentation[].$append") end diff --git a/conf/lobid-transformation/fix/subjects.fix b/conf/lobid-transformation/fix/subjects.fix index eb23c43..b0aeb53 100644 --- a/conf/lobid-transformation/fix/subjects.fix +++ b/conf/lobid-transformation/fix/subjects.fix @@ -1,6 +1,6 @@ # natureOfContent combines Formschlagwörter (`689 $A: f`) and Formangaben (`655`) -set_array("natureOfContent[]") +add_array("natureOfContent[]") # 655 - Index Term-Genre/Form (R), Subfield: $a (NR), $0 (R) @@ -51,7 +51,7 @@ do list(path: "natureOfContent[]", "var":"$i") end end -set_array("subject[]") +add_array("subject[]") # I change the approach from element oriented (all 630) to a subject/concept kind oriented approach (all LCSH, all GND, all keywords, etc.) @@ -67,7 +67,7 @@ set_array("subject[]") do list(path:"600?4|610?4|611?4|630?4|648?4|650?4|651?4|653??|688??", "var":"$i") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Freie Verschlagwortung") add_field("subject[].$last.source.id","https://www.wikidata.org/wiki/Q47524318") call_macro("subjectLabel") @@ -75,7 +75,7 @@ do list(path:"600?4|610?4|611?4|630?4|648?4|650?4|651?4|653??|688??", "var":"$i" end do list(path:"600?0|610?0|611?0|630?0|648?0|650?0|651?0", "var":"$i") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Library of Congress Subject Headings") add_field("subject[].$last.source.id","https://id.loc.gov/authorities/subjects.html") call_macro("subjectLabel") @@ -84,7 +84,7 @@ end do list(path:"600?7|610?7|611?7|630?7|648?7|650?7|651?7", "var":"$i") if any_match("$i.2",".*fast.*") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","FAST (Faceted Application of Subject Terminology)") add_field("subject[].$last.source.id","http://fast.oclc.org/") call_macro("subjectLabel") @@ -93,7 +93,7 @@ do list(path:"600?7|610?7|611?7|630?7|648?7|650?7|651?7", "var":"$i") end do list(path:"600?2|610?2|611?2|630?2|648?2|650?2|651?2", "var":"$i") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Medical Subject Headings") add_field("subject[].$last.source.id","https://www.nlm.nih.gov/mesh/meshhome.html") call_macro("subjectLabel") @@ -102,7 +102,7 @@ end do list(path:"600?7|610?7|611?7|630?7|648?7|650?7|651?7", "var":"$i") if any_match("$i.2",".*(mesh|MeSH).*") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Medical Subject Headings") add_field("subject[].$last.source.id","https://www.nlm.nih.gov/mesh/meshhome.html") call_macro("subjectLabel") @@ -114,7 +114,7 @@ end do list(path:"600??", "var":"$i") if any_match("$i.0","^\\(DE-588\\)(.*)$") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Gemeinsame Normdatei (GND)") add_field("subject[].$last.source.id","https://d-nb.info/gnd/7749153-1") call_macro("gndPersonCombinedLabel",field:"$i") @@ -147,7 +147,7 @@ end do list(path:"611??", "var":"$i") if any_match("$i.0","^\\(DE-588\\)(.*)$") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Gemeinsame Normdatei (GND)") add_field("subject[].$last.source.id","https://d-nb.info/gnd/7749153-1") call_macro("gndEventCombinedLabel",field:"$i") @@ -180,7 +180,7 @@ end do list(path:"610??|630??|648??|650??|651??", "var":"$i") if any_match("$i.0","^\\(DE-588\\)(.*)$") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Gemeinsame Normdatei (GND)") add_field("subject[].$last.source.id","https://d-nb.info/gnd/7749153-1") call_macro("gndOtherCombinedLabel",field:"$i") @@ -214,7 +214,7 @@ end # compare GND identifier (idn) with ALMA GND enrichment elements: do list(path:"subject[]", "var":"$i") - set_array("$i.altLabel[]") + add_array("$i.altLabel[]") do list(path:"GPN??", "var": "$z") if in ("$i.@gndIdn", "$z.B") # Person labels have no character between $a (Name) and $b (Number). call_macro("gndPersonCombinedLabel",field:"$z") @@ -244,7 +244,7 @@ end do list(path:"0820 |08200", "var":"$i") do list(path:"$i.a", "var": "$j") - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Dewey-Dezimalklassifikation") add_field("subject[].$last.source.id","https://d-nb.info/gnd/4149423-4") copy_field("$j","subject[].$last.label") @@ -267,7 +267,7 @@ do list(path:"084??", "var":"$i") copy_field("$j", "subject[].$last.notation") replace_all("subject[].$last.notation","https://nwbib.de/subjects#N(.*)$","$1") end - set_array("subject[].$last.type[]","Concept") + add_array("subject[].$last.type[]","Concept") add_field("subject[].$last.source.id","https://nwbib.de/subjects") add_field("subject[].$last.source.label","Sachsystematik der Nordrhein-Westfälischen Bibliographie") end @@ -277,7 +277,7 @@ do list(path:"084??", "var":"$i") unless any_match("$i.2", "z") # filter out any z Other - Classification do list(path:"$i.a", "var":"$j") copy_field("$j", "subject[].$append.notation") - set_array("subject[].$last.type[]","Concept") + add_array("subject[].$last.type[]","Concept") # LBZ-Notationen fka rpb2 fka RPB-Sachgruppen und Zusätze if any_match("$i.2", "rpb") if any_match("$j","\\d{3}") @@ -314,7 +314,7 @@ do list(path:"084??", "var":"$i") copy_field("$j","subject[].$last.label") lookup("subject[].$last.label", "dnbSachgruppen") # Also use all DNB and ZDB Sachgruppen as DDC too. - set_array("subject[].$append.type[]","Concept") + add_array("subject[].$append.type[]","Concept") add_field("subject[].$last.source.label","Dewey-Dezimalklassifikation") add_field("subject[].$last.source.id","https://d-nb.info/gnd/4149423-4") copy_field("$j","subject[].$last.label") @@ -344,7 +344,7 @@ lookup("@rvkNotations","rvk",delete:"true") split_field("@rvkNotations", ",") do list(path: "@rvkNotations","var":"$i") copy_field("$i","subject[].$append.notation") - set_array("subject[].$last.type[]","Concept") + add_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 @@ -370,7 +370,7 @@ do list (path: "subject[]", "var": "$i") do list(path: "$i.componentList[]", "var": "$j") if any_match("$j.label",".+") # Due to special cataloguing there can be empty label-properties. That are cleaned up at the end. These need to be skipped. unless exists("$j.type[].1") - set_array("$j.type[]","SubjectHeading") # type: SubjectHeading as Fallback. + add_array("$j.type[]","SubjectHeading") # type: SubjectHeading as Fallback. end end if any_match("$j.dateOfBirthAndDeath", "^([012][0-9]{3})-.*") @@ -428,7 +428,7 @@ do list (path: "subject[]", "var": "$i") end replace_all("$j.label","<<|>>","") # compare GND identifier (idn) with ALMA GND enrichment elements: - set_array("$j.altLabel[]") + add_array("$j.altLabel[]") do list(path:"GPN??", "var": "$z") if in ("$j.@gndIdn", "$z.B") # Person labels have no character between $a (Name) and $b (Number). call_macro("gndPersonCombinedLabel",field:"$z") @@ -461,7 +461,7 @@ uniq("subject[]") # spatial -set_array("spatial[]") +add_array("spatial[]") do list(path:"084??", "var":"$i") do list(path:"$i.0", "var":"$j") @@ -474,7 +474,7 @@ do list(path:"084??", "var":"$i") if any_match("$j", "https://nwbib.de/spatial#N(.*)$") copy_field("$j", "spatial[].$last.notation") end - set_array("spatial[].$last.type[]","Concept") + add_array("spatial[].$last.type[]","Concept") add_field("spatial[].$last.source.id","https://nwbib.de/spatial") add_field("spatial[].$last.source.label","Raumsystematik der Nordrhein-Westfälischen Bibliographie") copy_field("$j", "spatial[].$last.focus.id") @@ -483,7 +483,7 @@ do list(path:"084??", "var":"$i") do list(path:"$i.a", "var":"$j") # RPB spatial if any_match("$j","^rpbr.*") - set_array("spatial[].$append.type[]","Concept") + add_array("spatial[].$append.type[]","Concept") copy_field("$j","$i.@rpbrNotationId") replace_all("$i.@rpbrNotationId","rpbr_(99_o)?(.*)_","https://rpb.lobid.org/spatial#n$2") copy_field("$i.@rpbrNotationId","spatial[].$last.id") @@ -500,7 +500,7 @@ do list(path:"spatial[]", "var":"$i") if any_contain("$i.source.id","https://nwbib.de/spatial") replace_all("$i.notation","https://nwbib.de/spatial#N(.*)$","$1") copy_field("$i.focus.id","$i.focus.label") - set_array("$i.focus.type[]") + add_array("$i.focus.type[]") copy_field("$i.focus.id","$i.focus.type[].$append") copy_field("$i.focus.id","$i.focus.@geoData") lookup("$i.focus.id","nwbibWikidataId",delete:"true") @@ -519,7 +519,7 @@ do list(path:"spatial[]", "var":"$i") end end -set_array("subjectslabels[]") +add_array("subjectslabels[]") do list(path:"subject[]","var":"$i") if any_match("$i.type[]","Concept") unless exists("$i.notation") diff --git a/conf/lobid-transformation/fix/titleRelatedFields.fix b/conf/lobid-transformation/fix/titleRelatedFields.fix index 514b789..8fa1c5f 100644 --- a/conf/lobid-transformation/fix/titleRelatedFields.fix +++ b/conf/lobid-transformation/fix/titleRelatedFields.fix @@ -7,7 +7,7 @@ end replace_all("@title","<<|>>","") -set_array("@titleOfSubSeries_n") # Subvolume numbering +add_array("@titleOfSubSeries_n") # Subvolume numbering do list(path:"245??.n", "var":"$i") unless all_equal("$i","[...]") copy_field("$i","@titleOfSubSeries_n.$append") @@ -15,7 +15,7 @@ do list(path:"245??.n", "var":"$i") end join_field("@titleOfSubSeries_n", ". ") -set_array("@titleOfSubSeries_p") +add_array("@titleOfSubSeries_p") do list(path:"245??.p", "var":"$i") # Subvolume title unless all_equal("$i","[...]") @@ -59,15 +59,15 @@ do list(path:"245??","var":"$i") copy_field("$880.a","$AGR.record.@title") copy_field("$880.n","$AGR.record.@titleOfSubSeries_n") unless exists("$AGR.record.@titleOfSubSeries_p") - set_array("$AGR.record.@titleOfSubSeries_p") + add_array("$AGR.record.@titleOfSubSeries_p") end copy_field("$880.p","$AGR.record.@titleOfSubSeries_p.$append") unless exists("$AGR.record.otherTitleInformation[]") - set_array("$AGR.record.otherTitleInformation[]") + add_array("$AGR.record.otherTitleInformation[]") end copy_field("$880.b","$AGR.record.otherTitleInformation[].$append") unless exists("$AGR.record.responsibilityStatement[]") - set_array("$AGR.record.responsibilityStatement[]") + add_array("$AGR.record.responsibilityStatement[]") end copy_field("$880.c","$AGR.record.responsibilityStatement[].$append") end @@ -77,11 +77,11 @@ do list(path:"245??","var":"$i") copy_field("$880.@script.label","alternateGraphicRepresentation[].$last.script.label") copy_field("$880.a","alternateGraphicRepresentation[].$last.record.@title") copy_field("$880.n","alternateGraphicRepresentation[].$last.record.@titleOfSubSeries_n") - set_array("alternateGraphicRepresentation[].$last.record.@titleOfSubSeries_p") + add_array("alternateGraphicRepresentation[].$last.record.@titleOfSubSeries_p") copy_field("$880.p","alternateGraphicRepresentation[].$last.record.@titleOfSubSeries_p.$append") - set_array("alternateGraphicRepresentation[].$last.record.otherTitleInformation[]") + add_array("alternateGraphicRepresentation[].$last.record.otherTitleInformation[]") copy_field("$880.b","alternateGraphicRepresentation[].$last.record.otherTitleInformation[].$append") - set_array("alternateGraphicRepresentation[].$last.record.responsibilityStatement[]") + add_array("alternateGraphicRepresentation[].$last.record.responsibilityStatement[]") copy_field("$880.c","alternateGraphicRepresentation[].$last.record.responsibilityStatement[].$append") end end @@ -140,7 +140,7 @@ end # 246 - Varying Form of Title (R) - Subfields: $a (NR) -set_array("alternativeTitle[]") +add_array("alternativeTitle[]") copy_field("246?[ 345678].a","alternativeTitle[].$append") do list(path:"246?[ 345678]","var":"$i") @@ -159,7 +159,7 @@ end replace_all("alternativeTitle[].*","<<|>>","") -set_array("otherTitleInformation[]") +add_array("otherTitleInformation[]") copy_field("245??.b","otherTitleInformation[].$append") @@ -174,7 +174,7 @@ end # 250 - Edition Statement (R) - Subfields: $a (NR) -set_array("edition[]") +add_array("edition[]") copy_field("250 .a","edition[].$append") replace_all("edition[].*","\\s?[./]\\s?$","") @@ -189,7 +189,7 @@ end # 515 - Numbering Peculiarities Note (R) # Prefer 264 over 260 since it can create duplicate info and 260 is discontinued in RDA. -set_array("publication[]") +add_array("publication[]") if exists("264[ 23][ 1]") call_macro("publication",field:"2643[ 1]") # 3 - Current/Latest call_macro("publication",field:"2642[ 1]") # 2 - Intervening @@ -200,7 +200,7 @@ else call_macro("publication",field:"260 [ 1]") # # - Not applicable/No information provided/Earliest end -set_array("manufacture[]") +add_array("manufacture[]") if exists("264[ 23]3") call_macro("manufacture",field:"26433") # 3 - Current/Latest call_macro("manufacture",field:"26423") # 2 - Intervening @@ -211,11 +211,13 @@ end if exists("publication[].$first") copy_field("362??.a","publication[].$first.publicationHistory") - set_array("publication[].$first.frequency[]") + add_array("publication[].$first.frequency[]") if any_match("leader","^.{6}(a[bis]|m[bis]).*$") # checks if continous ressource unless any_match("008","^.{18}[#\\| u].*$") # filters out not matching values and also the value unknown copy_field("008","publication[].$first.frequency[].$append.id") replace_all("publication[].$first.frequency[].$last.id", "^.{18}(.).*$", "http://marc21rdf.info/terms/continuingfre#$1") + copy_field("publication[].$first.frequency[].$last.id","publication[].$first.frequency[].$last.label") + lookup("publication[].$first.frequency[].$last.label","marc-publication-frequency-label") end elsif any_match("006","^s.*$") do list(path: "006", "var":"$z") @@ -223,11 +225,13 @@ if exists("publication[].$first") unless any_match("$z","^.[#\\| u].*$") copy_field("$z","publication[].$first.frequency[].$append.id") replace_all("publication[].$first.frequency[].$last.id", "^.(.).*$", "http://marc21rdf.info/terms/continuingfre#$1") + copy_field("publication[].$first.frequency[].$last.id","publication[].$first.frequency[].$last.label") + lookup("publication[].$first.frequency[].$last.label","marc-publication-frequency-label") end end end end - set_array("publication[].$first.note[]") + add_array("publication[].$first.note[]") copy_field("515??.a","publication[].$first.note[].$append") do list(path:"500 ", "var":"$i") if any_match("$i.a", "^.*saṃ. \\d{4}=(\\d{4}).*Chr.*") @@ -283,15 +287,15 @@ end # 533 - Reproduction Note (R) do list(path:"533 ", "var": "$i") - set_hash( "publication[].$append") - set_array("publication[].$last.type[]","SecondaryPublicationEvent") - set_array("publication[].$last.location[]") + add_hash( "publication[].$append") + add_array("publication[].$last.type[]","SecondaryPublicationEvent") + add_array("publication[].$last.location[]") do list(path:"$i.b","var":"$j") copy_field("$j", "publication[].$last.location[].$append") end - set_array("publication[].$last.description[]") + add_array("publication[].$last.description[]") copy_field("$i.a", "publication[].$last.description[].$append") - set_array("publication[].$last.publishedBy[]") + add_array("publication[].$last.publishedBy[]") copy_field("$i.c", "publication[].$last.publishedBy[].$append") do list(path: "$i.d", "var":"$j") replace_all("$j", "\\[|\\]|ca. |c ", "") @@ -328,14 +332,14 @@ end # 246 - Varying Form of Title (R) - $a - Title proper/short title (NR) -set_array("titleKeyword[]") +add_array("titleKeyword[]") do list(path: "24610", "var": "$i") copy_field("$i.a","titleKeyword[].$append") end # 210 - Abbreviated Title (R) - $a - Abbreviated title (NR) -set_array("shortTitle[]") +add_array("shortTitle[]") do list(path: "210??", "var": "$i") copy_field("$i.a","shortTitle[].$append") end diff --git a/conf/lobid-transformation/maps/collectionLabels.tsv b/conf/lobid-transformation/maps/collectionLabels.tsv new file mode 100644 index 0000000..2bfd897 --- /dev/null +++ b/conf/lobid-transformation/maps/collectionLabels.tsv @@ -0,0 +1,117 @@ +https://lobid.org/collections#asmi American Society for Microbiology /EBooks +https://lobid.org/collections#budri Budrich academic / Open Access +https://lobid.org/collections#caso California Scholarship Online (University of California Press) +https://lobid.org/collections#chiso Chicago Scholarship Online (University of Chicago Press) +https://lobid.org/collections#Cont Content-Select +https://lobid.org/collections#cuvillier Cuvillier-E-Books +https://lobid.org/collections#dawsonera dawsonera +https://lobid.org/collections#edso Edinburgh University Press/ Edinburgh Scholarship Online +https://lobid.org/collections#editlib EdITLib-E-Books +https://lobid.org/collections#elgar Edward Elgar / Elgar-E-Books +https://lobid.org/collections#lyell The Geological Society / Lyell Collection +https://lobid.org/collections#hade Harri Deutsch +https://lobid.org/collections#hirzel Hirzel eLibrary +https://lobid.org/collections#huguenots Huguenots-E-Books +https://lobid.org/collections#iorm INFORMS +https://lobid.org/collections#kenso Kentucky Scholarship Online (The University Press of Kentucky) +https://lobid.org/collections#learntechlib LearnTechLib E-Books +https://lobid.org/collections#Logos Logos Verlag Berlin e-Book Bibliothek +https://lobid.org/collections#mansi Manchester Studies in Imperialism +https://lobid.org/collections#misso Mississippi Scholarship Online (University Press of Mississippi) +https://lobid.org/collections#MPSO MIT Press Scholarship Online +https://lobid.org/collections#mpig Max-Planck-Institut für Gesellschaftsforschung Open Access +https://lobid.org/collections#NNg Nielsen Norman Group +https://lobid.org/collections#obp OpenBook Publishers-E-Books +https://lobid.org/collections#oso Otto Schmidt online +https://lobid.org/collections#pearson Pearson-E-Books +https://lobid.org/collections#philon Philosophy Online-E-Books +https://lobid.org/collections#luther ProQuest / Luther-E-Books +https://lobid.org/collections#smalib The Smashing Library for Universities and Enterprises +https://lobid.org/collections#minnso University of Minnesota Press / Minnesota Scholarship Online +https://lobid.org/collections#uncso The University of North Carolina Press / North Carolina Scholarship Online +https://lobid.org/collections#vkal Verlag Karl Alber +https://lobid.org/collections#vkv Vittorio Klostermann / Klostermann-E-Books +https://lobid.org/collections#vogel Vogel-E-Books +https://lobid.org/collections#wageningen Wageningen Academic Publishers-E-Books +https://lobid.org/collections#woodhead Woodhead-E-Books +https://lobid.org/collections#wtm WTM-Verlag +https://lobid.org/collections#NLZ Nationallizenzen +https://lobid.org/collections#beofamilien Beck Online / Familienrecht +https://lobid.org/collections#beosteuer Beck Online / Steuerrecht +https://lobid.org/collections#beozivil Beck Online / Zivilrecht +https://lobid.org/collections#BeltzLizenz2012 Beltz Lizenzzugehörigkeit 2012 +https://lobid.org/collections#BeltzLizenz2013 Beltz Lizenzzugehörigkeit 2013 +https://lobid.org/collections#BeltzLizenz2014 Beltz Lizenzzugehörigkeit 2014 +https://lobid.org/collections#BeltzLizenz2015 Beltz Lizenzzugehörigkeit 2015 +https://lobid.org/collections#BeltzLizenz2016 Beltz Lizenzzugehörigkeit 2016 +https://lobid.org/collections#BeltzLizenz2017 Beltz Lizenzzugehörigkeit 2017 +https://lobid.org/collections#BeltzLizenz2018 Beltz Lizenzzugehörigkeit 2018 +https://lobid.org/collections#BeltzLizenz2019 Beltz Lizenzzugehörigkeit 2019 +https://lobid.org/collections#BeltzLizenz2020 Beltz Lizenzzugehörigkeit 2020 +https://lobid.org/collections#BeltzLizenz2021 Beltz Lizenzzugehörigkeit 2021 +https://lobid.org/collections#bloomsbury +https://lobid.org/collections#bloomsbury2013 Bloomsbury-E-Books +https://lobid.org/collections#bloomsbury2014 Bloomsbury Lizenzzugehörigkeit 2014 +https://lobid.org/collections#bloomsbury2015 Bloomsbury Lizenzzugehörigkeit 2015 +https://lobid.org/collections#bloomsbury2016 Bloomsbury Lizenzzugehörigkeit 2016 +https://lobid.org/collections#bloomsbury2017 Bloomsbury Lizenzzugehörigkeit 2017 +https://lobid.org/collections#melanchthon Brill Academic / Melanchthon-E-Books +https://lobid.org/collections#Lizenz2001 de Gruyter-E-Books Lizenzzugehörigkeit 2001 +https://lobid.org/collections#Lizenz2002 de Gruyter-E-Books Lizenzzugehörigkeit 2002 +https://lobid.org/collections#Lizenz2003 de Gruyter-E-Books Lizenzzugehörigkeit 2003 +https://lobid.org/collections#Lizenz2004 de Gruyter-E-Books Lizenzzugehörigkeit 2004 +https://lobid.org/collections#Lizenz2005 de Gruyter-E-Books Lizenzzugehörigkeit 2005 +https://lobid.org/collections#Lizenz2006 de Gruyter-E-Books Lizenzzugehörigkeit 2006 +https://lobid.org/collections#Lizenz2007 de Gruyter-E-Books Lizenzzugehörigkeit 2007 +https://lobid.org/collections#Lizenz2008 de Gruyter-E-Books Lizenzzugehörigkeit 2008 +https://lobid.org/collections#Lizenz2009 de Gruyter-E-Books Lizenzzugehörigkeit 2009 +https://lobid.org/collections#Lizenz2010 de Gruyter-E-Books Lizenzzugehörigkeit 2010 +https://lobid.org/collections#Lizenz2011 de Gruyter-E-Books Lizenzzugehörigkeit 2011 +https://lobid.org/collections#Lizenz2012 de Gruyter-E-Books Lizenzzugehörigkeit 2012 +https://lobid.org/collections#Lizenz2013 de Gruyter-E-Books Lizenzzugehörigkeit 2013 +https://lobid.org/collections#Lizenz2014 de Gruyter-E-Books Lizenzzugehörigkeit 2014 +https://lobid.org/collections#Lizenz2015 de Gruyter-E-Books Lizenzzugehörigkeit 2015 +https://lobid.org/collections#Lizenz2016 de Gruyter-E-Books Lizenzzugehörigkeit 2016 +https://lobid.org/collections#Lizenz2017 de Gruyter-E-Books Lizenzzugehörigkeit 2017 +https://lobid.org/collections#Lizenz2018 de Gruyter-E-Books Lizenzzugehörigkeit 2018 +https://lobid.org/collections#Lizenz2019 de Gruyter-E-Books Lizenzzugehörigkeit 2019 +https://lobid.org/collections#Lizenz2020 de Gruyter-E-Books Lizenzzugehörigkeit 2020 +https://lobid.org/collections#herder Herder-E-Books +https://lobid.org/collections#juris Juris-E-Books +https://lobid.org/collections#KohlhammerLizenz2012 Kohlhammer Lizenzzugehörigkeit 2012 +https://lobid.org/collections#KohlhammerLizenz2013 Kohlhammer Lizenzzugehörigkeit 2013 +https://lobid.org/collections#KohlhammerLizenz2014 Kohlhammer Lizenzzugehörigkeit 2014 +https://lobid.org/collections#KohlhammerLizenz2015 Kohlhammer Lizenzzugehörigkeit 2015 +https://lobid.org/collections#KohlhammerLizenz2016 Kohlhammer Lizenzzugehörigkeit 2016 +https://lobid.org/collections#KohlhammerLizenz2017 Kohlhammer Lizenzzugehörigkeit 2017 +https://lobid.org/collections#KohlhammerLizenz2018 Kohlhammer Lizenzzugehörigkeit 2018 +https://lobid.org/collections#KohlhammerLizenz2019 Kohlhammer Lizenzzugehörigkeit 2019 +https://lobid.org/collections#KohlhammerLizenz2020 Kohlhammer Lizenzzugehörigkeit 2020 +https://lobid.org/collections#logos Logos Verlag Berlin +https://lobid.org/collections#MohrSiebeckLizenz2013-2015 MohrSiebeck Lizenzzugehörigkeit 2013-2015 +https://lobid.org/collections#MohrSiebeckLizenz2013 MohrSiebeck Lizenzzugehörigkeit 2013 +https://lobid.org/collections#MohrSiebeckLizenz2014 MohrSiebeck Lizenzzugehörigkeit 2014 +https://lobid.org/collections#MohrSiebeckLizenz2015 MohrSiebeck Lizenzzugehörigkeit 2015 +https://lobid.org/collections#MohrSiebeckLizenz2016 MohrSiebeck Lizenzzugehörigkeit 2016 +https://lobid.org/collections#MohrSiebeckLizenz2017 MohrSiebeck Lizenzzugehörigkeit 2017 +https://lobid.org/collections#MohrSiebeckLizenz2018 MohrSiebeck Lizenzzugehörigkeit 2018 +https://lobid.org/collections#MohrSiebeckLizenz2019 MohrSiebeck Lizenzzugehörigkeit 2019 +https://lobid.org/collections#synthesis lectures Morgan & Claypool / Synthesis Lectures-Reihen +https://lobid.org/collections#thieref Thieme eRef +https://lobid.org/collections#taylor francis Taylor & Francis E-Books +https://lobid.org/collections#V&RELibraryLizenz2014 V&R eLibrary Lizenzzugehörigkeit 2014 +https://lobid.org/collections#V&RELibraryLizenz2015 V&R eLibrary Lizenzzugehörigkeit 2015 +https://lobid.org/collections#V&RELibraryLizenz2016 V&R eLibrary Lizenzzugehörigkeit 2016 +https://lobid.org/collections#V&RELibraryLizenz2017 V&R eLibrary Lizenzzugehörigkeit 2017 +https://lobid.org/collections#V&RELibraryLizenz2018 V&R eLibrary Lizenzzugehörigkeit 2018 +https://lobid.org/collections#V&RELibraryLizenz2019 V&R eLibrary Lizenzzugehörigkeit 2019 +https://lobid.org/collections#wbv W. Bertelsmann Verlag E-Books +https://lobid.org/collections#WallsteinLizenz2018 Wallstein Lizenzzugehörigkeit 2018 +https://lobid.org/collections#WallsteinLizenz2019 Wallstein Lizenzzugehörigkeit 2019 +https://lobid.org/collections#WBGLizenz2016 WBG Lizenzzugehörigkeit 2016 +https://lobid.org/collections#WBGLizenz2017 WBG Lizenzzugehörigkeit 2017 +https://lobid.org/collections#WBGLizenz2018 WBG Lizenzzugehörigkeit 2018 +https://lobid.org/collections#WBGLizenz2019 WBG Lizenzzugehörigkeit 2019 +https://lobid.org/collections#WBGLizenz2020 WBG Lizenzzugehörigkeit 2020 +https://lobid.org/collections#TTP-MCE Trans Tech Publikations: Materials Science and Engineering +https://lobid.org/collections#palgraveoa Palgrave Open Access E-Books diff --git a/conf/lobid-transformation/maps/marcRel.tsv b/conf/lobid-transformation/maps/marcRel.tsv new file mode 100644 index 0000000..30a0ac9 --- /dev/null +++ b/conf/lobid-transformation/maps/marcRel.tsv @@ -0,0 +1,146 @@ +uri label multiLangLabelDe multiLangLabelEn +http://id.loc.gov/vocabulary/relators/abr Kürzende/r Kürzende/r Abridger +http://id.loc.gov/vocabulary/relators/act Schauspieler/in Schauspieler/in Actor +http://id.loc.gov/vocabulary/relators/adi Art Director Art Director Art director +http://id.loc.gov/vocabulary/relators/aft Verfasser/in eines Nachworts Verfasser/in eines Nachworts Writer of afterword +http://id.loc.gov/vocabulary/relators/anm Animation Animation Animator +http://id.loc.gov/vocabulary/relators/ann Annotationen Annotationen Annotator +http://id.loc.gov/vocabulary/relators/ant Basiert auf einem Werk von Basiert auf einem Werk von Bibliographic antecedent +http://id.loc.gov/vocabulary/relators/ape Berufungsbeklagte/r / Revisionsbeklagte/r Berufungsbeklagte/r / Revisionsbeklagte/r Appellee +http://id.loc.gov/vocabulary/relators/apl Berufungskläger/in / Revisionskläger/in Berufungskläger/in / Revisionskläger/in Appellant +http://id.loc.gov/vocabulary/relators/arc Architekt/in Architekt/in Architect +http://id.loc.gov/vocabulary/relators/arr Arrangement Arrangement Arranger of music +http://id.loc.gov/vocabulary/relators/art Künstler/in Künstler/in Artist +http://id.loc.gov/vocabulary/relators/ato Unterzeichner/in Unterzeichner/in Autographer +http://id.loc.gov/vocabulary/relators/aui Vorwort Vorwort Writer of foreword +http://id.loc.gov/vocabulary/relators/aus Drehbuch Drehbuch Screenwriter +http://id.loc.gov/vocabulary/relators/aut Autor/in Autor/in Author +http://id.loc.gov/vocabulary/relators/bkd Buchgestaltung Buchgestaltung Book designer +http://id.loc.gov/vocabulary/relators/bnd Buchbinder/in Buchbinder/in Binder +http://id.loc.gov/vocabulary/relators/brd Sender Sender Broadcaster +http://id.loc.gov/vocabulary/relators/brl Brailleprägung Braillesprägung Braille embosser +http://id.loc.gov/vocabulary/relators/cas Formguß Formguß Caster +http://id.loc.gov/vocabulary/relators/chr Choreographie Choreographie Choreographer +http://id.loc.gov/vocabulary/relators/clb Mitarbeit Mitarbeit Collaborator +http://id.loc.gov/vocabulary/relators/cll Kalligrafie Kalligrafie Calligrapher +http://id.loc.gov/vocabulary/relators/clr Kolorierung Kolorierung Colourist +http://id.loc.gov/vocabulary/relators/clt Lichtdruck Lichtdruck Collotyper +http://id.loc.gov/vocabulary/relators/cmm Kommentar Kommentar Commentator +http://id.loc.gov/vocabulary/relators/cmp Komposition Komposition Composer +http://id.loc.gov/vocabulary/relators/cnd Dirigent/in / Leitung Dirigent/in / Leitung Conductor +http://id.loc.gov/vocabulary/relators/cng Kamera Kamera Cinematographer +http://id.loc.gov/vocabulary/relators/cns Zensor/in Zensor/in Censor +http://id.loc.gov/vocabulary/relators/col Sammler/in Sammler/in Collector +http://id.loc.gov/vocabulary/relators/com Zusammengestellt von Zusammengestellt von Compiler +http://id.loc.gov/vocabulary/relators/cor Registrar/in Registrar/in Collection registrar +http://id.loc.gov/vocabulary/relators/cou Durch Verfahrensvorschriften geregeltes Gericht Durch Verfahrensvorschriften geregeltes Gericht Court governed +http://id.loc.gov/vocabulary/relators/cre Schöpfer/in Schöpfer/in Creator +http://id.loc.gov/vocabulary/relators/crt Gerichtsstenograf/in Gerichtsstenograf/in Court reporter +http://id.loc.gov/vocabulary/relators/csl Beratung Beratung Consultant +http://id.loc.gov/vocabulary/relators/cst Kostümdesign Kostümdesign Costume designer +http://id.loc.gov/vocabulary/relators/ctb Beitragende/r Beitragende/r Contributor +http://id.loc.gov/vocabulary/relators/ctg Kartografie Kartografie Cartographer +http://id.loc.gov/vocabulary/relators/ctr Vertragspartner/in Vertragspartner/in Participant in a treaty +http://id.loc.gov/vocabulary/relators/cur Kurator/in Kurator/in Curator +http://id.loc.gov/vocabulary/relators/dfd Angeklagte/r Angeklagte/r Defendant +http://id.loc.gov/vocabulary/relators/dgg Grad-verleihende Institution Grad-verleihende Institution Degree granting institution +http://id.loc.gov/vocabulary/relators/dgs Akademische Betreuung Akademische Betreuung Degree supervisor +http://id.loc.gov/vocabulary/relators/dnc Tänzer/in Tänzer/in Dancer +http://id.loc.gov/vocabulary/relators/dnr Stifter/in Stifter/in Donor +http://id.loc.gov/vocabulary/relators/dpt Leihgabe von Leihgabe von Depositor +http://id.loc.gov/vocabulary/relators/drm Technische Zeichnungen Technische Zeichnungen Draftsman +http://id.loc.gov/vocabulary/relators/drt Regie Regie Director +http://id.loc.gov/vocabulary/relators/dsr Design Design Designer +http://id.loc.gov/vocabulary/relators/dst Vertrieb Vertrieb Distributor +http://id.loc.gov/vocabulary/relators/dte Gewidmet Gewidmet Dedicatee +http://id.loc.gov/vocabulary/relators/dto Widmende/r Widmende/r Dedicator +http://id.loc.gov/vocabulary/relators/edm Schnitt Schnitt Editor of moving image work +http://id.loc.gov/vocabulary/relators/edt Herausgeber/in Herausgeber/in Editor +http://id.loc.gov/vocabulary/relators/egr Stecher/in Stecher/in Engraver +http://id.loc.gov/vocabulary/relators/enj Normerlassende Gebietskörperschaft Normerlassende Gebietskörperschaft Enacting jurisdiction +http://id.loc.gov/vocabulary/relators/etr Radierer/in Radierer/in Etcher +http://id.loc.gov/vocabulary/relators/fds Filmvertrieb Filmvertrieb Film distributor +http://id.loc.gov/vocabulary/relators/fmd Filmregie Filmregie Film director +http://id.loc.gov/vocabulary/relators/fmk Filmemacher/in Filmemacher/in Filmmaker +http://id.loc.gov/vocabulary/relators/fmo frühere/r Eigentümer/in frühere/r Eigentümer/in Former owner +http://id.loc.gov/vocabulary/relators/fmp Filmproduktion Filmproduktion Film producer +http://id.loc.gov/vocabulary/relators/his Gastgebende Institution Gastgebende Institution Host institution +http://id.loc.gov/vocabulary/relators/hnr Gefeierte Person Gefeierte Person Honouree +http://id.loc.gov/vocabulary/relators/hst Gastgeber/in Gastgeber/in Host +http://id.loc.gov/vocabulary/relators/ill Illustration Illustration Illustrator +http://id.loc.gov/vocabulary/relators/ilu Illuminator/in Illuminator/in Illuminator +http://id.loc.gov/vocabulary/relators/ins Beschriftende Person Beschriftende Person Inscriber +http://id.loc.gov/vocabulary/relators/inv Erfinder/in Erfinder/in Inventor +http://id.loc.gov/vocabulary/relators/isb Herausgeber/in Herausgeber/in Issuing body +http://id.loc.gov/vocabulary/relators/itr Instrumentalmusiker/in Instrumentalmusiker/in Instrumentalist +http://id.loc.gov/vocabulary/relators/ive Interviewte/r Interviewte/r Interviewee +http://id.loc.gov/vocabulary/relators/ivr Interviewer/in Interviewer/in Interviewer +http://id.loc.gov/vocabulary/relators/jud Richter/in Richter/in Judge +http://id.loc.gov/vocabulary/relators/jug Geregelte Gebietskörperschaft Geregelte Gebietskörperschaft Jurisdiction governed +http://id.loc.gov/vocabulary/relators/lbt Libretto Libretto Librettist +http://id.loc.gov/vocabulary/relators/led Leitung Leitung Lead +http://id.loc.gov/vocabulary/relators/lgd Lichtgestaltung Lichtgestaltung Lighting designer +http://id.loc.gov/vocabulary/relators/lsa Landschaftsarchitekt/in Landschaftsarchitekt/in Landscape architect +http://id.loc.gov/vocabulary/relators/ltg Lithografie Lithografie Lithographer +http://id.loc.gov/vocabulary/relators/lyr Textdichter/in Textdichter/in Lyricist +http://id.loc.gov/vocabulary/relators/med Medium Medium Medium +http://id.loc.gov/vocabulary/relators/mfr Herstellung Herstellung Manufacturer +http://id.loc.gov/vocabulary/relators/mod Moderation Moderation Moderator +http://id.loc.gov/vocabulary/relators/msd Musikalische Leitung Musikalische Leitung Musical director +http://id.loc.gov/vocabulary/relators/mtk Protokoll Protokoll Minute taker +http://id.loc.gov/vocabulary/relators/mus Musiker/in Musiker/in Musician +http://id.loc.gov/vocabulary/relators/nrt Erzähler/in Erzähler/in Narrator +http://id.loc.gov/vocabulary/relators/org Begründet durch Begründet durch Originator +http://id.loc.gov/vocabulary/relators/orm Veranstalter/in Veranstalter/in Organizer +http://id.loc.gov/vocabulary/relators/osp On-Screen-Präsentator/in On-Screen-Präsentator/in On-screen presenter +http://id.loc.gov/vocabulary/relators/oth Sonstige Sonstige Other agent associated with a work +http://id.loc.gov/vocabulary/relators/own Eigentümer/in Eigentümer/in Owner +http://id.loc.gov/vocabulary/relators/pan Diskussionsteilnehmer/in Diskussionsteilnehmer/in Panelist +http://id.loc.gov/vocabulary/relators/pat Im Auftrag von Im Auftrag von Commissioning body +http://id.loc.gov/vocabulary/relators/pbd Chefredaktion Chefredaktion Editorial director +http://id.loc.gov/vocabulary/relators/pbl Verlag Verlag Publisher +http://id.loc.gov/vocabulary/relators/pht Fotografie Fotografie Photographer +http://id.loc.gov/vocabulary/relators/plt Druckformherstellung Druckformherstellung Platemaker +http://id.loc.gov/vocabulary/relators/ppm Papiermacher/in Papiermacher/in Papermaker +http://id.loc.gov/vocabulary/relators/ppt Puppenspieler/in Puppenspieler/in Puppeteer +http://id.loc.gov/vocabulary/relators/pra Praeses Praeses Praeses +http://id.loc.gov/vocabulary/relators/pre Präsentation Präsentation Presenter +http://id.loc.gov/vocabulary/relators/prf Ausführende/r Ausführende/r Performer +http://id.loc.gov/vocabulary/relators/prg Programmiererung Programmiererung Programmer +http://id.loc.gov/vocabulary/relators/prm Druckgrafik Druckgrafik Printmaker +http://id.loc.gov/vocabulary/relators/prn Produktionsfirma Produktionsfirma Production company +http://id.loc.gov/vocabulary/relators/pro Produktion Produktion Producer +http://id.loc.gov/vocabulary/relators/prs Produktionsdesign Produktionsdesign Production designer +http://id.loc.gov/vocabulary/relators/prt Druck Druck Printer +http://id.loc.gov/vocabulary/relators/ptf Zivilkläger/in Zivilkläger/in Plaintiff +http://id.loc.gov/vocabulary/relators/rcd Ton Ton Recordist +http://id.loc.gov/vocabulary/relators/rce Aufnahmetechniker/in Aufnahmetechniker/in Recording engineer +http://id.loc.gov/vocabulary/relators/rcp Adressat/in Adressat/in Addressee +http://id.loc.gov/vocabulary/relators/rdd Hörfunkregisseur/in Hörfunkregisseur/in Radio director +http://id.loc.gov/vocabulary/relators/red Redaktion Redaktion Redaktor +http://id.loc.gov/vocabulary/relators/res Forscher/in Forscher/in Researcher +http://id.loc.gov/vocabulary/relators/rpc Hörfunkproduktion Hörfunkproduktion Radio producer +http://id.loc.gov/vocabulary/relators/rsp Respondent/in Respondent/in Respondent +http://id.loc.gov/vocabulary/relators/rsr Restaurator/in Restaurator/in Restorationist +http://id.loc.gov/vocabulary/relators/scl Bildhauer/in Bildhauer/in Sculptor +http://id.loc.gov/vocabulary/relators/sds Tongestaltung Tongestaltung Sound designer +http://id.loc.gov/vocabulary/relators/sgd Bühnenregie Bühnenregie Stage director +http://id.loc.gov/vocabulary/relators/sll Verkäufer/in Verkäufer/in Seller +http://id.loc.gov/vocabulary/relators/sng Gesang Gesang Singer +http://id.loc.gov/vocabulary/relators/spk Redner/in Redner/in Speaker +http://id.loc.gov/vocabulary/relators/spn Träger/in Träger/in Sponsoring body +http://id.loc.gov/vocabulary/relators/srv Landvermessung Landvermessung Surveyor +http://id.loc.gov/vocabulary/relators/stl Geschichtenerzähler/in Geschichtenerzähler/in Storyteller +http://id.loc.gov/vocabulary/relators/tch Ausbilder/in Ausbilder/in Teacher +http://id.loc.gov/vocabulary/relators/tld Fernsehregie Fernsehregie Television director +http://id.loc.gov/vocabulary/relators/tlp Fernsehproduktion Fernsehproduktion Television producer +http://id.loc.gov/vocabulary/relators/trc Transkription Transkription Transcriber +http://id.loc.gov/vocabulary/relators/trl Übersetzung Übersetzung Translator +http://id.loc.gov/vocabulary/relators/vac Synchronsprecher/in Synchronsprecher/in Voice actor +http://id.loc.gov/vocabulary/relators/vdg Kamera Kamera Director of photography +http://id.loc.gov/vocabulary/relators/wac Zusätzlicher Kommentar Zusätzlicher Kommentar Writer of added commentary +http://id.loc.gov/vocabulary/relators/wal Verfasser/in von zusätzlichen Lyrics Verfasser/in von zusätzlichen Lyrics Writer of added lyrics +http://id.loc.gov/vocabulary/relators/wat Zusätzlicher Text Zusätzlicher Text Writer of added text +http://id.loc.gov/vocabulary/relators/win Einleitung Einleitung Writer of introduction +http://id.loc.gov/vocabulary/relators/wpr Vorwort Vorwort Writer of preface +http://id.loc.gov/vocabulary/relators/wst Verfasser/in von ergänzendem Text Verfasser/in von ergänzendem Text Writer of supplementary textual content diff --git a/conf/output/test-hebis-to-lobid-output-0.json b/conf/output/test-hebis-to-lobid-output-0.json index 9b40959..f36e942 100644 --- a/conf/output/test-hebis-to-lobid-output-0.json +++ b/conf/output/test-hebis-to-lobid-output-0.json @@ -33,6 +33,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/514226781", + "dateCreated" : "2023-12-21", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 514226781 im Exportformat MARC21 XML", "inDataset" : { @@ -82,7 +83,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/edt" + "id" : "http://id.loc.gov/vocabulary/relators/edt", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] }, { @@ -93,7 +95,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/isb" + "id" : "http://id.loc.gov/vocabulary/relators/isb", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-1.json b/conf/output/test-hebis-to-lobid-output-1.json index 80b0329..ca5f7b8 100644 --- a/conf/output/test-hebis-to-lobid-output-1.json +++ b/conf/output/test-hebis-to-lobid-output-1.json @@ -34,6 +34,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/512839662", + "dateCreated" : "2023-11-01", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 512839662 im Exportformat MARC21 XML", "inDataset" : { @@ -85,7 +86,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/isb" + "id" : "http://id.loc.gov/vocabulary/relators/isb", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-10.json b/conf/output/test-hebis-to-lobid-output-10.json index 6bc1f00..842bde6 100644 --- a/conf/output/test-hebis-to-lobid-output-10.json +++ b/conf/output/test-hebis-to-lobid-output-10.json @@ -36,6 +36,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/090358163", + "dateCreated" : "2000-03-14", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 090358163 im Exportformat MARC21 XML", "inDataset" : { @@ -109,7 +110,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/edt" + "id" : "http://id.loc.gov/vocabulary/relators/edt", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] }, { @@ -118,7 +120,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] }, { @@ -127,7 +130,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-11.json b/conf/output/test-hebis-to-lobid-output-11.json index eff53e0..3609110 100644 --- a/conf/output/test-hebis-to-lobid-output-11.json +++ b/conf/output/test-hebis-to-lobid-output-11.json @@ -36,6 +36,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/090363000", + "dateCreated" : "2000-03-15", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 090363000 im Exportformat MARC21 XML", "inDataset" : { @@ -109,7 +110,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/aut" + "id" : "http://id.loc.gov/vocabulary/relators/aut", + "label" : "Autor/in" }, "type" : [ "Contribution" ] }, { @@ -118,7 +120,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] }, { @@ -127,7 +130,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-12.json b/conf/output/test-hebis-to-lobid-output-12.json index 51a6301..07f9510 100644 --- a/conf/output/test-hebis-to-lobid-output-12.json +++ b/conf/output/test-hebis-to-lobid-output-12.json @@ -39,6 +39,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/508037980", + "dateCreated" : "2023-05-25", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 508037980 im Exportformat MARC21 XML", "inDataset" : { @@ -213,7 +214,8 @@ "dateOfBirth" : "1961" }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/aut" + "id" : "http://id.loc.gov/vocabulary/relators/aut", + "label" : "Autor/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-13.json b/conf/output/test-hebis-to-lobid-output-13.json index 12bd14d..6185b6d 100644 --- a/conf/output/test-hebis-to-lobid-output-13.json +++ b/conf/output/test-hebis-to-lobid-output-13.json @@ -36,6 +36,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/487803779", + "dateCreated" : "2021-11-18", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 487803779 im Exportformat MARC21 XML", "inDataset" : { @@ -213,7 +214,8 @@ "dateOfBirth" : "1954" }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/aut" + "id" : "http://id.loc.gov/vocabulary/relators/aut", + "label" : "Autor/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-2.json b/conf/output/test-hebis-to-lobid-output-2.json index aac51f0..3decdfb 100644 --- a/conf/output/test-hebis-to-lobid-output-2.json +++ b/conf/output/test-hebis-to-lobid-output-2.json @@ -35,6 +35,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/512013683", + "dateCreated" : "2023-10-02", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 512013683 im Exportformat MARC21 XML", "inDataset" : { @@ -82,7 +83,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/isb" + "id" : "http://id.loc.gov/vocabulary/relators/isb", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-3.json b/conf/output/test-hebis-to-lobid-output-3.json index ed88b18..577c1d8 100644 --- a/conf/output/test-hebis-to-lobid-output-3.json +++ b/conf/output/test-hebis-to-lobid-output-3.json @@ -34,6 +34,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/512849919", + "dateCreated" : "2023-11-02", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 512849919 im Exportformat MARC21 XML", "inDataset" : { @@ -86,7 +87,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/edt" + "id" : "http://id.loc.gov/vocabulary/relators/edt", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] }, { @@ -97,7 +99,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/orm" + "id" : "http://id.loc.gov/vocabulary/relators/orm", + "label" : "Veranstalter/in" }, "type" : [ "Contribution" ] }, { @@ -108,7 +111,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/sng" + "id" : "http://id.loc.gov/vocabulary/relators/sng", + "label" : "Gesang" }, "type" : [ "Contribution" ] }, { @@ -119,7 +123,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/his" + "id" : "http://id.loc.gov/vocabulary/relators/his", + "label" : "Gastgebende Institution" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-4.json b/conf/output/test-hebis-to-lobid-output-4.json index 976f7de..f1d79dd 100644 --- a/conf/output/test-hebis-to-lobid-output-4.json +++ b/conf/output/test-hebis-to-lobid-output-4.json @@ -34,6 +34,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/516707701", + "dateCreated" : "2024-03-28", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 516707701 im Exportformat MARC21 XML", "inDataset" : { @@ -85,7 +86,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/isb" + "id" : "http://id.loc.gov/vocabulary/relators/isb", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] }, { @@ -96,7 +98,8 @@ "type" : [ "ConferenceOrEvent" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-5.json b/conf/output/test-hebis-to-lobid-output-5.json index 0dfda75..925b665 100644 --- a/conf/output/test-hebis-to-lobid-output-5.json +++ b/conf/output/test-hebis-to-lobid-output-5.json @@ -32,6 +32,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/475390555", + "dateCreated" : "2021-02-03", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 475390555 im Exportformat MARC21 XML", "inDataset" : { @@ -75,7 +76,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-6.json b/conf/output/test-hebis-to-lobid-output-6.json index 8d0899a..afa2a60 100644 --- a/conf/output/test-hebis-to-lobid-output-6.json +++ b/conf/output/test-hebis-to-lobid-output-6.json @@ -35,6 +35,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/488844266", + "dateCreated" : "2021-12-14", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 488844266 im Exportformat MARC21 XML", "inDataset" : { @@ -83,7 +84,8 @@ "dateOfBirth" : "1967" }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/aut" + "id" : "http://id.loc.gov/vocabulary/relators/aut", + "label" : "Autor/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-7.json b/conf/output/test-hebis-to-lobid-output-7.json index 12bd14d..6185b6d 100644 --- a/conf/output/test-hebis-to-lobid-output-7.json +++ b/conf/output/test-hebis-to-lobid-output-7.json @@ -36,6 +36,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/487803779", + "dateCreated" : "2021-11-18", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 487803779 im Exportformat MARC21 XML", "inDataset" : { @@ -213,7 +214,8 @@ "dateOfBirth" : "1954" }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/aut" + "id" : "http://id.loc.gov/vocabulary/relators/aut", + "label" : "Autor/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-8.json b/conf/output/test-hebis-to-lobid-output-8.json index 63b7554..56b3926 100644 --- a/conf/output/test-hebis-to-lobid-output-8.json +++ b/conf/output/test-hebis-to-lobid-output-8.json @@ -41,6 +41,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/478607776", + "dateCreated" : "2021-04-29", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 478607776 im Exportformat MARC21 XML", "inDataset" : { @@ -134,7 +135,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/edt" + "id" : "http://id.loc.gov/vocabulary/relators/edt", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] }, { @@ -145,7 +147,8 @@ "type" : [ "CorporateBody" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/isb" + "id" : "http://id.loc.gov/vocabulary/relators/isb", + "label" : "Herausgeber/in" }, "type" : [ "Contribution" ] } ] diff --git a/conf/output/test-hebis-to-lobid-output-9.json b/conf/output/test-hebis-to-lobid-output-9.json index efed6fd..0d24658 100644 --- a/conf/output/test-hebis-to-lobid-output-9.json +++ b/conf/output/test-hebis-to-lobid-output-9.json @@ -34,6 +34,7 @@ }, "object" : { "id" : "https://lobid.org/marcxml/090680634", + "dateCreated" : "2000-04-06", "type" : [ "DataFeedItem" ], "label" : "hbz-Ressource 090680634 im Exportformat MARC21 XML", "inDataset" : { @@ -101,7 +102,8 @@ "type" : [ "Person" ] }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] }, { @@ -114,7 +116,8 @@ "dateOfDeath" : "2011" }, "role" : { - "id" : "http://id.loc.gov/vocabulary/relators/ctb" + "id" : "http://id.loc.gov/vocabulary/relators/ctb", + "label" : "Beitragende/r" }, "type" : [ "Contribution" ] } ]