[Koha] Marc framework test error

Ricardo Dias Marques lists at ricmarques.net
Wed Jul 29 23:11:33 NZST 2009


Hi Zeno, and list,

[ I'm adding "Koha -Devel" back to the "Cc:" list because I think that
this discussion has REALLY "moved" to code (programming)
considerations. I further suggest that, in followups, we remove the
koha "regular" mailing list from the "Cc:" list ]


ZENO: Thank you very much for your reply!  :)   My comments follow inline.

On Tue, Jul 29, 2009, I wrote:

>>Where does the "| Authority:PER, " in the "Constraints" part of
>>Subfield "a" (Entry Element) come from?


And on Wed, Jul 29, 2009 at 08:12, Zeno Tajoli<tajoli at cilea.it> replied:

> This definition comes from english Unimarac setup of Koha.
> Go to the file
>  installer/data/mysql/en/marcflavour/unimarc/
> mandatory/unimarc_framework_DEFAULT.sql
> line 1362:
> ('700', 'a', 'Entry Element', 'Entry Element', 0, 0, '', 7, '',
> 'PER', '', 0, 0, '', '', '', NULL),
>
> The string 'PER' is the link to authority for subfield 700$a

Excellent! Thank you very much for that information.


> But in the english Koha definition of Unimarc Authority there isn't a
> specific structure for Personal Name.
> You can see this situation in the file
>  installer/data/mysql/en/marcflavour/unimarc/
> mandatory/authorities_normal_unimarc.sql

Right again. In the case of the French definition for UNIMARC
Authorities, located at:

/usr/share/koha/intranet/cgi-bin/installer/data/mysql/fr-FR/marcflavour/unimarc_lecture_pub/Obligatoire/autorites_norme_unimarc.sql

... there is this line (line 29 for Koha 3.0.3):

INSERT INTO `auth_types` (`authtypecode`, `authtypetext`,
`auth_tag_to_report`, `summary`) VALUES ('NP', 'Auteur', '200',
'[200a][, 200b][ 200d][ ; 200c][ (200f)]');

... and, the line for the "UNIMARC Bibliographic" French definition
(for the default "MARC Bibliographic framework") does NOT force a
specific code for Authors, like the English one does:

Line 28: INSERT INTO `marc_tag_structure` (`tagfield`, `liblibrarian`,
`libopac`, `repeatable`, `mandatory`, `authorised_value`,
`frameworkcode`) VALUES
...
Line 197: ('700', 'Auteur principal', 'Auteur', 0, 0, '', ''),


So, I'm thinking that this obligation to have an Authority framework
with a code called PER in the English framework should be reported as
a bug in Koha's Bugzilla.


> Well, in version 3.0.x the only place where the name of Authority is
> hardcoded, as I know,
> is in unimarc_framework_DEFAULT.sql (as I write above).
> The suggestion of Joe is correct.

Agreed.


> In fact the english setup of Unimarc has problems and  not only here,
> also in Zebra defintions and in fields used for items
> information.
> I think that a general check of english unimarc setup is a must, also
> to use it as a starting point for translation in different
> languages.
> But who want ot use Unimarc ?
> Italy (I)
> Portugal (Ricardo Dias Marques)
> France (Biblibre, but the fr-FR section is correct I think)

Well, according to the Wikipedia article about UNIMARC -
http://en.wikipedia.org/wiki/MARC_standards - "[UNIMARC is] the
official MARC in France, Italy, Russia, Portugal, Greece and other
countries."

So, it would be important (for the Libraries of those countries) that
Koha implements well UNIMARC, if they are considering / using Koha.


I think there should be only:
- 1 (ONE) Unimarc Bibliographic SQL file
- and 1 (ONE) Unimarc Authorites SQL file

... and NOT one of those for EACH language. The current situation,
IMHO, leads to much Copy + Paste work, when one needs to create a new
translation (both tiresome and error prone). Also, if there is one BUG
in one language setup (SQL files) - like this requirement of an
"Authority Type" called "PER" in the English one - we'll probably have
to change all the other languages (SQL files) that were copied from
that one, to correct that bug.

I think that the descriptions (for instance "liblibrarian" and
"libopac" fields of the "marc_tag_structure" table) are the only
fields that have to be translated. These fields could, for instance:

Option A - Be added as additional fields (eg: liblibrarian-en,
librarian-fr...). I think this would NOT be elegant at all!

Option B - Move the "liblibrarian", "libopac" to another table (call
it something like "marc_tag_structure_descriptions_translations") with
fields "tagfield", "liblibrarian", "libopac" and "language" (and maybe
"frameworkcode" also... I'm not sure regarding this last one).

For instance:

INSERT INTO `marc_tag_structure_descriptions_translations`
(`tagfield`, `liblibrarian`, `libopac`, `language`) VALUES
('102', 'Country of Publication or Production', 'Country of
Publication or Production', en),
('102', 'Pays de publication ou de production', 'Pays de publication
ou de production', 'fr-FR'),
('102', 'País de publicação ou produção', 'País de publicação ou
produção', pt-PT'),
...


There may be other options that are even more elegant and/or practical
than this last one. Any suggestions?

I understand that this may require relatively large changes in code in
SQL files and Perl code ("refactoring"), so it would take a while to
implement. But I also think that it could SAVE us time (and lots of
trouble) in the long run.


What do you (all) think? Am I totally wrong here?

Cheers,
     Ricardo

P.S: - ZENO: if you spend holidays in Portugal, send me an e-mail, so
I can buy you a beer!  :)


More information about the Koha mailing list