diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/general/codelist/AccessibilityContentSourceCodes.java b/src/main/java/de/gwdg/metadataqa/marc/definition/general/codelist/AccessibilityContentSourceCodes.java new file mode 100644 index 000000000..e3218f4e9 --- /dev/null +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/general/codelist/AccessibilityContentSourceCodes.java @@ -0,0 +1,31 @@ +package de.gwdg.metadataqa.marc.definition.general.codelist; + +import de.gwdg.metadataqa.marc.Utils; + +/** + * Accessibility Content Source Codes + * https://www.loc.gov/standards/sourcelist/accessibility.html + */ +public class AccessibilityContentSourceCodes extends CodeList { + + private void initialize() { + name = "Accessibility Content Source Codes"; + url = "https://www.loc.gov/standards/sourcelist/accessibility.html"; + codes = Utils.generateCodes( + "sapdv", "Schema.org Accessibility Properties for Discoverability Vocabulary (Accessibility Discoverability Vocabulary for Schema.org Community Group)" + ); + indexCodes(); + } + + private static AccessibilityContentSourceCodes uniqueInstance; + + private AccessibilityContentSourceCodes() { + initialize(); + } + + public static AccessibilityContentSourceCodes getInstance() { + if (uniqueInstance == null) + uniqueInstance = new AccessibilityContentSourceCodes(); + return uniqueInstance; + } +} diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag055.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag055.java index 569ed91fc..756f80907 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag055.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag055.java @@ -56,18 +56,18 @@ private void initialize() { .setMqTag("heldByLAC") .setFrbrFunctions(DiscoverySelect, DiscoveryObtain); - ind2 = new Indicator("Type, completeness, source of class/call number") + ind2 = new Indicator("Type, completeness, source of call/class number") .setCodes( - "0", "LC-based call number assigned by LAC", - "1", "Complete LC class number assigned by LAC", - "2", "Incomplete LC class number assigned by LAC", - "3", "LC-based call number assigned by the contributing library", - "4", "Complete LC class number assigned by the contributing library", - "5", "Incomplete LC class number assigned by the contributing library", + "0", "LCC (or LCC-compatible) call number assigned by LAC", + "1", "Complete LCC (or LCC-compatible) class number assigned by LAC", + "2", "Incomplete LCC (or LCC-compatible) class number assigned by LAC", + "3", "LCC (or LCC-compatible) call number assigned by a Canadian organization other than LAC", + "4", "Complete LCC (or LCC-compatible) class number assigned by a Canadian organization other than LAC", + "5", "Incomplete LCC (or LCC-compatible) class number assigned by a Canadian organization other than LAC", "6", "Other call number assigned by LAC", "7", "Other class number assigned by LAC", - "8", "Other call number assigned by the contributing library", - "9", "Other class number assigned by the contributing library" + "8", "Other call number assigned by a Canadian organization other than LAC", + "9", "Other class number assigned by a Canadian organization other than LAC" ) .setMqTag("type") .setFrbrFunctions(ManagementIdentify, ManagementProcess); diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag082.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag082.java index f7a5f6aac..4334c8807 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag082.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag082.java @@ -2,6 +2,7 @@ import de.gwdg.metadataqa.marc.definition.Cardinality; import de.gwdg.metadataqa.marc.definition.MarcVersion; +import de.gwdg.metadataqa.marc.definition.general.parser.RecordControlNumberParser; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes; @@ -74,6 +75,8 @@ private void initialize() { "b", "Item number", "NR", "m", "Standard or optional designation", "NR", "q", "Assigning agency", "NR", + "0", "Authority record control number or standard number", "R", + "1", "Real World Object URI", "R", "2", "Edition information", "NR", "6", "Linkage", "NR", "7", "Data provenance", "R", @@ -102,6 +105,13 @@ private void initialize() { .setBibframeTag("source") .setCompilanceLevels("O"); + getSubfield("0") + .setMqTag("authorityRecordControlNumber") + .setContentParser(RecordControlNumberParser.getInstance()); + + getSubfield("1") + .setMqTag("uri"); + getSubfield("2") .setBibframeTag("edition") .setFrbrFunctions(ManagementIdentify, ManagementProcess) diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag083.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag083.java index 6e717a3e9..8cb8710ef 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag083.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags01x/Tag083.java @@ -2,6 +2,7 @@ import de.gwdg.metadataqa.marc.definition.Cardinality; import de.gwdg.metadataqa.marc.definition.MarcVersion; +import de.gwdg.metadataqa.marc.definition.general.parser.RecordControlNumberParser; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes; @@ -54,6 +55,8 @@ private void initialize() { "q", "Assigning agency", "NR", "y", "Table sequence number for internal subarrangement or add table", "R", "z", "Table identification", "R", + "0", "Authority record control number or standard number", "R", + "1", "Real World Object URI", "R", "2", "Edition information", "NR", "6", "Linkage", "NR", "7", "Data provenance", "R", @@ -87,6 +90,13 @@ private void initialize() { getSubfield("z") .setMqTag("tableId"); + getSubfield("0") + .setMqTag("authorityRecordControlNumber") + .setContentParser(RecordControlNumberParser.getInstance()); + + getSubfield("1") + .setMqTag("uri"); + getSubfield("2") .setMqTag("edition") .setCompilanceLevels("M"); diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag341.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag341.java index a3868c89e..e057f78dd 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag341.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag341.java @@ -2,7 +2,10 @@ import de.gwdg.metadataqa.marc.definition.Cardinality; import de.gwdg.metadataqa.marc.definition.MarcVersion; +import de.gwdg.metadataqa.marc.definition.general.codelist.AccessibilityContentSourceCodes; +import de.gwdg.metadataqa.marc.definition.general.codelist.CountryCodes; import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser; +import de.gwdg.metadataqa.marc.definition.general.parser.RecordControlNumberParser; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition; @@ -51,6 +54,8 @@ private void initialize() { "c", "Visual assistive features", "R", "d", "Auditory assistive features", "R", "e", "Tactile assistive features", "R", + "0", "Authority record control number or standard number", "R", + "1", "Real World Object URI", "R", "2", "Source", "NR", "3", "Materials specified", "NR", "6", "Linkage", "NR", @@ -72,8 +77,16 @@ private void initialize() { getSubfield("e") .setMqTag("tactileAssistiveFeatures"); + getSubfield("0") + .setMqTag("authorityRecordControlNumber") + .setContentParser(RecordControlNumberParser.getInstance()); + + getSubfield("1") + .setMqTag("uri"); + getSubfield("2") - .setBibframeTag("source"); + .setBibframeTag("source") + .setCodeList(AccessibilityContentSourceCodes.getInstance()); getSubfield("3") .setMqTag("materialsSpecified"); diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag383.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag383.java index 5677e6755..40d1858e7 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag383.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags3xx/Tag383.java @@ -11,7 +11,7 @@ import java.util.Arrays; /** - * Numeric Designation of Musical Work + * Numeric Designation of Musical Work or Expression * https://www.loc.gov/marc/bibliographic/bd383.html */ public class Tag383 extends DataFieldDefinition { @@ -30,12 +30,18 @@ public static Tag383 getInstance() { private void initialize() { tag = "383"; - label = "Numeric Designation of Musical Work"; + label = "Numeric Designation of Musical Work or Expression"; cardinality = Cardinality.Repeatable; descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd383.html"; setCompilanceLevels("O"); - ind1 = new Indicator(); + ind1 = new Indicator("Type of entity") + .setCodes( + " ", "No information provided", + "0", "Work", + "1", "Expression" + ) + .setMqTag("typeOfEntity"); ind2 = new Indicator(); setSubfieldsWithCardinality( diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags5xx/Tag580.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags5xx/Tag580.java index 7cdbd2141..f423b44e3 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags5xx/Tag580.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags5xx/Tag580.java @@ -2,6 +2,7 @@ import de.gwdg.metadataqa.marc.definition.Cardinality; import de.gwdg.metadataqa.marc.definition.MarcVersion; +import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes; import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; @@ -45,6 +46,7 @@ private void initialize() { setSubfieldsWithCardinality( "a", "Linking entry complexity note", "NR", + "5", "Institution to which field applies", "NR", "6", "Linkage", "NR", "8", "Field link and sequence number", "R" ); @@ -55,6 +57,10 @@ private void initialize() { .setMqTag("rdf:value") .setCompilanceLevels("M"); + getSubfield("5") + .setMqTag("institution") + .setCodeList(OrganizationCodes.getInstance()); + getSubfield("6") .setBibframeTag("linkage") .setFrbrFunctions(ManagementIdentify, ManagementProcess) diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag647.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag647.java index 3d47f07d7..e84b2e0a3 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag647.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag647.java @@ -1,6 +1,7 @@ package de.gwdg.metadataqa.marc.definition.tags.tags6xx; import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.general.codelist.RelatorCodes; import de.gwdg.metadataqa.marc.definition.general.parser.RecordControlNumberParser; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; @@ -11,6 +12,8 @@ import java.util.Arrays; +import static de.gwdg.metadataqa.marc.definition.FRBRFunction.DiscoveryIdentify; + /** * Subject Added Entry - Named Event * https://www.loc.gov/marc/bibliographic/bd647.html @@ -55,6 +58,7 @@ private void initialize() { "a", "Named event", "NR", "c", "Location of named event", "R", "d", "Date of named event", "NR", + "e", "Relator term", "R", "g", "Miscellaneous information", "R", "v", "Form subdivision", "R", "x", "General subdivision", "R", @@ -64,6 +68,7 @@ private void initialize() { "1", "Real World Object URI", "R", "2", "Source of heading or term", "NR", "3", "Materials specified", "NR", + "4", "Relationship", "R", "6", "Linkage", "NR", "8", "Field link and sequence number", "R" ); @@ -79,6 +84,9 @@ private void initialize() { getSubfield("d") .setMqTag("date"); + getSubfield("e") + .setMqTag("relatorTerm"); + getSubfield("g") .setMqTag("miscellaneous"); @@ -107,6 +115,10 @@ private void initialize() { getSubfield("3") .setMqTag("materialsSpecified"); + getSubfield("4") + .setMqTag("relationship") + .setCodeList(RelatorCodes.getInstance()); + getSubfield("6") .setBibframeTag("linkage"); diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag648.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag648.java index b31c8549c..f86eb9188 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag648.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags6xx/Tag648.java @@ -2,6 +2,7 @@ import de.gwdg.metadataqa.marc.EncodedValue; import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.general.codelist.RelatorCodes; import de.gwdg.metadataqa.marc.definition.general.parser.RecordControlNumberParser; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; @@ -72,6 +73,7 @@ private void initialize() { setSubfieldsWithCardinality( "a", "Chronological term", "NR", + "e", "Relator term", "R", "v", "Form subdivision", "R", "x", "General subdivision", "R", "y", "Chronological subdivision", "R", @@ -80,6 +82,7 @@ private void initialize() { "1", "Real World Object URI", "R", "2", "Source of heading or term", "NR", "3", "Materials specified", "NR", + "4", "Relationship", "R", "6", "Linkage", "NR", "7", "Data provenance", "R", "8", "Field link and sequence number", "R" @@ -94,6 +97,9 @@ private void initialize() { .setFrbrFunctions(DiscoverySearch, DiscoveryIdentify) .setCompilanceLevels("M"); + getSubfield("e") + .setMqTag("relatorTerm"); + getSubfield("v") .setBibframeTag("formGenre").setMqTag("formSubdivision") .setFrbrFunctions(DiscoverySearch, DiscoveryIdentify) @@ -132,6 +138,10 @@ private void initialize() { .setFrbrFunctions(DiscoveryIdentify) .setCompilanceLevels("O"); + getSubfield("4") + .setMqTag("relationship") + .setCodeList(RelatorCodes.getInstance()); + getSubfield("6") .setBibframeTag("linkage") .setFrbrFunctions(ManagementIdentify, ManagementProcess) diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag773.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag773.java index b75d30a99..d07f01680 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag773.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag773.java @@ -1,6 +1,7 @@ package de.gwdg.metadataqa.marc.definition.tags.tags76x; import de.gwdg.metadataqa.marc.definition.Cardinality; +import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; import de.gwdg.metadataqa.marc.definition.MarcVersion; @@ -90,6 +91,7 @@ private void initialize() { "z", "International Standard Book Number", "R", "3", "Materials specified", "NR", "4", "Relationship", "R", + "5", "Institution to which field applies", "NR", "6", "Linkage", "NR", "7", "Control subfield", "NR", "8", "Field link and sequence number", "R" @@ -213,6 +215,10 @@ private void initialize() { .setCodeList(RelatorCodes.getInstance()) .setCompilanceLevels("O"); + getSubfield("5") + .setMqTag("institution") + .setCodeList(OrganizationCodes.getInstance()); + getSubfield("6") .setBibframeTag("linkage") .setFrbrFunctions(ManagementIdentify, ManagementProcess) diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag774.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag774.java index 1c431067f..4bd7fffbf 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag774.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag774.java @@ -2,6 +2,7 @@ import de.gwdg.metadataqa.marc.definition.Cardinality; import de.gwdg.metadataqa.marc.definition.MarcVersion; +import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes; import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition; import de.gwdg.metadataqa.marc.definition.structure.Indicator; import de.gwdg.metadataqa.marc.definition.general.Tag76xSubfield7PositionsGenerator; @@ -89,6 +90,7 @@ private void initialize() { "y", "CODEN designation", "NR", "z", "International Standard Book Number", "R", "4", "Relationship", "R", + "5", "Institution to which field applies", "NR", "6", "Linkage", "NR", "7", "Control subfield", "NR", "8", "Field link and sequence number", "R" @@ -200,6 +202,10 @@ private void initialize() { .setCodeList(RelatorCodes.getInstance()) .setCompilanceLevels("O"); + getSubfield("5") + .setMqTag("institution") + .setCodeList(OrganizationCodes.getInstance()); + getSubfield("6") .setBibframeTag("linkage") .setFrbrFunctions(ManagementIdentify, ManagementProcess) diff --git a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag787.java b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag787.java index 7a528a50d..e1b0b1440 100644 --- a/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag787.java +++ b/src/main/java/de/gwdg/metadataqa/marc/definition/tags/tags76x/Tag787.java @@ -86,6 +86,7 @@ private void initialize() { "y", "CODEN designation", "NR", "z", "International Standard Book Number", "R", "4", "Relationship", "R", + "5", "Institution to which field applies", "NR", "6", "Linkage", "NR", "7", "Control subfield", "NR", "8", "Field link and sequence number", "R" @@ -195,6 +196,9 @@ private void initialize() { .setCodeList(RelatorCodes.getInstance()) .setCompilanceLevels("O"); + getSubfield("5") + .setMqTag("institution"); + getSubfield("6") .setBibframeTag("linkage") .setFrbrFunctions(ManagementIdentify, ManagementProcess) 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 1b7c41101..0c89212d6 100644 --- a/src/test/java/de/gwdg/metadataqa/marc/utils/DataElementsStaticticsTest.java +++ b/src/test/java/de/gwdg/metadataqa/marc/utils/DataElementsStaticticsTest.java @@ -13,11 +13,11 @@ public void testStatistics() { assertEquals("There should be 6 defined control fields", 6, statistics.get(DataElementType.controlFields)); assertEquals("There should be 212 defined control field positions", 212, statistics.get(DataElementType.controlFieldPositions)); assertEquals("There should be 230 defined fields in MARC core", 230, statistics.get(DataElementType.coreFields)); - assertEquals("There should be 185 defined indicators in MARC core", 185, statistics.get(DataElementType.coreIndicators)); - assertEquals("There should be 2674 defined subfields in MARC core", 2674, statistics.get(DataElementType.coreSubfields)); + assertEquals("There should be 186 defined indicators in MARC core", 186, statistics.get(DataElementType.coreIndicators)); + assertEquals("There should be 2688 defined subfields in MARC core", 2688, statistics.get(DataElementType.coreSubfields)); assertEquals("There should be 228 defined locally defined fields", 228, statistics.get(DataElementType.localFields)); assertEquals("There should be 30 defined locally defined indicators", 30, statistics.get(DataElementType.localIndicators)); assertEquals("There should be 1807 defined locally defined subfields", 1807, statistics.get(DataElementType.localSubfields)); - assertEquals("There should be 5372 defined data elements", 5372, statistics.total()); + assertEquals("There should be 5387 defined data elements", 5387, statistics.total()); } } \ No newline at end of file