March 2, 2018

ISBD punctuation in MARC21

Inconsistent or wrong punctuation is an eyesore for caloguers. Originally designed to fascilitate metadata display in card catalogues, it is currently used in parallel to MARC subfield coding to designate different parts of the bibliographic description.

The International Standard Bibliographic Description (ISBD) is widely used amond cataloguing agencies and libraries as it provides rules for punctuation between and within the individual fields of the MARC record. ISBD compliance is arguably time-consuming and redundant. Hence, the PCC ISBD and MARC Task Group are currently testing the use of limited ISBD punctuation in bibliographic records (announcement made on February 6, 2018).

Whether proofing and/or removing ISBD punctuation, using regular expressions can be very useful for matching and batch editing it MARC21 (RDA) records.

Regex expressions you can use to implement the proposed LC and OCLC’s modification specifications.

Note that ISBD punctuation preceeds (or encloses) each subfield (apart from the first one).

Note that in RDA it is optional for record displays to use ISBD punctuation, so it is typycaly set to

000 Leader/ 18 - Descriptive cataloguing form  
i - ISBD punctuation included  

Unless punctuation is to be removed, in which case it is recommended to be set to

000 Leader/ 18 - Descriptive cataloguing form  
n - Non-ISBD punctuation omitted  
c - ISBD punctuation omitted 

LC modification specification

  1. Remove the following punctuation , ; : + . = / at the end of the field and subfields for the following MARC tags: 245, 250, 260, 264, 300, 440, 490, 533, 655, 776

    • Step 1

      Find

      ^=(245|250|260|264|300|440|490|533|655|776)(\s{2}[0-9\\]{0,2}\$)(.+)(?:[\.,;:\+\=/]$)
      

      Replace

      =$1$2$3
      
    • Step 2 : Execute x-number of times, where x is determined by the number of subfields in each of the above fields, until no modifications occure.

      Find

      (((?=\=(245|250|260|264|300|440|490|533|655|776)(\s{2}[0-9\\]{0,2}\$))(.+?))([\.,;:+=/]\$))
      

      Replace

      $2$  
      
  2. Remove the following punctuation , ; : + . = / at the end of the fields for the following MARC tags: 100, 110, 111, 130, 240, 246, 263, 336, 337, 338, 350, 500, 504, 505, 520, 521, 546, 588, 600, 610, 611, 630, 648, 650, 651, 653, 700, 710, 730, 740, 800, 810, 830, 856, 880.

    Find

    ^=(100|110|111|130|240|246|263|336|337|338|350|500|504|505|520|521|546|588|600|610|611|630|648|650|651|653|700|710|730|740|800|810|830|856|880)(\s{2}[0-9\\]{0,2}\$)(.+)(?:[\.,;:\+\=/]$)
    

    Replace

    =$1$2$3
    
  3. If there was a content designation error in a record the punctuation would not be removed because our program (MARC Edit) would miss it.

    Content desgnators are separated in a capture group (\s{2}[0-9\\]{0,2}\$), and remain unchanged.
    

© 2019 Miglena Minkova