NAME and DESCRIPTION

MARC::Lint::CodeData -- Contains codes from the MARC code lists for Geographic Areas, Languages, and Countries.

Code data is used for validating fields 008, 040, 041, and 043.

Also, sources for subfield 2 in 600-651 and 655.

Stores codes in hashes, %MARC::Lint::CodeData::[name].

Note: According to the official MARC documentation, Sears is not a valid 655 term. The code data below treats it as valid, in anticipation of a change in the official documentation.

SYNOPSIS

use MARC::Lint::CodeData;

#Should provide access to the following: #%MARC::Lint::CodeData::GeogAreaCodes; #%MARC::Lint::CodeData::ObsoleteGeogAreaCodes; #%MARC::Lint::CodeData::LanguageCodes; #%MARC::Lint::CodeData::ObsoleteLanguageCodes; #%MARC::Lint::CodeData::CountryCodes; #%MARC::Lint::CodeData::ObsoleteCountryCodes; #%MARC::Lint::CodeData::Sources600_651; #%MARC::Lint::CodeData::ObsoleteSources600_651; #%MARC::Lint::CodeData::Sources655; #%MARC::Lint::CodeData::ObsoleteSources655;

#or, import specific code list data use MARC::Lint::CodeData qw(%GeogAreaCodes);

my $gac = "n-us---"; my $validgac = 1 if ($GeogAreaCodes{$gac}); print "Geographic Area Code $gac is valid\n" if $validgac;

EXPORT

None by default. @EXPORT_OK: %GeogAreaCodes, %ObsoleteGeogAreaCodes, %LanguageCodes, %ObsoleteLanguageCodes, %CountryCodes, %ObsoleteCountryCodes, %Sources600_651, %ObsoleteSources600_651, %Sources655, %ObsoleteSources655.

TO DO

Update codes as needed (see http://www.loc.gov/marc/).

Add other codes for MARC Code Lists for Relators, Sources, Description Conventions.

Determine what to do about 600-655 codes with indicators (cash, lcsh, lcshac, mesh, nal, and rvm). Currently, these are duplicated in valid and obsolete hashes. Validation routines should probably treat these differently due to large numbers of records using these codes, created before the indicators were allowed.

Determine whether three blank spaces should be in the LanguageCodes (for 008 validation) or not. If it is here, then 041 would be allowed to have three blank spaces as a valid code (though other checks would report the error--spaces at the beginning and ending of a subfield and multiple spaces in a field where such a thing is not allowed).

SEE ALSO

MARC::Lint

MARC::Lintadditions (for check_040, check_041, check_043 using these codes)

MARC::Errorchecks (for 008 validation using these codes)

http://www.loc.gov/marc/ for the official code lists.

The following (should be included in the distribution package for this package): countrycodelistclean.pl gaccleanupscript.pl languagecodelistclean.pl The scripts above take the MARC code list ASCII version as input. They output tab-separated codes for updating the data below.

VERSION HISTORY

Version 1.18: Updated Aug. 14, 2007.

-Added new source codes from Technical Notice of Aug. 13, 2007.

Version 1.17: Updated July 16, 2007.

-Added new source codes from Technical Notice of July 13, 2007.

Version 1.16: Updated Apr. 18, 2007.

-Added new source codes from Technical Notice of Apr. 5, 2007.

Version 1.15: Updated Feb. 28, 2007.

-Added new country and geographic codes from Technical Notice of Feb. 28, 2007.
-Added 'yu ' to list of obsolete codes.

Version 1.14: Updated Jan. 8, 2007.

-Added new source codes from Technical Notice of Jan. 5, 2007.

Version 1.13: Updated Nov. 19, 2006.

-Added new source codes from Technical Notice of Nov. 14, 2006.

Version 1.12: Updated Oct. 20, 2006.

-Added new source code from Technical Notice of Oct. 19, 2006.

Version 1.11: Updated Oct. 18, 2006.

-Added new source codes from Technical Notice of Oct. 17, 2006.

Version 1.10: Updated Aug. 30, 2006.

-Added new source codes from Technical Notice of Aug. 29, 2006.

Version 1.09: Updated June 26, 2006.

-Added new source codes from Technical Notice of June 23, 2006.

Version 1.08: Updated May 30, 2006.

-Added new source codes from Technical Notice of May 26, 2006.

Version 1.07: Updated Mar. 13, 2006.

-Added new source codes from Technical Notice of Mar. 10, 2006.

Version 1.06: Updated Feb. 23, 2006.

-Added new language codes from Technical Notice of Feb 23, 2006.
-Alphabetized language codes.

Version 1.05: Updated Jan. 11, 2006.

-Added new sources codes from Technical Notice of Jan. 10, 2006.

Version 1.04: Updated Oct. 13, 2005.

-Added new sources codes from Technical Notice of Oct. 12, 2005.

Version 1.03: Updated Aug. 31, 2005.

-Added new language codes for Ainu and Southern Altai (August 30, 2005 technical notice)

Version 1.02: Updated June 21-July 12, 2005. Released (to CPAN) with new version of MARC::Errorchecks.

-Added GAC and Country code changes for Australia (July 12, 2005 update)
-Added 6xx subfield 2 source code data for June 17, 2005 update.
-Updated valid Language codes to June 2, 2005 changes.

Version 1.01: Updated Jan. 5-Feb. 10, 2005. Released (to CPAN) Feb. 13, 2005 (with new version of MARC::Errorchecks).

-Added code list data for 600-651 subfield 2 and for 655 subfield 2 sources.
-Updated codes based on changes made Jan. 19 (languages), Feb. 2 (sources), Feb. 9 (sources). 

Version 1.00 (original version): First release, Dec. 5, 2004. Uploaded to SourceForge CVS, Jan. 3, 2005. -Included in MARC::Errorchecks distribution on CPAN. -Used by MARC::Lintadditions.

LICENSE

This code may be distributed under the same terms as Perl itself.

Please note that this module is not a product of or supported by the employers of the various contributors to the code.

AUTHOR

Bryan Baldus eijabb@cpan.org

Copyright (c) 2004-2007.