I picked the changes related to the UNIMARC schema parsing only, and have created a separate branch which this pull request is based on. Therefore, this pull request consists only of changes related to the schema reading and nothing else. There is no validation, completeness, nor TT completeness in here.
Certain code lists have been taken from their respective appendices of the 2008 version of the UNIMARC Manual.
Due to cherry-picking only the parsing related changes, there are also some changes which might seem unnecessary for now. The following is the explanation for those:
Introduction of UNIMARC leader and abstraction of the MARC21Leader into the MARCLeader class which provides some common functionalities for both MARC21 and UNIMARC leader fields;
Introduction of UNIMARC record and creation of MARC Record which unifies some common functionalities of MARC21 Record types and the UNIMARC Record type. A name change of BibliographicRecord class might be necessary because it doesn't contain the functionality of bibliographic records, but also a MARC authority record. For now, a bibliographic record is something that covers PICA, MARC Records (whose main difference is existence of a leader field and some common control fields).
Furthermore, please note that the file main/resource/avram-unimarc.json contains some // remark keys which are meant to denote comments within the avram-unimarc file. I have identified 25 situtations where I had made certain remarks, mostly inconsistencies in the Manual. There are potentially many more such inconsistencies.
I picked the changes related to the UNIMARC schema parsing only, and have created a separate branch which this pull request is based on. Therefore, this pull request consists only of changes related to the schema reading and nothing else. There is no validation, completeness, nor TT completeness in here.
The schema has been parsed primarily automatically from the following address: https://archive.ifla.org/VI/8/unimarc-concise-bibliographic-format-2008.pdf. In addition to that, numerous manual modifications were made, mostly in accordance with the newly released PDF with the UNIMARC Manual for 2023, available at https://repository.ifla.org/handle/123456789/2880.
Certain code lists have been taken from their respective appendices of the 2008 version of the UNIMARC Manual.
Due to cherry-picking only the parsing related changes, there are also some changes which might seem unnecessary for now. The following is the explanation for those:
Furthermore, please note that the file main/resource/avram-unimarc.json contains some
// remark
keys which are meant to denote comments within the avram-unimarc file. I have identified 25 situtations where I had made certain remarks, mostly inconsistencies in the Manual. There are potentially many more such inconsistencies.