From 08a841341e72422daa1947dff8599d38ddbda7ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Kir=C3=A1ly?= Date: Thu, 13 Jun 2024 23:01:29 +0200 Subject: [PATCH] =?UTF-8?q?Add=20MARC=20tags=20defined=20locally=20at=20Or?= =?UTF-8?q?sz=C3=A1gygy=C5=B1l=C3=A9si=20K=C3=B6nyvt=C3=A1r,=20Budapest=20?= =?UTF-8?q?#486?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + catalogues/bnf.sh | 2 +- .../java/de/gwdg/metadataqa/marc/Utils.java | 1 + .../marc/definition/MarcVersion.java | 4 +- .../marc/definition/tags/TagCategory.java | 3 + .../marc/definition/tags/ogyktags/Tag592.java | 39 +++ .../marc/definition/tags/ogyktags/Tag596.java | 39 +++ .../marc/definition/tags/ogyktags/Tag597.java | 39 +++ .../marc/definition/tags/ogyktags/Tag599.java | 39 +++ .../marc/definition/tags/ogyktags/Tag856.java | 256 ++++++++++++++++++ .../marc/definition/tags/ogyktags/Tag934.java | 39 +++ .../marc/definition/tags/ogyktags/Tag972.java | 42 +++ .../marc/definition/tags/ogyktags/Tag983.java | 43 +++ .../marc/definition/tags/ogyktags/Tag996.java | 39 +++ .../marc/definition/tags/ogyktags/Tag997.java | 40 +++ .../marc/definition/tags/ogyktags/Tag998.java | 44 +++ .../marc/definition/tags/ogyktags/TagSTA.java | 52 ++++ .../tags/ogyktags/package-info.java | 6 + .../utils/DataElementsStaticticsTest.java | 8 +- .../marc/utils/MarcTagListerTest.java | 7 +- 20 files changed, 735 insertions(+), 9 deletions(-) create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag592.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag596.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag597.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag599.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag856.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag934.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag972.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag983.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag996.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag997.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag998.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/TagSTA.java create mode 100644 src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/package-info.java diff --git a/README.md b/README.md index c4830bcf8..1c0164bd8 100644 --- a/README.md +++ b/README.md @@ -379,6 +379,8 @@ Most of the analyses uses the following general parameters * `B3KAT`, fields available at the B3Kat union catalogue of Bibliotheksverbundes Bayern (BVB) and Kooperativen Bibliotheksverbundes Berlin-Brandenburg (KOBV) * `KBR`, fields available at KBR, the national library of Belgium + * `ZB`, fields available at Zentralbibliothek Zürich + * `OGYK`, fields available at Országygyűlési Könyvtár, Budapest * `-n`, `--nolog` do not display log messages * parameters to limit the validation: * `-i [record ID]`, `--id [record ID]` validates only a single record diff --git a/catalogues/bnf.sh b/catalogues/bnf.sh index 1427ec30a..010c55bac 100755 --- a/catalogues/bnf.sh +++ b/catalogues/bnf.sh @@ -6,7 +6,7 @@ NAME=bnf MARC_DIR=${BASE_INPUT_DIR}/bnf -TYPE_PARAMS="--emptyLargeCollectors --schemaType UNIMARC" +TYPE_PARAMS="--emptyLargeCollectors --schemaType UNIMARC --defaultEncoding UTF8" MASK=P174_*.UTF8 . ./common-script diff --git a/src/main/java/de/gwdg/metadataqa/marc/Utils.java b/src/main/java/de/gwdg/metadataqa/marc/Utils.java index 2e727acc1..4ffdec3c4 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/Utils.java +++ b/src/main/java/de/gwdg/metadataqa/marc/Utils.java @@ -84,6 +84,7 @@ public static MarcVersion package2version(String packageName) { case "b3kattags": version = MarcVersion.B3KAT; break; case "kbrtags": version = MarcVersion.KBR; break; case "zbtags": version = MarcVersion.ZB; break; + case "ogyktags": version = MarcVersion.OGYK; break; default: version = MarcVersion.MARC21; break; } return version; diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/MarcVersion.java b/src/main/java/de/gwdg/metadataqa/marc/definition/MarcVersion.java index b99c18c0e..8f9f921ce 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/MarcVersion.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/MarcVersion.java @@ -14,8 +14,8 @@ public enum MarcVersion { UVA( "UVA", "University of Amsterdam"), B3KAT( "B3KAT", "B3Kat union catalogue of Bibliotheksverbundes Bayern (BVB) and Kooperativen Bibliotheksverbundes Berlin-Brandenburg (KOBV)"), KBR( "KBR", "KBR"), - ZB( "ZB", "Zentralbibliothek Zürich") - ; + ZB( "ZB", "Zentralbibliothek Zürich"), + OGYK( "OGYK", "Országygyűlési Könyvtár, Budapest"); String code; String label; diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/TagCategory.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/TagCategory.java index 6c54f92cc..5b5910c49 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/TagCategory.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/TagCategory.java @@ -30,6 +30,9 @@ public enum TagCategory { B3KAT(22, "b3kattags", "B3Kat", "Locally defined tags of a German union cataogue B3Kat", false), KBR(23, "kbrtags", "KBR", "Locally defined tags of the Royal Library of Belgium", false), ZB(24, "zbtags", "ZB", "Locally defined tags of the Zentralbibliothek Zürich", false), + OGYK(25, "ogyktags", "OGYK", "Locally defined tags of the Országygyűlési Könyvtár, Budapest", false), + + // PICA PICA_0(50, "pica0", "0...", "PICA+ bibliographic description", false), PICA_1(51, "pica1", "1...", "PICA+ holding", false), PICA_2(52, "pica2", "2...", "PICA+ item", false), diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag592.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag592.java new file mode 100644 index 000000000..93e236f71 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag592.java @@ -0,0 +1,39 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag592 extends DataFieldDefinition { + + private static Tag592 uniqueInstance; + + private Tag592() { + initialize(); + postCreation(); + } + + public static Tag592 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag592(); + return uniqueInstance; + } + + private void initialize() { + tag = "592"; + label = "Megjegyzés a különlenyomatról"; + mqTag = "MegjegyzesKulonlenyomatrol"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:592"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Megjegyzés szövege", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag596.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag596.java new file mode 100644 index 000000000..1a035b17e --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag596.java @@ -0,0 +1,39 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag596 extends DataFieldDefinition { + + private static Tag596 uniqueInstance; + + private Tag596() { + initialize(); + postCreation(); + } + + public static Tag596 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag596(); + return uniqueInstance; + } + + private void initialize() { + tag = "596"; + label = "Megjegyzés a szabványosításról, az adatgyűjtés lezárásáról és a hatályba lépésről"; + mqTag = "MegjegyzesSzabvanyositasiAdatok"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:596"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Megjegyzés szövege", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag597.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag597.java new file mode 100644 index 000000000..fd91d78f8 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag597.java @@ -0,0 +1,39 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag597 extends DataFieldDefinition { + + private static Tag597 uniqueInstance; + + private Tag597() { + initialize(); + postCreation(); + } + + public static Tag597 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag597(); + return uniqueInstance; + } + + private void initialize() { + tag = "597"; + label = "Megjegyzés a megjelenésről"; + mqTag = "MegjegyzesMegjelenesrol"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:597"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Megjegyzés szövege", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag599.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag599.java new file mode 100644 index 000000000..a44a265cc --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag599.java @@ -0,0 +1,39 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag599 extends DataFieldDefinition { + + private static Tag599 uniqueInstance; + + private Tag599() { + initialize(); + postCreation(); + } + + public static Tag599 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag599(); + return uniqueInstance; + } + + private void initialize() { + tag = "599"; + label = "Példány- és verzióazonosító megjegyzés"; + mqTag = "PeldanyMegjegyzes"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:599"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Megjegyzés szövege", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag856.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag856.java new file mode 100644 index 000000000..96ac1ebd8 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag856.java @@ -0,0 +1,256 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; +import de.gwdg.metadataqa.marc.definition.general.codelist.ElectronicAccessMethodsCodeList; +import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes; +import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser; + +import static de.gwdg.metadataqa.marc.definition.FRBRFunction.DiscoveryIdentify; +import static de.gwdg.metadataqa.marc.definition.FRBRFunction.DiscoveryObtain; +import static de.gwdg.metadataqa.marc.definition.FRBRFunction.DiscoverySelect; +import static de.gwdg.metadataqa.marc.definition.FRBRFunction.ManagementIdentify; +import static de.gwdg.metadataqa.marc.definition.FRBRFunction.ManagementProcess; + +public class Tag856 extends DataFieldDefinition { + + private static Tag856 uniqueInstance; + + private Tag856() { + initialize(); + postCreation(); + } + + public static Tag856 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag856(); + return uniqueInstance; + } + + private void initialize() { + tag = "856"; + label = "Electronic Location and Access (OGYK)"; + mqTag = "ElectronicLocationAndAccessOGYK"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:856"; + setCompilanceLevels("O"); + + ind1 = new Indicator("Access method") + .setCodes( + " ", "No information provided", + "0", "Email", + "1", "FTP", + "2", "Remote login (Telnet)", + "3", "Dial-up", + "4", "HTTP", + "7", "Method specified in subfield $2" + ) + .setMqTag("accessMethod") + .setFrbrFunctions(DiscoveryObtain); + ind2 = new Indicator("Relationship") + .setCodes( + " ", "No information provided", + "0", "Resource", + "1", "Version of resource", + "2", "Related resource", + "8", "No display constant generated" + ) + .setMqTag("relationship") + .setFrbrFunctions(DiscoveryIdentify, DiscoverySelect); + + setSubfieldsWithCardinality( + "a", "Host name", "R", + "b", "Access number", "R", + "c", "Compression information", "R", + "d", "Path", "R", + "f", "Electronic name", "R", + "h", "Processor of request", "NR", + "i", "Instruction", "R", + "j", "Bits per second", "NR", + "k", "Password", "NR", + "l", "Logon", "NR", + "m", "Contact for access assistance", "R", + "n", "Name of location of host", "NR", + "o", "Operating system", "NR", + "p", "Port", "NR", + "q", "Electronic format type", "NR", + "r", "Settings", "NR", + "s", "File size", "R", + "t", "Terminal emulation", "R", + "u", "Uniform Resource Identifier", "R", + "v", "Hours access method available", "R", + "w", "Record control number", "R", + "x", "Nonpublic note", "R", + "y", "Link text", "R", + "z", "Public note", "R", + "2", "Access method", "NR", + "3", "Materials specified", "NR", + "6", "Linkage", "NR", + "7", "Access status", "NR", + "8", "Field link and sequence number", "R", + "4", "Aleph subfield related to copyright", "NR", + "9", "Aleph/ANL fulltext linkage", "NR" + ); + + getSubfield("4").setCodes( + "N", "ne legyen copyright üzenet" + ); + + getSubfield("x").setCodes( + "fulltext", "teljes szövegű tartalom", + "nofulltext", "nincs teljes szövegű tartalom" + ); + + getSubfield("7").setCodes( + "0", "Open access", + "1", "Restricted access", + "u", "Unspecified", + "z", "Other" + ); + + getSubfield("w").setCodeList(OrganizationCodes.getInstance()); + getSubfield("2").setCodeList(ElectronicAccessMethodsCodeList.getInstance()); + + getSubfield("6").setContentParser(LinkageParser.getInstance()); + + getSubfield("a") + .setMqTag("host") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("b") + .setMqTag("accessNumber") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("c") + .setMqTag("compression") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("d") + .setMqTag("path") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("f") + .setMqTag("name") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("h") + .setMqTag("processor") + .setCompilanceLevels("A"); + + getSubfield("i") + .setMqTag("instruction") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("O"); + + getSubfield("j") + .setMqTag("bitsPerSecond") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("k") + .setMqTag("password") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("l") + .setMqTag("logon") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("m") + .setMqTag("contact") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("O"); + + getSubfield("n") + .setMqTag("location") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("o") + .setMqTag("operatingSystem") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("p") + .setMqTag("port") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("q") + .setMqTag("format") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("r") + .setMqTag("settings") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("s") + .setMqTag("fileSize") + .setCompilanceLevels("O"); + + getSubfield("t") + .setMqTag("terminalEmulation") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("u") + .setMqTag("uri") + .setFrbrFunctions(DiscoveryIdentify, DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("v") + .setMqTag("hours") + .setFrbrFunctions(DiscoveryObtain) + .setCompilanceLevels("A"); + + getSubfield("w") + .setMqTag("recordControlNumber") + .setCompilanceLevels("O"); + + getSubfield("x") + .setMqTag("nonpublicNote") + .setCompilanceLevels("O"); + + getSubfield("y") + .setMqTag("linkText") + .setCompilanceLevels("O"); + + getSubfield("z") + .setMqTag("publicNote") + .setCompilanceLevels("O"); + + getSubfield("2") + .setMqTag("accessMethod") + .setCompilanceLevels("A"); + + getSubfield("3") + .setMqTag("materialsSpecified") + .setCompilanceLevels("A"); + + getSubfield("6") + .setBibframeTag("linkage") + .setFrbrFunctions(ManagementIdentify, ManagementProcess) + .setCompilanceLevels("A"); + + getSubfield("7") + .setMqTag("accessStatus"); + + getSubfield("8") + .setMqTag("fieldLink") + .setFrbrFunctions(ManagementIdentify, ManagementProcess) + .setCompilanceLevels("O"); + + setHistoricalSubfields( + "g", "Uniform Resource Name [OBSOLETE, 2000]" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag934.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag934.java new file mode 100644 index 000000000..b834affa3 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag934.java @@ -0,0 +1,39 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag934 extends DataFieldDefinition { + + private static Tag934 uniqueInstance; + + private Tag934() { + initialize(); + postCreation(); + } + + public static Tag934 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag934(); + return uniqueInstance; + } + + private void initialize() { + tag = "934"; + label = "Szolgáltatás kódja"; + mqTag = "SzolgaltatasKodja"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:933-934"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Kód", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag972.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag972.java new file mode 100644 index 000000000..ca8950cd7 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag972.java @@ -0,0 +1,42 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag972 extends DataFieldDefinition { + + private static Tag972 uniqueInstance; + + private Tag972() { + initialize(); + postCreation(); + } + + public static Tag972 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag972(); + return uniqueInstance; + } + + private void initialize() { + tag = "972"; + label = "Gyűjteményi témakód (monografikus)"; + mqTag = "GyujtemenyiTemakodMonografikus"; + cardinality = Cardinality.Nonrepeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:972"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Témakód", "NR" + ); + + getSubfield("a").setMqTag("Temakod"); + + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag983.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag983.java new file mode 100644 index 000000000..67a79dc85 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag983.java @@ -0,0 +1,43 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag983 extends DataFieldDefinition { + + private static Tag983 uniqueInstance; + + private Tag983() { + initialize(); + postCreation(); + } + + public static Tag983 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag983(); + return uniqueInstance; + } + + private void initialize() { + tag = "983"; + label = "Konverziós adatok (Medea + Globaldigit)"; + mqTag = "KonverziosAdatokMedea"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:983"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "A retrokonverziót végző cég megjegyzése", "R", + "b", "A retrokonverziót végző cég megjegyzése", "NR", + "u", "Digitalizált cédula elérése (URL)", "NR", + "x", "A retrokonverziót végző cég által használt kódolás", "R", + "y", "A katalóguskarton szkennelt verziójának sorszáma", "R" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag996.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag996.java new file mode 100644 index 000000000..ede2574b7 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag996.java @@ -0,0 +1,39 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag996 extends DataFieldDefinition { + + private static Tag996 uniqueInstance; + + private Tag996() { + initialize(); + postCreation(); + } + + public static Tag996 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag996(); + return uniqueInstance; + } + + private void initialize() { + tag = "996"; + label = "Digitalizálás (projekt-kód)"; + mqTag = "DDK"; + cardinality = Cardinality.Nonrepeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:996-997"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Kód", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag997.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag997.java new file mode 100644 index 000000000..1b7261937 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag997.java @@ -0,0 +1,40 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag997 extends DataFieldDefinition { + + private static Tag997 uniqueInstance; + + private Tag997() { + initialize(); + postCreation(); + } + + public static Tag997 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag997(); + return uniqueInstance; + } + + private void initialize() { + tag = "997"; + label = "Digitalizálás (kronologikus besorolás gyűjteménybe szervezéshez)"; + mqTag = "DGY2"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:996-997"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Kód", "NR", + "b", "Kód feloldása", "NR" + ); + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag998.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag998.java new file mode 100644 index 000000000..fdd5f6385 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/Tag998.java @@ -0,0 +1,44 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class Tag998 extends DataFieldDefinition { + + private static Tag998 uniqueInstance; + + private Tag998() { + initialize(); + postCreation(); + } + + public static Tag998 getInstance() { + if (uniqueInstance == null) + uniqueInstance = new Tag998(); + return uniqueInstance; + } + + private void initialize() { + tag = "998"; + label = "Digitalizálás (tematikus besorolás gyűjteménybe szervezéshez)"; + mqTag = "DGY1"; + cardinality = Cardinality.Repeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:998"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Kód", "NR", + "b", "Kód feloldása", "NR" + ); + + getSubfield("a").setMqTag("Kod"); + getSubfield("b").setMqTag("KodFeloldasa"); + + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/TagSTA.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/TagSTA.java new file mode 100644 index 000000000..fd41b655f --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/TagSTA.java @@ -0,0 +1,52 @@ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; +import de.gwdg.metadataqa.marc.definition.structure.Indicator; + +/** + * Locally defined field in OGYK + */ +public class TagSTA extends DataFieldDefinition { + + private static TagSTA uniqueInstance; + + private TagSTA() { + initialize(); + postCreation(); + } + + public static TagSTA getInstance() { + if (uniqueInstance == null) + uniqueInstance = new TagSTA(); + return uniqueInstance; + } + + private void initialize() { + tag = "STA"; + label = "Feldolgozottsági állapot"; + mqTag = "FeldolgozottsagiAllapot"; + cardinality = Cardinality.Nonrepeatable; + descriptionUrl = "https://wiki.ogyk.hu/doku.php?id=ogyk:gyszo:katszab:konyv:sta"; + + ind1 = new Indicator(); + ind2 = new Indicator(); + + setSubfieldsWithCardinality( + "a", "Státusz", "NR", + "d", "Dátum", "NR" + ); + + getSubfield("a").setCodes( + "feld1", "katalogizálás, állományba vétel", + "feld2", "ellenőrzés (bib.rekord, pld.rekord, ACQ)", + "feld3", "tárgyszavazás", + "feld4", "tárgyszavazás - ellenőrzés", + "feld5", "feldolgozás kész" + ); + + getSubfield("a").setMqTag("Statusz"); + getSubfield("d").setMqTag("Datum"); + + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/package-info.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/package-info.java new file mode 100644 index 000000000..4287c33c6 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/ogyktags/package-info.java @@ -0,0 +1,6 @@ +/** + * This package contains the tags specifics at the Library of the Hungarian Parliament (OGYK) + */ +package de.gwdg.metadataqa.marc.definition.tags.ogyktags; + +//rest of the file is empty \ No newline at end of file diff --git a/src/test/java/de/gwdg/metadataqa/marc/utils/DataElementsStaticticsTest.java b/src/test/java/de/gwdg/metadataqa/marc/utils/DataElementsStaticticsTest.java index 1f03e2405..76013d244 100644 --- a/src/test/java/de/gwdg/metadataqa/marc/utils/DataElementsStaticticsTest.java +++ b/src/test/java/de/gwdg/metadataqa/marc/utils/DataElementsStaticticsTest.java @@ -15,9 +15,9 @@ public void testStatistics() { assertEquals( 229, statistics.get(DataElementType.coreFields)); assertEquals( 184, statistics.get(DataElementType.coreIndicators)); assertEquals(2667, statistics.get(DataElementType.coreSubfields)); - assertEquals( 216, statistics.get(DataElementType.localFields)); - assertEquals( 28, statistics.get(DataElementType.localIndicators)); - assertEquals(1755, statistics.get(DataElementType.localSubfields)); - assertEquals(5297, statistics.total()); + assertEquals( 228, statistics.get(DataElementType.localFields)); + assertEquals( 30, statistics.get(DataElementType.localIndicators)); + assertEquals(1804, statistics.get(DataElementType.localSubfields)); + assertEquals(5360, statistics.total()); } } \ No newline at end of file diff --git a/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java b/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java index 7e9dd5291..35c5510f2 100644 --- a/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java +++ b/src/test/java/de/gwdg/metadataqa/marc/utils/MarcTagListerTest.java @@ -28,7 +28,7 @@ public void testListTag() { List> tags = MarcTagLister.listTags(); assertNotNull(tags); assertNotEquals(0, tags.size()); - assertEquals(445, tags.size()); + assertEquals(457, tags.size()); assertEquals("Tag010", tags.get(0).getSimpleName()); Map versionCounter = new HashMap<>(); Map versionCounter2 = new HashMap<>(); @@ -72,7 +72,7 @@ public void testListTag() { List testedVersions = List.of( MarcVersion.MARC21, MarcVersion.DNB, MarcVersion.FENNICA, MarcVersion.GENT, MarcVersion.NKCR, MarcVersion.OCLC, MarcVersion.SZTE, MarcVersion.KBR, MarcVersion.ZB, MarcVersion.BL, MarcVersion.MARC21NO, MarcVersion.UVA, - MarcVersion.B3KAT, + MarcVersion.B3KAT, MarcVersion.OGYK, MarcVersion.UNIMARC // special case ); for (MarcVersion version : MarcVersion.values()) { @@ -114,6 +114,9 @@ public void testListTag() { assertEquals( 5, (int) versionCounter2.get(MarcVersion.B3KAT)); assertEquals( 5, (int) versionCounter.get("b3kattags")); + assertEquals( 12, (int) versionCounter2.get(MarcVersion.OGYK)); + assertEquals( 12, (int) versionCounter.get("ogyktags")); + assertEquals(229, (int) versionCounter2.get(MarcVersion.MARC21)); assertEquals( 2, (int) versionCounter.get("holdings")); assertEquals( 49, (int) versionCounter.get("tags01x"));