Skip to content

Commit

Permalink
issue #89: processing Update No. 31, December 2020
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Feb 5, 2021
1 parent 8fd8f1a commit 5d3c669
Show file tree
Hide file tree
Showing 9 changed files with 218 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ private void initialize() {
tag = "043";
label = "Geographic Area Code";
bibframeTag = "GeographicCoverage";
cardinality = Cardinality.Nonrepeatable;
cardinality = Cardinality.Repeatable;
descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd043.html";
setCompilanceLevels("A");

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package de.gwdg.metadataqa.marc.definition.tags.tags3xx;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.general.codelist.GenreFormCodeAndTermSourceCodes;
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;

import java.util.Arrays;

/**
* Extension Plan
* http://www.loc.gov/marc/bibliographic/bd335.html
*/
public class Tag335 extends DataFieldDefinition {
private static Tag335 uniqueInstance;

private Tag335() {
initialize();
postCreation();
}

public static Tag335 getInstance() {
if (uniqueInstance == null)
uniqueInstance = new Tag335();
return uniqueInstance;
}

private void initialize() {
tag = "335";
label = "Extension Plan";
mqTag = "ExtensionPlan";
cardinality = Cardinality.Repeatable;
descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd335.html";

ind1 = new Indicator();
ind2 = new Indicator();

setSubfieldsWithCardinality(
"a", "Extension plan term", "NR",
"b", "Extension plan code", "NR",
"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",
"8", "Field link and sequence number", "R"
);

getSubfield("a")
.setMqTag("extensionPlanTerm");

getSubfield("b")
.setMqTag("extensionPlanCode");

getSubfield("0")
.setMqTag("authorityRecordControlNumber")
.setContentParser(RecordControlNumberParser.getInstance());

getSubfield("1")
.setMqTag("uri");

getSubfield("2")
.setBibframeTag("source")
.setCodeList(GenreFormCodeAndTermSourceCodes.getInstance());

getSubfield("3")
.setMqTag("materialsSpecified");

getSubfield("6")
.setBibframeTag("linkage")
.setContentParser(LinkageParser.getInstance());

getSubfield("8")
.setMqTag("fieldLink");

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import java.util.Arrays;

/**
* Projection Characteristics of Moving Image
* Moving Image Characteristics
* http://www.loc.gov/marc/bibliographic/bd345.html
*/
public class Tag345 extends DataFieldDefinition {
Expand All @@ -31,8 +31,8 @@ public static Tag345 getInstance() {
private void initialize() {

tag = "345";
label = "Projection Characteristics of Moving Image";
bibframeTag = "ProjectionCharacteristic";
label = "Moving Image Characteristics";
mqTag = "MovingImageCharacteristics";
cardinality = Cardinality.Repeatable;
descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd345.html";

Expand All @@ -42,6 +42,8 @@ private void initialize() {
setSubfieldsWithCardinality(
"a", "Presentation format", "R",
"b", "Projection speed", "R",
"c", "Aspect ratio value", "R",
"d", "Aspect ratio designator", "R",
"0", "Authority record control number or standard number", "R",
"1", "Real World Object URI", "R",
"2", "Source", "NR",
Expand All @@ -58,6 +60,12 @@ private void initialize() {
getSubfield("b")
.setBibframeTag("projectionSpeed");

getSubfield("c")
.setBibframeTag("aspectRatioValue");

getSubfield("d")
.setBibframeTag("aspectRatioDesignator");

getSubfield("0")
.setMqTag("authorityRecordControlNumber")
.setContentParser(RecordControlNumberParser.getInstance());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.gwdg.metadataqa.marc.definition.tags.tags3xx;

import de.gwdg.metadataqa.marc.definition.Cardinality;
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.parser.LinkageParser;
Expand Down Expand Up @@ -42,6 +43,8 @@ private void initialize() {

setSubfieldsWithCardinality(
"a", "Key", "NR",
"0", "Authority record control number or standard number", "R",
"1", "Real World Object URI", "R",
"3", "Materials specified", "NR",
"6", "Linkage", "NR",
"8", "Field link and sequence number", "R"
Expand All @@ -53,6 +56,13 @@ private void initialize() {
.setMqTag("rdf:value")
.setCompilanceLevels("M");

getSubfield("0")
.setMqTag("authorityRecordControlNumber")
.setContentParser(RecordControlNumberParser.getInstance());

getSubfield("1")
.setMqTag("uri");

getSubfield("3")
.setBibframeTag("materials");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,14 @@ private void initialize() {

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",
Expand Down Expand Up @@ -109,10 +100,12 @@ private void initialize() {
.setFrbrFunctions(DiscoveryObtain)
.setCompilanceLevels("A");

/*
getSubfield("b")
.setMqTag("accessNumber")
.setFrbrFunctions(DiscoveryObtain)
.setCompilanceLevels("A");
*/

getSubfield("c")
.setMqTag("compression")
Expand All @@ -129,6 +122,7 @@ private void initialize() {
.setFrbrFunctions(DiscoveryObtain)
.setCompilanceLevels("A");

/*
getSubfield("h")
.setMqTag("processor")
.setCompilanceLevels("A");
Expand All @@ -152,16 +146,19 @@ private void initialize() {
.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")
Expand All @@ -178,19 +175,23 @@ private void initialize() {
.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")
Expand Down Expand Up @@ -246,7 +247,16 @@ private void initialize() {
));

setHistoricalSubfields(
"g", "Uniform Resource Name [OBSOLETE, 2000]"
"g", "Uniform Resource Name [OBSOLETE, 2000]",
"b", "Access number [OBSOLETE, 2020]", // "R",
"h", "Processor of request [OBSOLETE, 2020]", // "NR",
"i", "Instruction [OBSOLETE, 2020]", // "R",
"j", "Bits per second [OBSOLETE, 2020]", // "NR",
"k", "Password [OBSOLETE, 2020]", // "NR",
"l", "Logon [OBSOLETE, 2020]", // "NR",
"n", "Name of location of host [OBSOLETE, 2020]", // "NR",
"r", "Settings [OBSOLETE, 2020]", // "NR",
"t", "Terminal emulation [OBSOLETE, 2020]"//, "R",
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package de.gwdg.metadataqa.marc.definition.tags.tags84x;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.TagDefinitionLoader;
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;
import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition;

import java.util.ArrayList;

/**
* Manifestation Statements
* http://www.loc.gov/marc/bibliographic/bd881.html
*/
public class Tag881 extends DataFieldDefinition {

private static Tag881 uniqueInstance;

private Tag881() {
initialize();
postCreation();
}

public static Tag881 getInstance() {
if (uniqueInstance == null)
uniqueInstance = new Tag881();
return uniqueInstance;
}

private void initialize() {
tag = "881";
label = "Manifestation Statements";
mqTag = "ManifestationStatements";
cardinality = Cardinality.Repeatable;
descriptionUrl = "https://www.loc.gov/marc/bibliographic/bd881.html";

ind1 = new Indicator();
ind2 = new Indicator();

setSubfieldsWithCardinality(
"a", "Manifestation statement, high-level/general", "R",
"b", "Manifestation identifier statement", "R",
"c", "Manifestation title and responsibility statement", "R",
"d", "Manifestation edition statement", "R",
"e", "Manifestation production statement", "R",
"f", "Manifestation publication statement", "R",
"g", "Manifestation distribution statement", "R",
"h", "Manifestation manufacture statement", "R",
"i", "Manifestation copyright statement", "R",
"j", "Manifestation frequency statement", "R",
"k", "Manifestation designation of sequence statement", "R",
"l", "Manifestation series statement", "R",
"m", "Manifestation dissertation statement", "R",
"n", "Manifestation regional encoding statement", "R",
"3", "Materials specified", "NR",
"6", "Linkage", "NR",
"8", "Field link and sequence number", "R"
);

getSubfield("a").setMqTag("statement");
getSubfield("b").setMqTag("identifier");
getSubfield("c").setMqTag("titleAndResponsibility");
getSubfield("d").setMqTag("edition");
getSubfield("e").setMqTag("production");
getSubfield("f").setMqTag("publication");
getSubfield("g").setMqTag("distribution");
getSubfield("h").setMqTag("manufacture");
getSubfield("i").setMqTag("copyright");
getSubfield("j").setMqTag("frequency");
getSubfield("k").setMqTag("designation");
getSubfield("l").setMqTag("series");
getSubfield("m").setMqTag("dissertation");
getSubfield("n").setMqTag("regionalEncoding");

getSubfield("3").setMqTag("materialsSpecified");

getSubfield("6")
.setBibframeTag("linkage")
.setContentParser(LinkageParser.getInstance());

getSubfield("8")
.setMqTag("fieldLink");

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ public void testStatistics() {
assertEquals( 8, statistics.keys().size());
assertEquals( 6, statistics.get(DataElementType.controlFields));
assertEquals( 226, statistics.get(DataElementType.controlFieldPositions));
assertEquals( 220, statistics.get(DataElementType.coreFields));
assertEquals( 222, statistics.get(DataElementType.coreFields));
assertEquals( 178, statistics.get(DataElementType.coreIndicators));
assertEquals(2444, statistics.get(DataElementType.coreSubfields));
assertEquals(2464, statistics.get(DataElementType.coreSubfields));
assertEquals( 183, statistics.get(DataElementType.localFields));
assertEquals( 28, statistics.get(DataElementType.localIndicators));
assertEquals( 865, statistics.get(DataElementType.localSubfields));
assertEquals(4150, statistics.total());
assertEquals(4172, statistics.total());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void testGetMarcPathByfunction() {
FrbrFunctionLister lister = new FrbrFunctionLister(MarcVersion.MARC21);
Map<FRBRFunction, List<String>> functions = lister.getMarcPathByfunction();
assertEquals(12, functions.size());
assertEquals(469, functions.get(FRBRFunction.DiscoveryObtain).size());
assertEquals(461, functions.get(FRBRFunction.DiscoveryObtain).size());
assertEquals(464, functions.get(FRBRFunction.DiscoverySearch).size());
assertEquals(360, functions.get(FRBRFunction.DiscoverySelect).size());
assertEquals(979, functions.get(FRBRFunction.DiscoveryIdentify).size());
Expand Down
Loading

0 comments on commit 5d3c669

Please sign in to comment.