I have once again updated my error checking modules. I believe I have
finished adding most of the new checks I wanted, though I have a few in mind
still. Among these, rewriting the 007 and 008 validation subroutines, adding
006 validation, additional punctuation checks (before title subfields in 6xx
and 7xx), check for underscores in fields (should not appear unless they
stand for the subfield delimiter), and geographic coding in 6xx vs. topical
coding, using a list of common geographic headings (e.g. if United States
appears in 650 subfield a, then error).

I am also working on a global subject heading replacement program, in
conjunction with my LCSH Weekly List Changes Parser.

I am considering distributing my modules (and scripts--probably in the same
tar.gz file) on CPAN, once I figure out how to do so (in an easy manner
using MacPerl). Before I do this, I am thinking my MARC::BBMARC module may
need a new name. Right now it is just named BBMARC for my initials+MARC. It
is a collection of functions with little in common, other than that they
help my MARC related .pls and .pms function. I should probably move the
validate007 and 008 functions to Lintadditions.pm and Errorchecks.pm, making
those modules more self-contained. Would it be advisable to change BBMARC's
name, and if so, do you have suggestions for a new name?

Changes:

(Aug. 22, 2004):

Module updates:

Errorchecks.pm (http://home.inwave.com/eija/bryanmodules/):

Version 1.02: Updated Aug. 11-22, 2004. Released Aug. 22, 2004.

-Implemented VERSION (uncommented) 
-Added check for presence of 040 (check_040present($record)).
-Added check for presence of 2 082s in full-level, 1 082 in CIP-level
records (check_082count($record)). 
-Added temporary (test) check for trailing punctuation in 240, 586, 440,
490, 246 (check_nonpunctendingfields($record)) 
--which should not end in punctuation except when the data ends in such. 
-Added check_fieldlength($record) to report fields longer than 1870 bytes. 
--This should be rewritten to use the length in the directory of the raw
MARC. 
-Fixed workaround in check_bk008_vs_bibrefandindex($record) (Thanks again to
Rich Ackerman). 

Lintadditions.pm (http://home.inwave.com/eija/bryanmodules/):

Version 1.04: Updated Aug. 10-22, 2004. Released Aug.22, 2004.

-Implemented VERSION (uncommented) 
-Revised check_050 exception (Thank you to all who posted about this). 
-Moved VERSION HISTORY to end of module. 
-Added preliminary checking of 245 2nd indicator in check_245 (Thanks to Ian
Hamilton). 

BBMARC.pm (http://home.inwave.com/eija/bryanmodules/):

Version 1.06: Updated Aug. 10-22, 2004. Released Aug. 15, 2004.

-Implemented VERSION (uncommented) 
-Added subroutine getcontrolstocknos() 
-General readability cleanup (added tabs) 
-Bug fix in validate008 for date2 check 

Planned (next release):

-Cleanup of validate008 (and validate007) 
--Standardization of error reporting 
--Material specific byte checking (bytes 18-34) abstracted to allow 006
validation. 

Added and changed scripts:

-Updated LCSH Changes Parser script, LCSHchangesparser2.txt
(http://home.inwave.com/eija/inprocess/LCSHchangesparser2.txt):
--Adds 500 to tag number if it is 1xx, so that it becomes 600-655, in
preparation for use in global replacement. 
--Misc. fixes.
-lintwithadditionsselective.txt
(http://home.inwave.com/eija/fullrecscripts/lintwithadditionsselective.txt)
--Similar to lintwithadditions, but designed to call only specific check_xxx
functions in either MARC::Lint or MARC::Lintadditions.
--This has been tested only minimally, but may see future use as a basis for
test files.
---------------------------------- 

As usual, I welcome comments, suggestions, questions, etc.

Thank you for your assistance,

Bryan Baldus
Cataloger
Quality Books, Inc.
[EMAIL PROTECTED]
http://home.inwave.com/eija

Reply via email to