Using MARC as source data

The LUNA Library and Uploader have been modified to support the uploading and processing of MARC files with .mrc extensions.

This is a 2 step process:

  1. Map MARC fields to LUNA data fields in the templates section of the Collection Manager.
  2. Upload MARC records via the Uploader.

In order to translate a MARC record into a format that is recognized by the LUNA Library, mappings must be properly specified in the collection's schema for each of the fields that will hold data from the fields in the MARC record. For example, in the screenshot below we mapped the MARC creator field to the corresponding LUNA Creator field:

Certain limitations are imposed on the structure of the cataloging template to facilitate transition of data from the MARC format, details below.

Brief MARC format summary:

1. Control Fields- Control numbers and other kinds of control and coded information that are used in the processing of machine-readable bibliographic records. These fields have no subfield codes. These fields do not repeat.

http://www.loc.gov/marc/bibliographic/bd00x.html

2. Data Fields- are further divided into subfields using a single letter or number designation (e.g $a). Subfields are where data values are located. Data Fields and SubFields are repeatable. To find out if a certain field is repeatable, check:

http://www.loc.gov/marc/bibliographic/

Limitations on cataloging template structure:

1. Since many data fields are repeatable, it is required that the fields mapped to them be placed inside of a field group. Furthermore, field groups should contain fields that are mapped to MARC subfields of the SAME MARC data field. For example, a field group named 'Description' contains fields 'Extent' and 'Dimensions', therefore if 'Extent' is mapping to '300$a', then 'Dimensions' must be mapped (if there's a mapping at all) to a subfield in the 300 data field, such as '300$c'.

2. Mappings in all descendants of a field group must reference the same data field. For example, a field group named 'Description' contains a field 'Extent' and a field group 'Dimensions' with a field called 'Dimension'. If 'Extent' is mapping to '300$a', Dimension must be mapped to a subfield in the 300 data field.

3. Repeated subfields- if a MARC record contains a data field with repeating subfields, the repeating values will be placed into the same LUNA field, separated by a semicolon and followed by a space. For example, 541$a has the value "Wood River Journal" and another $a subfield in the SAME 541 data field has the value "Copy costs and use fees apply", the mapped LUNA field will have "Wood River Journal; Copy costs and use fees apply".

4. Use ':' to combine values in subfields- On some occasions, you may want to combine values from multiple subfields of the same data field. You may do so by placing more than one subfield into <marc_mapping> using a colon as a separator. Data from these subfields will be concatenated and separated by a space. For example 949$a:949$b:949$c:949$d:949$e.

5. Like importing data using .csv or .xml, at least one field in the primary entity must contain data, and since MARC data fields are always in a field group (see #1 above), at least one field in the primary entity should be mapped to a MARC Control field, and this field must always contain data.

Another example to clarify

The example below comes from a real MARC record as shown in the example image below. In this example we will focus tags 90 and 98.

Any MARC number like 90 or 98 must be in their own field group, and not just in a field. We need to mimic MARC's structure.

Therefore, 90 would be one field group.
And 98 would be a different field group.

Then, you can think of the subfields as fields of that field group.
90
-90a
-90b

98
-98t
-98c
-98a
-98i

Furthermore, if you want to concatenate these fields you can, but only for the same fields in the field group as in the example below:
98$t:98$c:98$a

You cannot mix fields from different field groups for display. That's why your mapping with different MARC numbers do not work. For example, 90's cannot be with 98's.