Bug 39557

Summary: Normalize MARC21 XML metadata into structured MySQL database tables via Koha Plugin
Product: Koha Reporter: Mark Hofstetter <koha>
Component: MARC Bibliographic data supportAssignee: Mark Hofstetter <koha>
Status: NEW --- QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: dcook, jonathan.druart, koha, michaela.sieber, nick, simon.hohl
Version: Main   
Hardware: All   
OS: All   
URL: https://github.com/HKS3/koha-normalize-marc2db
GIT URL: Change sponsored?: ---
Patch complexity: --- Documentation contact:
Documentation submission: Text to go in the release notes:
Version(s) released in:
Circulation function:

Description Mark Hofstetter 2025-04-04 07:29:01 UTC
The proposed plugin (Koha::Plugin::HKS3::NormalizeMARC2DB) aims to normalize MARC21 XML metadata from the biblio_metadata.metadata table into structured MySQL database tables. Currently, MARC21 XML is stored as a single XML blob, making advanced querying, reporting, and integration difficult.

This plugin introduces an automatic normalization step triggered by the after_biblio_action hook whenever metadata is added or modified. It splits MARC XML into normalized relational tables fully supporting repeatable fields, subfields, and indicators.

Advantages:

Significantly simplifies complex querying and reporting of MARC21 data.

Enhances data integrity and consistency.

Facilitates integration with external reporting tools, analytics, and applications.

Improves database performance for MARC metadata queries.

Provides clear and structured access to MARC data elements.

This approach aligns with best practices for database normalization and can substantially enhance Koha's extensibility and interoperability.
Comment 1 Mark Hofstetter 2025-05-13 11:25:59 UTC
please checkout - install via kpz, and read instruction (you have to "run tool") 


https://github.com/HKS3/koha-normalize-marc2db
https://github.com/HKS3/koha-normalize-marc2db/releases
Comment 2 Katrin Fischer 2025-05-13 14:24:26 UTC
I feel like this can get easily lost in bugzilla as it's not in the queues for testing. Adding some parties that might be interested in testing.