[Koha-cvs] CVS: koha-doc/en/sysadmin/migration holdings.xml,NONE,1.1

skemotah shedges at users.sourceforge.net
Tue Aug 23 01:50:37 CEST 2005


Update of /cvsroot/koha/koha-doc/en/sysadmin/migration
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31209

Added Files:
	holdings.xml 
Log Message:
Initial xml markup

--- NEW FILE ---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<article>
  <title>MARC Holdings, Koha, and Migration</title>

  <articleinfo>
    <pubdate>2005-08-21</pubdate>

    <author>
      <firstname>Thomas</firstname>

      <surname>Dukleth</surname>

      <email>kohadocs AT agogme.com</email>
    </author>

    <copyright>
      <year>2005</year>

      <holder>Thomas Dukleth</holder>
    </copyright>

    <legalnotice>
      <para>This document is related to Koha and is licensed to you under the
      GNU General Public License version 2 or later (<ulink
      url="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</ulink>).</para>

      <para>Koha-related documents may be reproduced and distributed in whole
      or in part, in any medium physical or electronic, as long as this
      copyright notice is retained on all copies.</para>

      <para>You may create a derivative work and distribute it provided that
      you:</para>

      <orderedlist>
        <listitem>
          <para>License the derivative work with this same license, or the
          Linux Documentation Project License (<ulink
          url="http://www.tldp.org/COPYRIGHT.html">http://www.tldp.org/COPYRIGHT.html</ulink>).
          Include a copyright notice and at least a pointer to the license
          used.</para>
        </listitem>

        <listitem>
          <para>Give due credit to previous authors and major
          contributors.</para>
        </listitem>
      </orderedlist>

      <para>Commercial redistribution is allowed and encouraged; however, the
      author would like to be notified of any such distributions.</para>

      <para>No liability for the contents of this document can be accepted.
      Use the concepts, examples and information at your own risk. There may
      be errors and inaccuracies, that could be damaging to your system.
      Proceed with caution, and although this is highly unlikely, the
      author(s) do not take any responsibility.</para>

      <para>All copyrights are held by their respective owners, unless
      specifically noted otherwise. Use of a term in this document should not
      be regarded as affecting the validity of any trademark or service mark.
      Naming of particular products or brands should not be seen as
      endorsements.</para>
    </legalnotice>

    <revhistory>
      <revision>
        <revnumber>2.2.3</revnumber>

        <date>2005-08-21</date>

        <revdescription>
          <para>Initial XML markup.</para>
        </revdescription>
      </revision>
    </revhistory>
  </articleinfo>

  <abstract>
    <para>Things that you were afraid to ask about MARC holdings in Koha with
    a MARC 21 to Koha holdings table mapping.</para>
  </abstract>

  <section>
    <title>Current Koha Holdings Model</title>

    <para>Koha has adopted a holdings implementation modelled on the French
    Recommendation 995, <ulink
    url="http://www.adbdp.asso.fr/outils/infogestion/r995.htm">http://www.adbdp.asso.fr/outils/infogestion/r995.htm</ulink>.
    Using this model, holdings information for one record is retained in one
    and only one repeatable local use field within the bibliographic record.
    Using Koha with MARC 21, any single field may be adapted for that purpose.
    952 is the Koha default implemented at the largest Koha implementation at
    the time of this writing, Nelsonville Public Library.</para>
  </section>

  <section>
    <title>Recommended Changes to Koha</title>

    <section>
      <title>Changes to the Koha SQL Data Types</title>

      <para>At the time of this writing, the default SQL sets
      <varname>items.itemcallnumber</varname> to
      <parameter>VARCHAR(30)</parameter>. Changing the data type to
      <parameter>VARCHAR(100)</parameter> may be more helpful if you have long
      call numbers. Call numbers with lengthy prefix or suffix strings may
      otherwise be truncated.</para>

      <para>Similar changes to support large <parameter>VARCHAR</parameter>
      data types should be made to
      <varname>biblioitems.classification</varname>,
      <varname>biblioitems.dewey</varname>, and
      <varname>biblioitems.subclass</varname>, if you decide to use them. The
      current default SQL sets <varname>biblioitems.dewey</varname> to a poor
      choice for data type.</para>
    </section>

    <section>
      <title>Koha Template Call Number Use</title>

      <para>All the templates may be adjusted to use
      <varname>items.itemcallnumber</varname> as a sensible choice for MARC
      format Koha. If that is done, it is not necessary to map any MARC
      field/subfield to <varname>biblioitems.classification</varname>,
      <varname>biblioitems.dewey</varname>, or
      <varname>biblioitems.subclass</varname> in <emphasis>System
      Administration : MARC Links</emphasis>.</para>
    </section>
  </section>

  <section>
    <title>MARC 21 to Koha Holdings Mappings</title>

    <note>
      <para>Corrected generally, and with reference to information about Koha
      tables that Chris Cormack and Paul Poulain gave to me over IRC. Thank
      you Chris and Paul.</para>
    </note>

    <para>Yes, this is missing a mapping for other tables that might be part
    of the migration process. Mapping to the Koha items table for MARC 21
    holdings is the only issue treated here.</para>

    <para>Mapping existing standard data to a MARC 21 local use field is
    necessary when migrating holdings to Koha. Using the
    <filename>MARC::Record</filename> Perl module or some other tool to remap
    records prior to importing with <filename>bulkmarkimport.pl</filename>
    will most likely be necessary. If you need assistance beyond what may be
    provided on the Koha listserve, <ulink
    url="http://www.koha.org/mailing/">http://www.koha.org/mailing/</ulink>,
    consider options for commercial support, <ulink
    url="http://www.koha.org/installation/support.html">http://www.koha.org/installation/support.html</ulink>.</para>

    <para>The following is based on standard usage of MARC 21 holdings stored
    in a MARC bibliographic format record. If you require complex serials
    holdings records as described in later sections of this document, Koha is
    not yet ready to manage your holdings. If that is the case, you may choose
    to develop the necessary changes locally and contribute them back to the
    Koha code base or you may choose to contribute support to sponsoring the
    development of the necessary changes.</para>

    <para>If your existing system now stores the required values in another
    field/subfield location presently, this mapping must be adjusted for your
    records. If using the default local use field 952, the following may be a
    common mapping. Be certain to construct unique 952 fields populated from
    the corresponding $t, if present. Mappings with multiple subfields listed
    should have all listed subfields mapped to the corresponding local use 952
    subfield where the last populated subfield value would overwrite any
    previous populated value for that local use 952 subfield.</para>

    <itemizedlist>
      <listitem>
        <para>Map <emphasis role="bold">852 $t</emphasis>, <emphasis
        role="bold">876 $t</emphasis>, <emphasis role="bold">877
        $t</emphasis>, and <emphasis role="bold">878 $t</emphasis> to
        <emphasis role="bold">952 $t</emphasis> for a nonexistent
        <varname>items.copynumber</varname> column. (If you have been using
        $3, you should find some way of combining $t with $3 to form a unique
        whole number.) Do not link <varname>items.itemnumber</varname> to a
        MARC subfield, not even 952 $t in the MARC to Koha links to avoid
        possible loss of data. Koha will assign a unique itemnumber to your
        items with no help from your old records. If you need to maintain your
        existing copy numbers in a Koha table, create a new column in Koha for
        representing that information, such as
        <varname>items.copynumber</varname>, and programme a solution. You
        could append copy numbers to an appropriate subfield accompanied by a
        text label 'copy ' within an existing value such as call number, given
        below, and suppress appending in cases where only one copy
        exists.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">852 $p</emphasis>, <emphasis
        role="bold">876 $p</emphasis>, <emphasis role="bold">877
        $p</emphasis>, and <emphasis role="bold">878 $p</emphasis> to
        <emphasis role="bold">952 $p</emphasis> for
        <varname>items.barcode</varname>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">541 $d</emphasis>;
        <emphasis>or</emphasis> <emphasis role="bold">876 $d</emphasis>,
        <emphasis role="bold">877 $d</emphasis>, and <emphasis role="bold">878
        $d</emphasis> to <emphasis role="bold">952 $d</emphasis> for
        <varname>items.dateaccessioned</varname>. Be certain to convert to the
        date format that you have chosen in <emphasis>Koha System
        Administration : Preferences : Date Format</emphasis>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">850 $a</emphasis>, <emphasis
        role="bold">852 $a</emphasis>, or <emphasis role="bold">852
        $b</emphasis> to <emphasis role="bold">952 $b</emphasis> for
        <varname>items.homebranch</varname>. Be certain to convert to the 4
        character all caps code as defined for Koha branches in <emphasis>Koha
        System Administration : Branches</emphasis>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">541 $h</emphasis>; or <emphasis
        role="bold">876 $c</emphasis>, <emphasis role="bold">877
        $c</emphasis>, and <emphasis role="bold">878 $c</emphasis> to
        <emphasis role="bold">952 $o</emphasis> for
        <varname>items.price</varname>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">365 $b</emphasis>;
        <emphasis>or</emphasis> <emphasis role="bold">876 $c</emphasis>,
        <emphasis role="bold">877 $c</emphasis>, and <emphasis role="bold">878
        $c</emphasis> to <emphasis role="bold">952 $u</emphasis> for
        <varname>items.replacementprice</varname>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">365 $f</emphasis> to <emphasis
        role="bold">952 $r</emphasis> for
        <varname>items.replacementpricedate</varname>. Be certain to convert
        to the date format that you have chosen in <emphasis>Koha System
        Administration : Preferences : Date Format</emphasis>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">852 $b</emphasis> to <emphasis
        role="bold">952 $d</emphasis> for
        <varname>items.holdingbranch</varname>. Be certain to convert to the 4
        character all capitals code as defined for Koha branches in
        <emphasis>Koha System Administration : Branches</emphasis>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">506 $a</emphasis>, <emphasis
        role="bold">876 $h</emphasis>, <emphasis role="bold">877
        $h</emphasis>, and <emphasis role="bold">878 $h</emphasis> to
        <emphasis role="bold">952 $y</emphasis> for
        <varname>items.notforloan</varname>. Be certain to convert to an
        integer where NULL or 0 is for loan and 1 is not for loan.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">876 $j</emphasis>, <emphasis
        role="bold">877 $j</emphasis>, and <emphasis role="bold">878
        $j</emphasis> to <emphasis role="bold">952 $1</emphasis> for
        <varname>items.itemlost</varname>. Be certain to convert to an integer
        where NULL or 0 is not lost, 1 is lost and paid or by the party
        responsible for losing the item, and 2 is lost with no payment
        yet.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">876 $j</emphasis>, <emphasis
        role="bold">877 $j</emphasis>, and <emphasis role="bold">878
        $j</emphasis> to <emphasis role="bold">952 $w</emphasis> for
        <varname>items.withdrawn</varname>. Be certain to convert to an
        integer where NULL or 0 is not withdrawn and 1 is restricted.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">852 $k</emphasis>, <emphasis
        role="bold">852 $h</emphasis>, <emphasis role="bold">852
        $i</emphasis>, and <emphasis role="bold">852 $m</emphasis>
        concatenated together sequentially, with separating spaces to join
        them where needed, to <emphasis role="bold">952 $h</emphasis> for
        <varname>items.itemcallnumber</varname>.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">506 $a</emphasis>, <emphasis
        role="bold">876 $j</emphasis>, <emphasis role="bold">877
        $j</emphasis>, and <emphasis role="bold">878 $j</emphasis> to
        <emphasis role="bold">952 $4</emphasis> for
        <varname>items.restricted</varname>. Be certain to convert to an
        integer value where NULL or 0 is not restricted and 1 is
        restricted.</para>
      </listitem>

      <listitem>
        <para>Map <emphasis role="bold">852 $c</emphasis>, <emphasis
        role="bold">856 $u</emphasis>, <emphasis role="bold">876
        $l</emphasis>, <emphasis role="bold">877 $l</emphasis>, and <emphasis
        role="bold">878 $l</emphasis> to <emphasis role="bold">952
        $c</emphasis> for <varname>items.location</varname>.</para>
      </listitem>
    </itemizedlist>

    <para>After your mappings are complete, be certain to set them for the
    Koha items table in <emphasis>System Administration : MARC
    Links</emphasis>. There should be no mapping to any items table column not
    given in the mapping above to avoid possible data corruption with
    automatically populated key columns or senseless use of orphan
    columns.</para>
  </section>

  <section>
    <title>MARC 21 Holdings</title>

    <para>MARC 21 bibliographic has always provided multiple holdings fields.
    MARC 21 holdings format for storing holdings information in a separate
    record follows the original introduction of the USMARC holdings format in
    1996. Despite the holding standard for MARC 21, some systems have
    continued to implement nonstandard local use holdings fields and
    subfields. Certainly, some information often not considered to apply well
    to standard holdings fields or not provided in the standard at all
    requires local use field or subfield implementation. Koha's use of a local
    use field for holdings is certainly not exceptional. At the beginning of
    2005, OCLC announced their plan to implement holdings in separate holdings
    format records by year's end.</para>

    <para>In the the MARC 21 bibliographic format, as in the MARC 21 holdings
    format, copy number $t is the linking subfield for identifying the
    particular copy across multiple holdings fields. For those cases where a
    subset of the copy is required, materials specified $3 is the linking
    subfield for identifying the subset. Control number for related
    bibliographic record 004 in MARC 21 holdings identifies the control number
    001 for the corresponding MARC 21 bibliographic record on the same system.
    System control number 035 in MARC 21 holdings matches 035 in MARC 21
    bibliographic on the same system for identifying the control number 001
    for a bibliographic record obtained from another system.</para>

    <section>
      <title>MARC 21 Serials Holdings</title>

      <para>MARC 21 holdings fields from both MARC 21 bibliographic records
      and MARC 21 holdings records allow storing complex serials holdings
      information in a format that is easy for machines to parse, although
      difficult for humans to read. Display presentation and complementary
      textual holdings fields allow for easy human readability of complex
      serials holdings.</para>

      <para>Complex serials holdings can be stored in the following
      fields:<itemizedlist>
          <listitem>
            <para>Captions and patterns fields 853-855</para>
          </listitem>

          <listitem>
            <para>Enumeration and chronology fields 863-865</para>
          </listitem>

          <listitem>
            <para>The simpler textual holdings fields 866-868</para>
          </listitem>
        </itemizedlist>853-855, 863-865, 866-868, and item information fields
      876-878 are linked together by field link and sequence number $8. If the
      enumeration and chronology fields 863-865 are not used, then location
      852 or textual holdings fields 866-868 are linked to item information
      fields 876-878 by $3.</para>

      <para>The all-holdings-in-one-local-use-field model that Koha uses based
      on Recommendation 995 only allows for simpler format textual holdings
      that are easy for humans to read but difficult for machines to parse. At
      some future time, when Koha needs to support more complex needs, of
      academic libraries or other libraries with complex serials holdings, or
      to provide for the configuration of OpenURL resolvers, this issue should
      be addressed.</para>
    </section>
  </section>

  <section>
    <title>UNIMARC Holdings</title>

    <para>UNIMARC had omitted holdings support from the bibliographic format.
    Implementers used local use fields or some other means for holdings
    information. The French government supported Recommendation 995 for public
    libraries. In 2004, the IFLA approved a UNIMARC holdings format as a
    separate record from the linked bibliographic record, <ulink
    url="http://www.ifla.org/VI/8/projects/UNIMARC-HoldingsFormat04.pdf">http://www.ifla.org/VI/8/projects/UNIMARC-HoldingsFormat04.pdf</ulink>.
    Paul Poulain reports that the UNIMARC holdings format has not yet been
    adopted by any ILS that he knows.</para>

    <para>Related bibliographic control number 004 in UNIMARC holdings
    identifies the control number 001 for the corresponding UNIMARC
    bibliographic record on the same system. Other system control number 035
    in UNIMARC holdings matches 035 in UNIMARC bibliographic on the same
    system for identifying the control number 001 for a bibliographic record
    obtained from another system. In accordance with the approval of the
    UNIMARC holdings format, two fields are being added to the UNMARC
    bibliographic format. Location and call number 852 is being added to
    UNIMARC bibliographic to match the corresponding 252 field in UNIMARC
    holdings. Electronic location and access 856 is being added to UNIMARC
    bibliographic to match the corresponding 252 field in UNIMARC holdings.
    Within UNIMARC holdings, copy number $t is the linking subfield for
    identifying the particular copy across multiple fields.</para>

    <section>
      <title>UNIMARC Serials Holdings</title>

      <para>The UNIMARC holdings format allows storing complex serials
      holdings information in a format that is easy for machines to parse,
      although difficult for humans to read. Display presentation and
      complementary textual holdings fields allow for easy human readability
      of complex serials holdings.</para>

      <para>Complex serials holdings can be stored in the following
      fields:<itemizedlist>
          <listitem>
            <para>Captions and patterns fields 500-502 are optional</para>
          </listitem>

          <listitem>
            <para>Enumeration and chronology<itemizedlist>
                <listitem>
                  <para>Basic bibliographic unit 510 is mandatory if
                  applicable</para>
                </listitem>

                <listitem>
                  <para>The other enumeration and chronology fields 511 and
                  512 are optional</para>
                </listitem>
              </itemizedlist></para>
          </listitem>

          <listitem>
            <para>The simpler textual holdings fields 520-521 are
            optional</para>
          </listitem>
        </itemizedlist>500-502, 510-512, and 520-521 are linked together by
      interfield linking data $6.</para>

      <para>Recommendation 995 only allows for simpler format textual holdings
      that are easy for humans to read but difficult for machines to parse. At
      some future time, when Koha needs to support more complex needs of
      academic libraries or other libraries with complex serials holdings, or
      to provide for the configuration of OpenURL resolvers, this issue should
      be addressed.</para>
    </section>
  </section>

  <section>
    <title>Development of Koha Holdings Model</title>

    <para>An account of the development of the Koha holdings model can be
    found in the "Koha diary" along with much other useful history. (Hedges,
    Stephen. <citetitle>A Koha diary : implementing Koha at the Nelsonville
    Public Library</citetitle>. kohadocs.org. 2005. <ulink
    url="http://www.kohadocs.org/koha_diary.html">http://www.kohadocs.org/koha_diary.html</ulink>.)</para>

    <para>The diary describes part of how the default Koha table linkings to
    MARC fields had originated. (Poulain, Paul. <citetitle>Re--dumpmarc :
    date--Wednesday May 21, 2003, 10:02 AM ; to--shedges /
    from--paul.p.</citetitle>)</para>

    <para>Stephen is quoted. "We've been discussing our item information.
    There is _so_ much valuable information in our old system about each item
    that we don't want to lose, but which doesn't fit into a MARC tag. Things
    such as date last seen (which is also in Koha items table) or date last
    borrowed (also in Koha). We're very tempted to just write a script to read
    the item information from our old system and load it directly into the
    Koha items table."</para>

    <para>Paul replied. "Why don't you add specific non-standard marc tags in
    the parameters table and map them to the corresponding koha fields ? Note
    that I agree to say that there are only a few 852 subfields code that are
    free in MARC21 (1,4,5,7,9,d,o,u,v,w,y if my table is right), but it may be
    enough."</para>

    <para>Local use field 952 had been used for holdings by the ILS that NPL
    had been using prior to migrating to Koha and was retained for the Koha to
    MARC items linkings and presented as a default for Koha. The substitution
    of a local use field avoids the risk of some possible future assignment of
    unassigned subfields for those items table columns that are not part of
    the MARC standard.</para>
  </section>
</article>




More information about the Koha-cvs mailing list