Tuesday, August 24, 2004

ISBN Checking

A few days ago I asked about batch checking the validity of ISBNs. I got a few comments giving some solutions. Another solution came by e-mail. I have received permission to post it, so that anyone else interested in an answer can benefit.
I saw the above posted on your Catalogablog site. As you may have seen in my postings on Autocat, Perl4Lib or one of the other lists, I have been writing a number of error checking subroutines in Perl, similar to the checks performed by MARC::Lint in the MARC::Record distribution.

One of the subroutines, check_020, in my MARC::Lintadditions module [1] may be of assistance. Business::ISBN could be used to take care of mass-ISBN checking, without my modules, see the subroutine check_020 in Lintadditions.

I have a script, lintwithadditionsselective.pl [2] that should be able to be easily adapted to check only 020s, though I haven't had time to test that yet. I've been running the whole lintallchecks.pl [3] set of error checks (which uses both Lintadditions.pm (for single-field checking, in the same way as MARC::Lint), and Errorchecks.pm (MARC::Errorchecks.pm) [1].

Requirements: Perl. MARC::Record, Business::ISBN, Business::ISSN (from CPAN). All of my modules and scripts rely upon my MARC::BBMARC module [1].

My scripts [2 and 3] rely upon a stand-alone file of raw MARC records, but the checking functions (for Lintadditions, anyway) should work the same as MARC::Lint.

Installation: I haven't had time to develop an automated installation process. I have been simply placing my modules in the same directory as Record.pm from MARC::Record (in Perl/site/lib/MARC/).

See my Web pages for more information.

  1. My Lintadditions.pm (as well as Errorchecks.pm and BBMARC modules)
  2. Selective Lintadditions checks
  3. Lint all checks
Please let me know if this was unclear. Hope this helps,

Bryan Baldus
Cataloger (Quality Books Inc.)

No comments: