UTF8 Normalizations and why I hate the 880 field in MARC21

The last year, I’ve spent a lot of time thinking about how normalizations impact records in our various current an next-generation MARC systems (https://blog.reeset.net/archives/2532).  About a year ago, I embedded into MarcEdit the ability to enforce normalization due to many libraries starting to experience significant record loading issues due to requirements within their systems to utilize either a decomposed (NFKD) or composed (NFC) normalizations.  And I thought all was good.  And if systems enforced their own rules to all data within the record, it would be.  However, its not.  Over the past year, I have periodically gotten notes from users related to systems not being able to render specific language data if the normalization is set to enforce the NFKD notation under very specific circumstances (though, can be regularly recreated).  And honestly, the problem is one that shouldn’t exist — but it does because systems that require decomposed characters within they systems are using special rules when working with 880 fields (and those linked to them) and not supporting decomposed characters in those spaces. 

Here’s an fairly common example of what I’m seeing…when working with languages like Japanese, Korean, etc. that have composed and decomposed characters — when decomposing the characters found in the linked 880 fields, the ILS system stops being able to render or index the data.  For example, here’s the $a from a linked 880 with Korean data:

$a사관례, 사혼례, 사상 견례 — v. 2 향음 주례, 향사례 — v. 3 ì—°ë¡€, 대사의 — v. 4 빙례 — v. 5 공사대부례, 근례 — v. 6 상복 — v. 7 사상례, 기석례, 사우례 — v. 8 특생 궤사례, 소뢰 궤사례, 유사철 — v. 9. 색인.

These characters can be decomposed to the NFKD notation like this:

$a사관례, 사혼례, 사상 견례 — v. 2 향음 주례, 향사례 — v. 3 연례, 대사의 — v. 4 빙례 — v. 5 공사대부례, 근례 — v. 6 상복 — v. 7 사상례, 기석례, 사우례 — v. 8 특생 궤사례, 소뢰 궤사례, 유사철 — v. 9. 색인.

If you system supports NFKD notation — the system should be able to correctly recompose the data for display as it does with all other fields where decomposed characters are required.  However, I’m finding that within the 880 and it’s linked fields, many systems seem to treat this data very differently and that is causing some problems.  So, for users in this boat, I’ve added a new option to the MarcEditor Preferences — Don’t normalize Paired 880 Fields:

image

This option will not be enabled by default, and this item is also only available if you have identified that your record format is MARC21.  When this value is enabled, the program will add a special check that will look for data in both the 880 field and fields that are paired to the 880 and will not normalize that data. 

Ideally, this setting will eventually go away as libraries will shift to systems that no longer have to support the older NFKD notation and can utilize the NFC notation.  When that is the case, these problems go away.  But as long as libraries are required to provide a round trip back and forth to MARC8 when working with MARC21 — this option will be available for users in need of it.

–tr


Posted

in

by

Tags: