SPIKE: BIBFRAME to MARC Transformation

Description

Spike card to investigate transformation of BIBFRAME resource descriptions into MARC. 

The Library of Congress must have the ability to capture cataloging work performed in the Marva application as MARC records to be included in its CDS - Cataloging Distribution Service.  This work is inclusive of edits made to existing resources as well as resource descriptions cataloged from scratch natively in Marva. 

Secondarily, creating MARC records derived from BIBFRAME resource descriptions provides a path for keeping FOLIO in synch with the BIBFRAME database. For example, a common cataloging use case could involve metadata that is input into FOLIO as a MARC record, and upgraded in Marva as a full resource. Returning the completed resource description back to FOLIO SRS as a derived MARC record reinforces the integrity and completeness of both databases. 

To keep the size of the scope manageable, the investigation for transforming BIBFRAME into MARC should be limited to the same "stub" fields described in MODLD-131

 

LABEL

FIELD LABEL

BF ENTITY

BF LITE

MARC TAG / SUBFIELD

ISBN

Identifier

Instance

http://library.link/identifier/ISBN

020$a

LCCN

Identifier

Instance

http://library.link/identifier/LCCN

010$a

Title

Title

Instance

http://bibfra.me/vocab/marc/title

245$a, 245$b

Author

Creator of Work / Person

Work

http://bibfra.me/vocab/lite/name

100$a

Year 

Date

Instance

http://bibfra.me/vocab/lite/date

262$c,
264$c (when indicator 2 = 1)

Edition

Edition statement

Instance

http://bibfra.me/vocab/marc/edition

250$a, 250$b

The goal of the spike card, then, is to investigate how to "recreate" MARC stub records by deriving them from the corresponding BIBFRAME resource descriptions. 

 

Question(s)

  • For fields that map to multiple MARC tags, need direction in how values in the BIBFRAME resource description can be mapped accurately to multiple tags and subtags.

  • Governance rules around BIBFRAME resource descriptions will also impact transformation rules needed for keeping FOLIO and BIBFRAME databases in synch

  • Spell out use cases for synching, e.g. when should a BF resource description overlay a record in FOLIO SRS? When should it merge with a record in SRS? Specifically identifying tags in the MARC record that aren't present (mapped) in the BF resource description.

Environment

None

Potential Workaround

None

Checklist

hide

TestRail: Results

Activity

Show:

Pavel Bobylev December 14, 2023 at 12:35 PM
Edited

Spike findings:

  • We could benefit from creating an ld2marc conversion engine supporting the existing ruleset of marc2ld conversion: no new rules are required, a lot of resource types conversion is out of the box!

  • We could benefit from extending the existed marc2ld library with ld2marc conversion: ruleset, some code parts, unit test files are re-usable.

  • Ld2marc conversion engine is ready, it provides everything we need for all Instance & Work fields except (we can say that these are subtasks):

 

1) unite multiple json objects with different fields into a one 2) use dictionary (only TARGET_AUDIENCE so far) 3) construct Control Fields (008 only so far) 4) add support of relationship designator (Creator and Contributor so far) 5) construct a Marc Leader (required for each Marc record)

 

Open questions:

1) do we want to cut multi-field-based property into pieces (fields) by punctuation?

Example: 'Edition Statement' Bibframe field is based on 250$a + 250$b Marc fields. Usually there is a period (or another punctuation) at he end of $a. Should we split the fields value by punctuation symbol (if any) and put first part into $a and second into $b ?

2) How should we handle a Resource which is initially taken from two Marc fields?

Should we duplicate it into both fields or put into one only? Which, if so? Example: Publication event is based on Marc 262 and 264 fields.

 

 

Done

Details

Assignee

Reporter

Priority

Story Points

Sprint

Development Team

Citation

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created December 7, 2023 at 3:21 AM
Updated February 8, 2024 at 7:50 PM
Resolved December 21, 2023 at 11:04 AM
TestRail: Cases
TestRail: Runs

Flag notifications