MARC21
MARC21 is the current data carrier for library bibliographic records.
- Legacy and wide-spread
- Interoperability is a core requirement of Library of Congress Bibliographic Framework
- Colorado College's currently uses its legacy ILS to manage over 875,590 MARC21 records for its print holdings and electronic resources
Transitional Python Classes
To facilite development of this proof-of-concept project, FRBR-Redis-Datastore uses the three simple Redisco Python models that provide lightweight object-mappings from MARC21 records using pymarc.
MARC21Record Python Class
class MARC21Record(models.Model):
"""
Basic MARC Record in the Redis datastore
"""
marc_fields = models.ListField(MARC21Field)
leader = models.Attribute()
MARC21Field Python Class
class MARC21Field(models.Model):
"""
Basic MARC Field in the Redis datastore
"""
tag = models.Attribute()
data = models.Attribute()
indicators = models.ListField(str)
subfields = models.ListField(MARC21Subfield)
MARC21Subfield Python Class
class MARC21Subfield(models.Model):
"""
MARC Subfield in the Redis datastore
"""
code = models.Attribute()
value = models.Attribute()
Redis Datastore
Using Redisco transitional object Redis models to store a MARC21 record in Redis in FRBR-Redis-Datastore has the following characteristics in the Redis datastore:
| Redis Key | Redis Type | Example Value |
|---|---|---|
| MARC21Record:1 | hash | leader:'01184nam 2200313Ia 4500' |
| MARC21Record:1:marc_fields | list | ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24'] |
| MARC21Field:5 | hash | tag:"035" |
| MARC21Field:5:subfields | list | ['1', '2', '3'] |
| MARC21Subfield:2 | hash | code:'b' value:'tbp' |
Relationship to FRBR
The MARC21 relationship to FRBR in the FRBR-Redis-Datastore uses existing work done by the Library of Congress in mapping MARC21 fields to FRBR entities as well as the RDA-specific MARC fields.