Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    How does tab_subfield_punctuation work?

    • Article Type: General
    • Product: Aleph
    • Product Version: 18 and up

    Description:


    Adding entries to tab_subfield_punctuation (in the xxx01 library's $data_tab directory) doesn't always seem to change the punctuation of records that are edited or added. How does all the columns in the table work together?

     


    Resolution:


    Most of the columns in tab_subfield_punctuation are easily understood and well-documented. However, there are some aspects of its use that are neither.

    The first column always contains an "A", meaning that punctuation is updated from the authority database. In other words, if the current field matches an authority record, the entire current heading is replaced with the authorized form of the heading from the authority record, then, after that, any additional punctuation changes from tab_subfield_punctuation are made. If the current field does not match an authority record, no changes are made to the field at all.

    Column 4 is described as "Following sub-field code". This, along with the tag/indicators of column 2, the sub-field code from column 3, and the "if" punctuation from column 6 determines when a table line is used. The value in column 4 can be the subfield code for the following subfield, a blank for when the subfield is the final one in the field, or a "#" number sign/hash for any following subfield.

    The value in column 6 is called "If punctuation", meaning that if the subfield already ends with **any** of the punctuation marks in this list, no new punctuation will be added.

    Take the following table entries as an example:
    ! 2 3 4 5 6
    !-!!!!!-!-!-!!!!!!!!!!-!!!!!!!!!!
    A 600## a b . ).
    A 7#### a # . -).


    The first line ("A 600## a b . ).") will be consulted when the following condition are met:
    * the field matches an authority record heading ("A")
    * the field is changed in some way to match the authorized heading
    * the field has a 600 tag with any indicators (the "600##" part)
    * the current subfield is "a"
    * there is a following subfield, which is $$b
    * the subfield does not already end with either a close paren (")") or a period/full stop (".")

    The second line ("A 7#### a # . -).") will be consulted when the following conditions are met:
    * the field matches an authority record heading
    * the field is changed in some way to match the authorized heading
    * the field is a 7XX tag with any indicators
    * the curent subfield is "a"
    * the current subfield can be the last subfield or is followed by any subfield
    * the subfield does not already end with "-", ")" or "."

    One thing that may throw you off is that the field must be changed in some way by the matching authority record heading. If the field is not changed, no punctuation changes will be made. For example, suppose you have a 710 field like this:
    7101 L $$aUnited States.$$bSecurities and Exchange Commission
    and there is an authority record with a 110 field like this:
    11010 L $$aUnited States.$$bSecurities and Exchange Commission

    Note that both of these fields has a period following the subfield a ("United States"), but none following the subfield b. In the bib record, you want a period added to the end of the subfield b, so you add this entry to tab_subfield_punctuation:
    A 7#### b . -).

    You might think that a period will be added because:

    * the current field is a 7XX field
    * it matches an authority record heading
    * the current subfield is $$b
    * the $$b is the last subfield in the field
    * the subfield does not already end with "-", ")" or "."

    In this case, however, no period will be added to the end of the subfield b, because the authority heading has not changed the text of the heading in any way; it already matches the authority heading.

    However, if you have the exact same situation except you remove the period after "United States", i.e.:
    7101 L $$aUnited States$$bSecurities and Exchange Commission

    The result will be like this:
    7101 L $$aUnited States.$$bSecurities and Exchange Commission.

    In matching the authority record, the text is replaced with the authorized form (which has a period after United States). Even this minimal change is sufficient to trigger looking at the tab_subfield_punctuation table, which will then add a period to the end of the subfield b.

    A second thing that may be problematic is that the use of "#" in column 4 is not clearly documented. So, if you always want a period after "United States" in the subfield a of a 610 field, you may want to add an entry to tab_subfield_punctuation with a "#" in column 4 of that line, e.g.:
    A 610## a # . ).

    Suppose you have added this line to tab_subfield_punctuation and you have an authority record with a 110 like this:
    11010 L $$aUnited States

    Then, you update or add a record with a 610 like this:
    61020 L $$aUnited States.

    When the heading is matched against the authority record, it removes the period after "United States". But, because tab_subfield_punctuation has an entry for this case, it will add the period back.


    • Article last edited: 25-April-2016