MARC 21 Record
Builder
December 2000
Network Development
MARC Standards Office
Library of Congress
Table of Contents
ONIX Release 1.2 to MARC 21 (December 2000)
Since the input
to the Batchload pre-process is MARC 21 data, MARC records must
be created
from the sequential file data. A MARC record consists of a leader,
a directory, control fields, and variable fields.
Byte
Offset |
Field |
0-4
|
record length
Five numeric
characters equal to the total number of bytes in the logical record.
The number is right-justified with leading zeros. The minimum
length is 124 and the maximum is 16,000.
|
5 |
record status
will always
use the default value of 'n' (new record)
|
6 |
type of record
If tag = ProductForm
or b012
Media type
= first character of the data in value
Media
type |
Type
of record |
a
(audio) |
i
(non-musical sound recording) |
b
(book) |
a
(language material) |
c
(map) |
e
(map) |
d
(digital) |
m
(computer files) |
f
(film) |
g
(projected media) |
v
(video) |
g
(projected media) |
w(mixed) |
p(mixed
materials) |
If media type
= 'p'
If second
character = 'i' (sheet music)
Type of
record = 'c' (printed music)
If the media
type is not found in the above list, set the type of record to
'a'.
|
7 |
bibliographic level
If any of
the following fields are present for the item, it signifies
the item is a series, so set the bib level to 's' (serial).
Tag
name |
Description |
SeriesISSN
or b016 |
ISSN
of series |
PublisherSeriesCode
or b017 |
Publisher
series code |
TitleOfSeries
or b018 |
Title
of series |
ItemNumberWithinSeries
or b019 |
Number
within series |
YearOfAnnual
or b020 |
Year
of annual |
If none
of the above items are found for the product, set the bib level
to 'm' (monograph).
|
8-9 |
blanks |
10 |
indicator count
'2' -- indicates
each variable field contains two indicators
|
11 |
subfield count
'2' -- indicates
each subfield code is two characters in length
|
12-16 |
base address
Five numeric
characters equal to the length of the leader plus the record directory
(including field terminator). The number is right-justified with
leading zeros.
|
17 |
encoding level
will always
use the default value of '2' (less than full, material not examined)
|
18 |
descriptive cataloging form
will always
use the default value of ' ' (item is not cataloged according
to ISBD)
|
9 |
blank |
20 |
'4' |
21 |
'5' |
22 |
blank |
23 |
'0' |
Record directory
entries contain the field tag, length, and starting position for each
fixed and variable field in the record. The starting position is expressed
as the byte offset from the first character following the record directory
field terminator.
Byte Offset |
Field |
0-2 |
tag
Three-character
numeric symbol identifies the field.
|
3-6 |
field length
Four numeric
signify the number of characters in the field; includes the indicators,
subfield codes, data, and a field terminator. Right-justified
with leading zeros.
|
7-11 |
starting character position
Five numeric
characters signify the position in the record of the first byte
of the field (related to the base address given in bytes 12-16
of the record leader).
|
The control fields
include data useful for record selection or special processing. All
MARC records created must contain the 001 and 008 fields.
Tag |
Description |
001 |
control
number
Contains the
record reference number, which is the data in the value field
when the tag = 'RecordReference' or 'a001'
|
007 |
physical
characteristics
007
contains information about the physical characteristics of an
item in a coded form and varies depending on the product type.
Not all products use an 007.
007 has
no indicators or subfields codes; the data elements are postionally
defined by category of material. All
uncoded bytes are coded with the fill character ( | ), indicating
that the cataloging agency has made no attempt to code the position.
If ProductForm
= 'ca', 'cb', 'cc', 'cd', 'cz' (Map)
( ProductForm
data was obtained when building the type of record.)
byte 00
- category of material
byte 01 -
specific material designation (SMD)
byte 02 -
undefined
byte 03 - color
byte 04 -
physical medium
byte 05 -
type of reproduction
byte 06 -
production/reproduction details
byte 07 -
positive/negative aspect
If ProductForm
= 'ce' (Globe)
byte 00
- category of material
byte 01 -
specific material designation (SMD)
byte 02 -
undefined
byte 03
- color
byte 04 -
physical medium
byte 05 -
type of reproduction
If ProductForm
= 'fa', 'fc', 'fd', 'fz' (Projected Graphics)
byte 00
- category of material
byte 01
- specific material designation (SMD)
If 'fc'
Else if
'fd'
Else
byte 02
- undefined
byte 03
- color
byte 04 -
base of emulsion
byte 05 -
sound on medium or separate
byte 06 -
medium for sound
byte 07 -
physical medium
byte 08 -
secondary support material
If ProductForm
= 'fb' (Motion Pictures)
byte 00
- category of material
byte 01
- specific material designation (SMD)
byte 02
- undefined
byte 03
- color
byte 04 -
motion picture presentation format
byte 05 -
sound on medium or separte
byte 06 -
medium for sound
byte 07
- dimensions
If tag = 'MeasureTypeCode' or 'c093'
If value
of 'MeasureTypeCode' = '02' (width)
If 'MeasureUnitCode'
or 'c095' not = 'mm'
dimension
= 'u' (unknown)
Else
Measurement |
Dimension |
standard
8 |
a |
super8/single
8 |
b |
9.5 |
c |
16 |
d |
28 |
e |
35 |
f |
end
end
end
byte 08 - configuration of playback channels
byte 09 -
production elements
If ProductForm
= 'ma', 'mb', 'mc', 'mz' (microform)
byte 00
- category of material
byte 01
- specific material designation (SMD)
byte 02
- undefined
byte 03
- positive/negative aspect
byte 05 -
reduction ratio range
byte 06-08
- reduction ratio
byte 09 -
color
byte 10 -
emulsion on film
byte 11 -
generation
byte 12 -
base of film
If ProductForm
= 'va', 'vb', 'vc', 'vd', 've', 'vf', 'vz' (videorecordings)
byte 00
- category of material
byte 01
- specific material designation (SMD)
Else if
'vb', 'vc', 'vd', 've'
byte 02
- undefined
byte 03
- color
byte 04
- videorecording format
byte 05
- sound on medium or separate
byte 06 -
medium for sound
byte 07 -
Dimensions
byte 08 -
configuration of playback channels
|
008
|
For all type of records build the 008 as follows:
bytes1-5 |
blank
|
byte
6 |
type
of date
The date of publication, if included, will be sent for the
product with the tag
= 'PublicationDate' or 'b003'.
'n', if the date of publication is not supplied.
's', if the date of publication is supplied |
bytes
7-10 |
date
1
if byte 6 = 's', the year from the date of publication
(date
of publication can be formatted as YYYY, YYYYMM, or YYYYMMDD.)
|
bytes
11-21 |
blank |
bytes
24-34 |
blank |
bytes
35-37 |
language
The language will be stored as the 'value' when the tag =
'LanguageOfText' or 'b059'. (ONIX uses the ISO 639-2B standard
for language codes. ) |
If book, computer
file, music, or visual material
While there
are other combinations, based on the values previously defined
in this document, these are defined here as book (type = a, bib
level = m), computer file (type = m, bib level = m), music (type
= c, bib level = m), and visual material (type = g, bib level
= m).
byte 22 |
target
audience
The audience can be transmitted as either the AudienceCode
or b073 or the USSchoolGrades or b189.
If
AudienceCode is transmitted, use the following table to
build the target audience.
AudienceCode
|
Target
Audience |
01
(general) |
g
(general) |
03
(young adult) |
d
(secondary, senior high) |
04
(primary) |
j
(juvenile) |
06
(professional) |
f
(specialized) |
any
other value |
'
' (unknown) |
If
USSchoolGrades is transmitted, use the following table to
build the target audience.
US
SchoolGrades |
Target
Audience |
to
8 |
j
(juvenile) |
9
to 12 |
d
(secondary) |
any
other value |
'
' (unknown) |
US
SchoolGrades to 8 - Can be any of the formats -- 'from
n1 to n2', 'to n', or 'n', where n1 is (P,K,1,2,3,4,5,6,7),
n2 is (1,2,3,4,5,6,7,8), and n is (P,K,1,2,3,4,5,6,7,8).
P can also be transmitted as pre-school and K can also be
transmitted as kindergarten.
US
SchoolGrades 9 to 12 - Can be any of the formats --
from n1 to n2 or n, where n1 is (9,10,11), n2 is (10,11,12),
and n is (9,10,11,12).
If neither
AudienceCode nor USSchoolGrades is transmitted, the target
audience is blank.
|
If map, serial,
or mixed material
When there
are other combinations, based on the values previously defined
in this document, these are defined here as maps (type = e, bib
level = m), serial (type = a, bib level = s), and mixed material
(type = p, bib level = m).
If book, music, serial, or mixed material
byte
23 |
form of item
If tag = ProductForm or b012
If value
= 'MB' (microfiche)
else
if value = 'MC' (microfilm)
else
|
If computer file,
map, or visual material
|
Variable fields consist
of variable-length alphanumeric data and differ in content for each record.
The first two bytes in each field will be the indicators. All fields end
with a field terminator. The last field is followed by both a field terminator
and a record terminator. Each variable field is identified by a three-character
numeric tag in the record directory.
Tag
|
Description |
010 |
LCCN
Both indicators
are blank.
$a LCCN
The LCCN
is formatted as follows:
Byte
Offset |
Description |
00-01 |
alphabetic
prefix (left-justified, blank fill) |
02-05 |
year
of cataloging |
06-11 |
number
(right-justified, zero fill) |
LCCN's will be formatted according to the new rules that will
be in effect as of January 1, 2001. See www.loc.gov/marc/lccn.html
for more information
Any hyphens
in the data transmitted must be removed.
*** Not being transmitted as part of ONIX at this time ***
|
020 |
ISBN
Both indicators
are blank.
$a ISBN
ISBNs are validated
according to the following rules:
- any hyphens
in the data transmitted by the vendors must be removed
- must be
ten characters
- bytes 1-9
must be numeric
- byte 10
is a check digit, which must 0-9 or an 'x' and pass the check
digit validation routine.
- any ISBN
which is invalid including the check digit test will be moved
to $z.
|
022 |
ISSN
Both indicators
are blank.
$a ISSN
If tag =
'SeriesISSN' or 'b16'
Standard
number = value of 'SeriesISSN'
- Any
hyphens transmitted are removed
- Must
be 8 numeric digits
- Any
ISSN which is invalid will be moved to $ z.
|
024 |
Other Standard Identifier
Indicator
1
1 - Universal
Product Code (UPC)
2 - International Standard Music Number (ISMN)
3 - International Article Number (EAN)
Indicator 2
= blank
$a standard number
If tag = 'UPC' or b006'
Standard
number = value of 'UPC'
- UPC
- Must
be 12 characters
- Bytes
1-11 must be numeric
- byte
10 is a check digit, which must 0-9 or an 'x' and pass the
check digit validation routine.
- Any
UPC which is invalid including the check digit test will
be moved to $ z
Else if
tag = 'ISMN' or b008'
Standard
number = value of 'ISMN'
- ISMN
- Must
be 10 characters
- Byte
1 must be 'M'
- bytes
2-10 must be numeric
- Any
ISMN which is invalid will be moved to $ z
Else if
tag = 'EAN13' or b005'
Standard
number = value of 'EAN13'
- EAN
- Must
be 13 characters
- bytes
1-13 must be numeric
- Any
EAN which is invalid will be moved to $ z
|
050 |
LC Call Number
Both indicators
are blank
$ a classification number
If tag = ('SubjectSchemeCode' or 'b067') and value = '03' (LC
class number)
If tag =
'SubjectHeadingText' or 'b070'
Class
number = value of 'SubjectHeadingText'
|
082 |
Dewey Call Number
Both indicators
are blank
$a classification number
If tag =
('SubjectSchemeCode' or 'b067') and value = '01' (Dewey)
If tag
= 'SubjectHeadingText' or 'b070'
Class
number = value of 'SubjectHeadingText'
|
100 |
Personal
Name Main Entry
If more
than one personal name data is sent, the first one will be used
to build the 100 field. A separate 700 field will be created
for each subsequent personal name transmitted.
Indicator
1 = depends on the data content. If only the last name is provided,
indicator 1 is 0 (forename). If the last and first names are both
provided, indicator 1 is 1 (single surname) Indicator 2 = blank
$ a personal name
In ONIX personal names can be sent in three different manners.
- unstructured
('PersonName' or 'b036'), e.g., Edgar Allen Poe
- inverted
('PersonNameInverted' or 'b037'), e.g., Poe, Edgar Allen
- separate
- titles
before name ('TitlesBeforeNames' or 'b038')
- names
before key name ('NamesBeforeKey' or 'b039'), e.g., Edgar
Allen
- key
name ('KeyNames' or 'b040'), e.g., Poe
- names
after key name ('NamesAfterKey' or 'b041')
- letters
after name ('LettersAfterNames' or 'b042')
- titles
after name ('TitlesAfterNames' or 'b043')
If the inverted
name is sent
Personal
name = data in the value field.
Else if the
name components are sent separately
Personal
name is built as follows:
- key
name data in the value field
- if
names before key name present, append a comma (,) after
the key name followed by the before key name data
Else if
unstructured name is sent
If multiple names are transmitted, move the data for the first
name to the 100 and subsequent names to the 700 field.
$b numeration
If tag = 'NamesAfterKey' or 'b041'
If KeyName
transmitted without 'NamesBeforeKey'
If 'NamesAfterKey'
value contains a Roman numeral
Numeration
= value of 'NamesAfterKey'
$c Titles
If tag = ('TitlesBeforeNames' or 'b038') or
('TitlesAfterNames'
or 'b043')
Titles =
value of 'TitlesBeforeNames' or 'TitlesAfterNames'
If multiple titles are transmitted, enter in separate $ c.
$u affiliation
If tag = 'Affiliation' or 'b046'
affiliation
= value of 'Affiliation'
|
110 |
Corporate
Name Main Entry
If
more than one corporate name data is sent, the first one will
be used to build the 110 field. A separate 710 field will be created
for each subsequent personal name transmitted. If there is a 100
field present, create only the 710 field with this data.
The indicators
are 2 and blank.
$a corporate name
If tag = 'CorporateName' or 'b047'
Corporate
name = value of 'CorporateName'
|
111 |
Meeting Name
Main Entry
Create only
a 711 field with this data.
The indicators
are 2 and blank.
$a meeting name
If tag = ('ConferenceDescription' or 'b050') or ('ConferenceName'
or 'b052')
Meeting
name = value of 'ConferenceDescription' or 'ConferenceName'
$c location
of meeting
If tag = 'ConferencePlace' or 'b055'
Location
= value of 'ConferencePlace'
$d date of
meeting
If tag = 'ConferenceDate' or 'b054'
Date = value
of 'ConferenceDate'
$n number of
meeting
If tag = 'ConferenceNumber' or 'b053'
number =
value of 'ConferenceNumber'
|
245 |
Title
If a 1xx field
is present
Else
Second indicator
is the number of nonfiling characters present.
The second
indicator value is calculated by counting the number of characters
in the initial articles plus any spaces, punctuation, and diacritics
that precede the first significant word. The language in the
bytes 35-37 of the 008 will be used to determine what is a valid
initial article.
$a
title
The title can be transmitted as either the full title or as
the prefix and main title
$b subtitle
If tag = 'Subtitle' or 'b029'
subtitle
= value of 'Subtitle'
(Some companies
will imbed the subtitle as part of the title. If a colon (:)
is found in the title, copy the text after the colon into the
subtitle. The colon remains with the data in $a.)
|
247 |
Former Title
Both indicators
are 0.
$a title
If tag = 'FormerTitle' or 'b033'
title =
value of 'FormerTitle'
$b subtitle
Some companies will imbed the subtitle as part of the title. If
a semi-colon (:) is found in the title, copy the text after the
semi-colon into the subtitle.
|
250 |
Edition
Both indicators
are blank.
$a edition statement
The edition statement can be transmitted as either a number or
statement.
If tag = 'EditionNumber' or 'b057'
Edition
statement = value of 'EditionNumber'
Else if tag
= 'EditionStatement' or 'b058'
Edition
statement = value of 'EditionStatement'
$b remainder
of edition statement
Some companies may include the remainder of the edition as part
of the edition statement. If a comma (,) is detected in the edition
statement, move the data after the comma to subfield $b.
|
260 |
Imprint
The indicators
are both blank.
$a place of publication
If tag = 'CityOfPublication' or 'b209'
Place of
publication = value of 'CityOfPublication'
$b publisher
name
If tag = 'PublisherName' or 'b081'
Publisher
name = value of 'PublisherName'
$c date of
publication
If tag = 'PublicationDate' or 'b003'
The PublicationDate
can be YYYY, YYYYMM, or YYYYMMDD.
Publication date = the YYYY portion of 'PublicationDate'
|
300 |
Physical Description
The indicators
are both blank.
$a extent
If tag = 'NumberOfPages' or 'b061'
extent =
value of 'NumberOfPages'
(Number of pages is a very arbitary value and its accuracy varies
greatly between companies. The ONIX conversion software will
always build a 300 $a, but the evaluation of the source may
cause the set-up to move this data to a different field so it
will not be part of the matching.)
$b other physical
details
If tag = 'IllustrationsNote' or 'b062'
other =
value of 'IllustrationsNote'
$c dimensions
If tag = 'MeasureTypeCode' or 'c093'
If value
of 'MeasureTypeCode' = '01' (height)
Height
= value of 'Measurement' or 'c094' appended by value of 'MeasureUnitCode'
or 'c095'
Else if value
of 'MeasureTypeCode' = '02' (width)
width
= value of 'Measurement' or 'c094' appended by value of 'MeasureUnitCode'
or 'c095'
end if
dimensions = height 'x' width
If
the width is not present, do not include the 'x'.
|
440 |
Series statement
First indicator
is blank.
Second indicator is the number of nonfiling characters present.
The second
indicator value is calculated by counting the number of characters
in the initial articles plus any spaces, punctuation, and diacritics
that precede the first significant word. The language in the
bytes 35-37 of the 008 will be used to determine what is a valid
initial article.
$a title
If tag = 'TitleOfSeries' or 'b018'
title =
value of 'TitleOfSeries'
set 2nd indicator to the number of characters in the initial
article of the title, if any.
$v volume number
If tag = 'ItemNumberWithinSeries' or 'b019'
Volume number
= value of ' ItemNumberWithinSeries'
$x ISSN
If tag = 'SeriesISSN' or 'b016'
ISSN = value
of 'SeriesISSN'
|
505 |
Table
of Contents
|
520 |
Summary
Note
See below
for the 1st indicator
The 2nd indicator is blank
If tag = 'TextTypeCode' or 'd102'
If value
of 'TextTypeCode' = '07' or '08' or '10'
1st indicator
= '1' (review)
Else if value
of 'TextTypeCode' = '32'
1st indicator
= '2' (summary)
end if
else
if tag =
('MainDescription' or 'd101') or ('Annotation' or 'd100')
1st indicator
= '2' (summary)
end if
end if
$a contents
contents
= value of ('Text' or 'd104') or ('MainDescription' or 'd101')
$r statement
of responsibility
statement
of responsibility = value of 'TextAuthor' or 'd107'
(Statement of responsibility and title are only valid if the
contents data is transmitted in the 'TextTypeCode'. )
$t title
title
= value of 'TextSourceTitle' or 'd108'
|
521 |
Target
Audience Note
The indicators
are both blank.
$a target audience
If tag = 'USSchoolGrades' or 'b189'
Target audience
= value of 'USSchoolGrades'
|
545 |
Biographical
Note
Both indicators
are blank
$a biographical note
If tag = 'TextTypeCode' or 'd102'
If value
of 'TextTypeCode' = '13'
Biographical
note = value of 'Text' or 'd104'
|
586 |
Awards
Note
Both indicators
are blank
$a awards note
If tag = 'PrizesDescription' or 'g124'
Awards note
= value of 'PrizesDescription' or 'g124'
Else if tag
= 'PrizeName' or 'g126'
Awards note
= value of 'PrizeName' or 'g126'
If tag = 'PrizeYear' or 'g127'
Append
after the existing awards note a comma (,) followed by the
value of 'PrizeYear'
|
650 |
Subject
Added Entry -- Topical Term
Both indicators
0
$a topical term
If tag = ('SubjectSchemeCode' or 'b067') and value = '04' (LC
subject heading)
If tag =
'SubjectHeadingText' or 'b070'
Topical
term = value of 'SubjectHeadingText'
|
700 |
Added
entry, personal name
The rules
for the 700 field are the same as what is defined for the 100.
|
710 |
Added entry, corporate name
The rules
for the 710 field are the same as what is defined for the 110.
|
711 |
Added
entry, meeting name
The rules
for the 711 field are the same as what is defined for the 111.
|
856 |
Electronic
Location and Access
Repeat
field 856 to record more than one URL.
|
Top
of Document
Go to: MARC 21 Mapping
to ONIX | MARC Home Page
| Library of Congress Home Page
Library of Congress
Library of Congress Help Desk
(
02/07/2005
)
|