Skip to content

Commit

Permalink
issue #124: adding KBR version and KBR related subfields.
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Jan 26, 2022
1 parent 40e8c5f commit e01cd49
Show file tree
Hide file tree
Showing 230 changed files with 2,066 additions and 9 deletions.
6 changes: 3 additions & 3 deletions catalogues/kbr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

. ./setdir.sh
NAME=kbr
MARC_DIR=${BASE_INPUT_DIR}/kbr
TYPE_PARAMS="--emptyLargeCollectors"
MASK=KBR_20210713_B_0?.mrc.gz
MARC_DIR=${BASE_INPUT_DIR}/kbr/current
TYPE_PARAMS="--emptyLargeCollectors --marcVersion KBR --marcxml --ignorableFields 590,591,592,593,594,595,596,659,900,911,912,916,940,941,942,944,945,946,948,949,950,951,952,953,954,970,971,972,973,975,977,988,989"
MASK=kbr-*.gz

. ./common-script

Expand Down
3 changes: 2 additions & 1 deletion common-script
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ do_export_schema_files() {
./export-schema --withSubfieldCodelists > marc-schema/marc-schema.json
./export-schema --withSubfieldCodelists --solrFieldType human-readable --withSelfDescriptiveCode > marc-schema/marc-schema-with-solr.json
./export-schema --withSubfieldCodelists --solrFieldType human-readable --withSelfDescriptiveCode --withLocallyDefinedFields > marc-schema/marc-schema-with-solr-and-extensions.json
printf "%s %s> files generated at marc-schema\n" $(date +"%F %T")
}

do_all_analyses() {
Expand Down Expand Up @@ -326,7 +327,7 @@ commands:
prepare-solr prepare indexing
index indexing with Solr
sqlite import tables to SQLite
recreate-schema-files recreate schema files
export-schema-files export schema files
all-analyses run all analitical tasks
all-solr run all indexing tasks
all run all tasks
Expand Down
1 change: 1 addition & 0 deletions src/main/java/de/gwdg/metadataqa/marc/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public static MarcVersion package2version(String packageName) {
case "nkcrtags": version = MarcVersion.NKCR; break;
case "uvatags": version = MarcVersion.UVA; break;
case "b3kattags": version = MarcVersion.B3KAT; break;
case "kbrtags": version = MarcVersion.KBR; break;
default: version = MarcVersion.MARC21; break;
}
return version;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ private Record getNextMarc4jRecord(int i, String lastKnownId, MarcReader reader)
logger.severe(
String.format(
"MARC record parsing problem at record #%d (last known ID: %s): %s",
(i +1), lastKnownId, e.getLocalizedMessage()));
(i + 1), lastKnownId, e.getLocalizedMessage()));
} catch (Exception e) {
logger.log(Level.SEVERE, "start", e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum MarcVersion {
MARC21NO("MARC21NO", "MARC21 profile for Norwegian public libraries"),
UVA( "UVA", "University of Amsterdam"),
B3KAT( "B3KAT", "B3Kat union catalogue of Bibliotheksverbundes Bayern (BVB) and Kooperativen Bibliotheksverbundes Berlin-Brandenburg (KOBV)"),
KBR( "KBR", "KBR"),
;

String code;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ public void putVersionSpecificSubfields(MarcVersion marcVersion,
versionSpecificSubfields.put(marcVersion, subfieldDefinitions);
}

public Map<MarcVersion, List<SubfieldDefinition>> getVersionSpecificSubfields() {
return versionSpecificSubfields;
}

public boolean hasVersionSpecificSubfields(MarcVersion marcVersion) {
return versionSpecificSubfields.containsKey(marcVersion);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package de.gwdg.metadataqa.marc.definition.tags.holdings;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.structure.Indicator;
import de.gwdg.metadataqa.marc.definition.general.codelist.HoldingSchemeSourceCodes;
import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser;
import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition;

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -75,5 +80,11 @@ private void initialize() {
getSubfield("8")
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess);

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

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

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -62,5 +67,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.structure.Indicator;
import de.gwdg.metadataqa.marc.definition.general.codelist.CountryCodes;
import de.gwdg.metadataqa.marc.definition.general.codelist.OrganizationCodes;
import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser;
import de.gwdg.metadataqa.marc.definition.general.parser.YYYYMMDDDateParser;
import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition;

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -92,5 +97,11 @@ private void initialize() {
getSubfield("8")
.setMqTag("fieldLink")
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.structure.Indicator;
import de.gwdg.metadataqa.marc.definition.general.codelist.NationalBibliographyNumberSourceCodes;
import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser;
import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition;

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -75,5 +80,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

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

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -71,5 +76,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.structure.Indicator;
import de.gwdg.metadataqa.marc.definition.general.codelist.CopyrightAndLegalDepositNumberSourceCodes;
import de.gwdg.metadataqa.marc.definition.general.parser.LinkageParser;
import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition;

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -99,5 +104,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

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

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -60,5 +65,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,5 +90,11 @@ private void initialize() {
putVersionSpecificSubfields(MarcVersion.DNB, Arrays.asList(
new SubfieldDefinition("9", "ISBN mit Bindestrichen", "R")
));

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

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

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -106,5 +111,11 @@ private void initialize() {
"b", "Form of issue [OBSOLETE] [CAN/MARC only]",
"c", "Price [OBSOLETE] [CAN/MARC only]"
);

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -123,5 +123,11 @@ private void initialize() {
putVersionSpecificSubfields(MarcVersion.DNB, Arrays.asList(
new SubfieldDefinition("9", "Standardnummer (mit Bindestrichen)", "NR")
));

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

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

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -50,5 +55,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

import de.gwdg.metadataqa.marc.definition.Cardinality;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.structure.Indicator;
import de.gwdg.metadataqa.marc.definition.general.codelist.FingerprintSchemeSourceCodes;
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.SubfieldDefinition;

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -97,5 +102,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package de.gwdg.metadataqa.marc.definition.tags.tags01x;

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

import java.util.Arrays;

import static de.gwdg.metadataqa.marc.definition.FRBRFunction.*;

/**
Expand Down Expand Up @@ -69,5 +74,11 @@ private void initialize() {
.setMqTag("fieldLink")
.setFrbrFunctions(ManagementIdentify, ManagementProcess)
.setCompilanceLevels("O");

putVersionSpecificSubfields(MarcVersion.KBR, Arrays.asList(
new SubfieldDefinition("*", "Link with identifier", "NR"),
new SubfieldDefinition("@", "Language of field", "NR"),
new SubfieldDefinition("#", "number/occurrence of field", "NR")
));
}
}
Loading

0 comments on commit e01cd49

Please sign in to comment.