--- trunk/conf/normalize/mapping.pl 2006/06/29 21:53:00 545 +++ trunk/conf/normalize/mapping.pl 2006/07/02 18:36:22 563 @@ -1,66 +1,96 @@ -marc21('001', +# Leader + +if ( rec('999') && first(rec('999')) =~ m/pregledan/i) { + marc_leader('05','c'); +} else { + marc_leader('05','n'); +} + +marc_leader('06','a'); + +marc_leader('07','m'); + +marc_leader('18','i'); + +if ( rec('230') ) { + marc_leader('19','r'); +} + +# greška - 000 se ne zapisuje u marc: + +marc('001', rec('000') ); -marc21('020','a', +marc('020','a', rec('010') ); -marc21('101','a', +if (rec('300') && first(rec('300')) =~ m/prijevod/i) { + marc_indicators('041', 1, ' '); +} else { + marc_indicators('041', 0, ' '); +} + +marc_repeatable_subfield('041','a', rec('101') ); -marc21('245','a', +marc_indicators('245', 0, 0); +marc('245','a', rec('200','a') ); -marc21('245','b', +marc('245','b', join_with(' : ', rec('200','d'), rec('200','e') ) ); -marc21('245','c', +marc('245','c', join_with(' ; ', rec('200','f'), rec('200','g') ) ); -marc21('250','a', +marc('250','a', rec('205','a') ); -marc21('260','a', - rec('210','a') -); +_debug( 2 ); +warn "210a: ",dump( first(rec('210','a' )) ); -marc21('260','b', - rec('210','c') +marc_compose('260', + 'a', split_rec_on('210','a', qr/\s*;\s*/, 1), + 'b', first(rec('210','c')), + 'a', split_rec_on('210','a', qr/\s*;\s*/, 2), + 'c', first(rec('210','d')), ); -marc21('260','c', - rec('210','d') -); -marc21('300','a', +_debug( 0 ); + +marc('300','a', rec('215','a') ); -marc21('300','b', +marc('300','b', rec('215','c') ); -marc21('300','c', +marc('300','c', rec('215','d') ); -marc21('300','e', +marc('300','e', rec('215','e') ); -marc21('490','a', + +marc_indicators('490', 1, ' '); +marc('490','a', join_with(' = ', rec('225','a'), join_with(" : ", @@ -73,30 +103,63 @@ ) ); -marc21('490','v', +marc('490','v', rec('225','v') ); -marc21('500','a', +marc('500','a', rec('300') ); -marc21('504','a', +marc('500','a', + rec('314') +); + +marc('504','a', rec('320') ); -marc21('655','a', +marc('501','a', + rec('327') +); + +marc('520','a', + rec('330') +); + +# možda i polje 520y - jezik napomene ako je uvijek isti jezik + +marc_indicators('655', ' ', 4); +marc('655','a', + rec('608') +); + +marc_indicators('653', ' ', ' '); +marc('653','a', rec('610') ); -marc21('100','a', +marc('080','a', + rec('675','a') +); + +# podpolja c, d ... - što s njima? + +marc('084','a', + rec('686') +); + +marc_indicators('100', 1, ' '); +marc('100','a', join_with(', ', rec('700', 'a'), rec('700', 'b') ) ); -marc21('700','a', + +marc_indicators('700', 1, ' '); +marc('700','a', join_with(', ', rec('701', 'a'), rec('701', 'b') @@ -104,23 +167,80 @@ ); if ( rec('701') ) { - marc21('700','4', - '070' - ); +marc('700','4', + 'aut' +); } -marc21('700','a', +marc('700','a', join_with(', ', rec('702','a'), rec('702','b') ) ); -if ( rec('702') ) { - marc21('700','4', - '340' - ); -} +# podesiti podpolje 4 na editore nije dobra ideja +# +# if ( rec('702') ) { +# marc('700','4', +# '340' +# ); +# } + +if ( rec('710','f') ) { +marc_indicators('111', 2, ' '); +marc('111','a', + rec('710','a') +); + +marc('111','e', + rec('710','b') +); +marc('111','n', + rec('710','d') +); + +marc('111','c', + rec('710','e') +); + +marc('111','d', + rec('710','f') +); + +} else { + +marc_indicators('110', 2, ' '); +marc('110','a', + rec('710','a') +); + +marc('110','c', + rec('710','c') +); + +} +# zapisi za duplanje +# +# if ( rec('230') ) { +# +# marc('245','a', +# rec('230','a') +# ); +# +# marc('245','b', +# rec('230','e') +# ); +# +# marc('245','c', +# rec('230','f') +# ); +# +# marc('245','n', +# rec('230','v') +# ); +# +# }