Currently, when reporting authority field to the bibliographic records, the merge function uses the first matching authority field. However, authorities can provide multiple versions of the same field, with different languages. It would be nice to have a way to select which language to report in the bibliographic record.
Created attachment 172684 [details] [review] Bug 38142: Choose language to report from authority to bibliographic record. Currently, when reporting authority field to the bibliographic records, the merge function uses the first matching authority field. However, authorities can provide multiple versions of the same field, with different languages, identified by a code in the $7 field. French reference for languages codes for example, but any code system could be used: https://documentation.abes.fr/sudoc/formats/unmb/DonneesCodees/CodesZone104.htm#$d This patch introduces the LanguageToReportOnMerge system preference, which allows to specify a language code. When set, if there is an authority field with the given language code, it will be used to report to the bibliographic record. If the system preference is not set, or there is no matching field, the default behavior will apply: the first field will be used. The $7 in the authority field can be in a short or long form: - the short form is 2 characters long. Example: ba - the long form is 8 characters long, with the short form in position 5 and 6 (starting from 1). Example: ba0yba0y Test plan: ---------- 1) Edit the 'Personal Name' authority type framework to make the 100 field repeatable 2) Add an authority with several languages, like this (the order is important): 100 _7ba0yda0y _a伊東豊雄 100 _7ba0yba0y _aItō 3) Add a bibliographic record linked to that authority. (Click on the "tag editor" icon next to the 100$a field in the bibliographic record to search for the authority, then Search main heading ($a only): contains Itō) Note that you can choose which version you want when searching for the authority, under the "Get it!" column For this example, choose the latin version: Itō You should now have this in your bibliographic record: 100 _aItō _92646 4) Edit the authority, you don't have to change anything, just edit and save. Note that your bibliographic record now looks like this: 100 _7ba0yda0y _a伊東豊雄 _92646 The first 100 field of the authority has been reported back to the bibliographic record, regardless of what you chose when selecting the authority. 5) Apply the patch, set the LanguageToReportOnMerge system preference to: 'ba' 6) Edit the authority again, and check that your bibliographic record now looks like this, according to the system preference: 100 _7ba0yba0y _aItō _92646 7) Edit the authority again, but set the $7 of the latin field to its short form: 100 _7ba0yda0y _a伊東豊雄 100 _7ba _aItō 8) Check that the bibliographic record still has the latin field reported: 100 _7ba _aItō _92646 9) prove koha/t/db_dependent/Authority/Merge.t 10) Sign-off :) Sponsored-by: ENSA
Very interesting! Two remarks/demands: - Could you develop the syspref description? Something with sample, and explaining the 2 language code forms, short and long. - Wouldn't it make sense to have a repeatable languages selection? Let say I select 'ba,fa'. It means that I want first 'ba' authority, if not available then 'fa' authority, otherwise the 1st one.
Created attachment 172802 [details] [review] Bug 38142: Choose language to report from authority to bibliographic record. Currently, when reporting authority field to the bibliographic records, the merge function uses the first matching authority field. However, authorities can provide multiple versions of the same field, with different languages, identified by a code in the $7 field. French reference for languages codes for example, but any code system could be used: https://documentation.abes.fr/sudoc/formats/unmb/DonneesCodees/CodesZone104.htm#$d This patch introduces the LanguageToReportOnMerge system preference, which allows to specify a language code. When set, if there is an authority field with the given language code, it will be used to report to the bibliographic record. If the system preference is not set, or there is no matching field, the default behavior will apply: the first field will be used. The $7 in the authority field can be in a short or long form: - the short form is 2 characters long. Example: ba - the long form is 8 characters long, with the short form in position 5 and 6 (starting from 1). Example: ba0yba0y Test plan: ---------- 1) Edit the 'Personal Name' authority type framework to make the 100 field repeatable 2) Add an authority with several languages, like this (the order is important): 100 _7ba0yda0y _a伊東豊雄 100 _7ba0yba0y _aItō 3) Add a bibliographic record linked to that authority. (Click on the "tag editor" icon next to the 100$a field in the bibliographic record to search for the authority, then Search main heading ($a only): contains Itō) Note that you can choose which version you want when searching for the authority, under the "Get it!" column For this example, choose the latin version: Itō You should now have this in your bibliographic record: 100 _aItō _92646 4) Edit the authority, you don't have to change anything, just edit and save. Note that your bibliographic record now looks like this: 100 _7ba0yda0y _a伊東豊雄 _92646 The first 100 field of the authority has been reported back to the bibliographic record, regardless of what you chose when selecting the authority. 5) Apply the patch, set the LanguageToReportOnMerge system preference to: 'ba' 6) Edit the authority again, and check that your bibliographic record now looks like this, according to the system preference: 100 _7ba0yba0y _aItō _92646 7) Edit the authority again, but set the $7 of the latin field to its short form: 100 _7ba0yda0y _a伊東豊雄 100 _7ba _aItō 8) Check that the bibliographic record still has the latin field reported: 100 _7ba _aItō _92646 9) prove koha/t/db_dependent/Authority/Merge.t 10) Sign-off :) Sponsored-by: ENSA
(In reply to Frédéric Demians from comment #2) > Very interesting! Two remarks/demands: > > - Could you develop the syspref description? Something with sample, and > explaining the 2 language code forms, short and long. Agreed. The patch has been updated with a more descriptive syspref. > > - Wouldn't it make sense to have a repeatable languages selection? Let say I > select 'ba,fa'. It means that I want first 'ba' authority, if not available > then 'fa' authority, otherwise the 1st one. This is an interesting idea, but maybe perfect is the enemy of good :) I this this could be added later in another BZ if needed.
Created attachment 172923 [details] [review] Bug 38142: Choose language to report from authority to bibliographic record. Currently, when reporting authority field to the bibliographic records, the merge function uses the first matching authority field. However, authorities can provide multiple versions of the same field, with different languages, identified by a code in the $7 field. French reference for languages codes for example, but any code system could be used: https://documentation.abes.fr/sudoc/formats/unmb/DonneesCodees/CodesZone104.htm#$d This patch introduces the LanguageToReportOnMerge system preference, which allows to specify a language code. When set, if there is an authority field with the given language code, it will be used to report to the bibliographic record. If the system preference is not set, or there is no matching field, the default behavior will apply: the first field will be used. The $7 in the authority field can be in a short or long form: - the short form is 2 characters long. Example: ba - the long form is 8 characters long, with the short form in position 5 and 6 (starting from 1). Example: ba0yba0y Test plan: ---------- 1) Edit the 'Personal Name' authority type framework to make the 100 field repeatable 2) Add an authority with several languages, like this (the order is important): 100 _7ba0yda0y _a伊東豊雄 100 _7ba0yba0y _aItō 3) Add a bibliographic record linked to that authority. (Click on the "tag editor" icon next to the 100$a field in the bibliographic record to search for the authority, then Search main heading ($a only): contains Itō) Note that you can choose which version you want when searching for the authority, under the "Get it!" column For this example, choose the latin version: Itō You should now have this in your bibliographic record: 100 _aItō _92646 4) Edit the authority, you don't have to change anything, just edit and save. Note that your bibliographic record now looks like this: 100 _7ba0yda0y _a伊東豊雄 _92646 The first 100 field of the authority has been reported back to the bibliographic record, regardless of what you chose when selecting the authority. 5) Apply the patch, set the LanguageToReportOnMerge system preference to: 'ba' 6) Edit the authority again, and check that your bibliographic record now looks like this, according to the system preference: 100 _7ba0yba0y _aItō _92646 7) Edit the authority again, but set the $7 of the latin field to its short form: 100 _7ba0yda0y _a伊東豊雄 100 _7ba _aItō 8) Check that the bibliographic record still has the latin field reported: 100 _7ba _aItō _92646 9) prove koha/t/db_dependent/Authority/Merge.t 10) Sign-off :) Sponsored-by: ENSA Works smoothly, both with UNIMARC/MARC21 Signed-off-by: Frédéric Demians <f.demians@tamil.fr>