marc_fixed('007',00,'ta');
-## 008
-marc_fixed('008','00', '070707');
-marc_fixed('008','06', '|'); # Type of date/Publication status
-marc_fixed('008','07', '|'); # Date 1
-marc_fixed('008','08', '|');
-marc_fixed('008','09', '|');
-marc_fixed('008','10', '|');
-marc_fixed('008','11', '|'); # Date 2
-marc_fixed('008','12', '|');
-marc_fixed('008','13', '|');
-marc_fixed('008','14', '|');
-marc_fixed('008','15', # Place of publication, production, or execution
- lookup(
- sub { rec('102','a') },
- 'nsk','bbaza',
- sub { rec('011','a') },
- sub { rec('11') },
- ),
-);
-marc_fixed('008','18', '');
-marc_fixed('008','35', # Language
- rec('101')
-);
-marc_fixed('008','39','|'); # Cataloging source
+## 008 - All materials
+marc_fixed('008','00', '070707'); # Date entered on file
+marc_fixed('008','06', 's'); # Type of date/Publication status
+if ( rec('11') ) {
+ if ( my $lookup = lookup(
+ sub { rec('210','d') },
+ 'nsk','bbaza',
+ sub { first( rec('011','a') ) },
+ sub { rec('11') },
+ )
+ ) {
+ marc_fixed('008','07', $lookup);
+ } else {
+ marc_fixed('008','07',
+ rec('210','d')
+ );
+ }
+} # Date 1
+marc_fixed('008','11', ' '); # Date 2
+marc_fixed('008','15',
+ lc ( rec('102') )
+); # Place of publication, production, or execution
+#marc_fixed('008','35',
+# rec('101')
+#); # Language
+marc_fixed('008','38', '|'); # Modified record
+marc_fixed('008','39','d'); # Cataloging source
+
+
+## 008 - Continuing resources
+marc_fixed('008','18', '|'); # Frequency
+marc_fixed('008','19', '|'); # Regularity
+marc_fixed('008','21', 'p'); # Type of continuing resource
+marc_fixed('008','29', '|'); # Conference publication
+marc_fixed('008','33', '|'); # Original alphabet or script of title
+marc_fixed('008','34', '|'); # Entry convention
-## 022
+## 022
if ( ! rec('225','a') ) {
marc('022','a',
rec('11')
)
);
-# u marc 035a treba dodati System Number -
-# NSK zapisuje Voyagerov ID (001) - kako ???
-
-# u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
-
-
-# u polje 040a mo¾da jo¹ dodati prefiks HR
-# NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
marc('040','a',
'HR FFZG'
'HR PPIAK'
);
-# if (rec('300') && first(rec('300')) =~ m/Prijevod/) {
-# marc_indicators('041', 1, ' ');
-# } else {
-# marc_indicators('041', 0, ' ');
-# }
-
-## naci primjer u NSK
+marc_indicators('041', 0, ' ');
marc_repeatable_subfield('041','a',
rec('101')
);
-if ( ( rec('200','a') =~ m/^Die /) ||
- ( rec('200','a') =~ m/^Das /) ||
- ( rec('200','a') =~ m/^The /) ) {
- marc_indicators('245', 0, 4);
-} else {
- marc_indicators('245', 0, 0);
-}
-
#_debug(3);
-marc('044','a',
- lookup(
- sub { rec('102','a') },
- 'nsk','bbaza',
- sub { rec('011','a') },
- sub { rec('11') },
- ),
-);
+## 044 - zemlja izdavanja
+
+if ( rec('11') ) {
+ marc('044','a',
+ lookup(
+ sub { rec('102','a') },
+ 'nsk','bbaza',
+ sub { first( rec('011','a') ) },
+ sub { rec('11') },
+ ),
+ );
+}
marc('080','a',
rec('675','a')
);
-marc_indicators('100', 1, ' ');
-marc('100','a',
- join_with(', ',
- rec('700', 'a'),
- rec('700', 'b')
- )
-);
-
-marc_indicators('110', 2, ' ');
-marc('110','a',
- rec('710','a')
-);
+marc_indicators('210', '1',' ');
-marc('110','c',
- rec('710','c')
+if ( rec('11') ) {
+marc('210','a',
+ lookup(
+ sub { rec('531','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
);
+}
+marc_indicators('222',' ','0'); # drugi indikator prema èlanu
+if ( rec('11') ) {
marc('222','a',
lookup(
sub { rec('530','a') },
sub { rec('11') },
)
);
+}
### 245 indikatori
+if ( ( rec('200','a') =~ m/^Die /) ||
+ ( rec('200','a') =~ m/^Das /) ||
+ ( rec('200','a') =~ m/^The /) ) {
+ marc_indicators('245', 0, 4);
+} else {
+ marc_indicators('245', 0, 0);
+}
+
+
+## 245
marc_compose('245',
'a', suffix(
( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :
);
## 246
+if ( ( rec('200','a') =~ m/^Die /) ||
+ ( rec('200','a') =~ m/^Das /) ||
+ ( rec('200','a') =~ m/^The /) ) {
+ marc_indicators('246', 0, 4);
+} else {
+ marc_indicators('246', 0, 0);
+}
-marc_indicators('246', 1, 3);
-marc('246','a',
- rec('532')
-);
+if ( rec('532') ) {
+ marc('246','a',
+ rec('532')
+ );
+}
+
+#else {
+# marc('246','a',
+# lookup(
+# sub { rec('532','a') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# );
+#}
#_debug(0);
-marc('250','a',
- suffix(
- rec('205','f') ? ' / ' :
- ' '.
- rec('205','a')
- )
-);
-marc('250','b',
- rec('205','f')
-);
-
-# ponovljiva potpolja u originalnom redosljedu
-#
-marc_original_order('260', '210');
+## 260 - izdavanje
+
+# if ( rec('11') ) {
+# marc_repeatable_subfield('260','a',
+# lookup(
+# sub { rec('210','a') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# );
+# marc_repeatable_subfield('260','b',
+# lookup(
+# sub { rec('210','c') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# );
+# marc('260','c',
+# lookup(
+# sub { rec('210','d') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# );
+# } else {
+# marc_original_order('260', '210');
+# }
+marc_original_order('260','210');
# provjeriti interpunkcije !!
# u NSK nesto ne stima
marc('300','a',
suffix(
- rec('215','c') ? ' : ' :
- rec('215','d') ? ' ; ' :
- rec('215','e') ? ' + ' :
+ ( rec('215','a') && rec('215','c') ) ? ' : ' :
+ ( rec('215','a') && rec('215','d') ) ? ' ; ' :
+ ( rec('215','a') && rec('215','e') ) ? ' + ' :
' ',
rec('215','a')
)
rec('215','e')
);
+## 310 - current stated publication frequency
marc('310','a',
- lookup(
- sub { rec('326','a') },
- 'nsk','bbaza',
- sub { rec('011','a') },
- sub { rec('11') },
- )
-);
-
-marc('321','a',
rec('326')
);
+## 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
+# marc('321','a',
+# ovo bi trebalo procitati iz NSK konvertiranih podataka
+#);
+
marc_indicators('362', 0, ' ');
-marc('362','a',
- lookup(
- sub { rec('207','a') },
- 'nsk','bbaza',
- sub { rec('011','a') },
- sub { rec('11') },
- ),
-);
+## 362
+if ( rec('207','a') ) {
+ marc('362','a',
+ rec('207','a'),
+ );
+} else {
+ if ( rec('11') ) {
+ marc('362','a',
+ lookup(
+ sub { rec('207','a') },
+ 'nsk','bbaza',
+ sub { first( rec('011','a') ) },
+ sub { rec('11') },
+ )
+ );
+ }
+}
+## 5xx
marc('500','a',
- lookup(
- sub { rec('300','a') },
- 'nsk','bbaza',
- sub { rec('011','a') },
- sub { rec('11') },
- )
+ rec('300','a'),
);
-marc('500','a',
+
+marc('534','a',
+ rec('324')
+);
+
+if ( rec('11') ) {
+marc('546','a',
lookup(
sub { rec('302','a') },
'nsk','bbaza',
sub { rec('11') },
)
);
-
-marc('504','a',
- lookup(
- sub { rec('320','a') },
+
+marc('550','a',
+ lookup(
+ sub { rec('314','a') },
'nsk','bbaza',
sub { rec('011','a') },
sub { rec('11') },
)
);
-marc('562','a',
+marc('555','a',
lookup(
- sub { rec('316','a') },
+ sub { rec('320','a') },
'nsk','bbaza',
sub { rec('011','a') },
sub { rec('11') },
)
);
-
-
-#marc('500','a',
-# rec('300')
-#);
-#
-#marc('500','a',
-# rec('314')
-#);
-#
-#marc('504','a',
-# rec('320')
-#);
-
-## napomene uz konverziju polja 327 (sadrzaj):
-# NSK konvertira 327 (NP) u 501 (R)
-# u LOC konv. tablici stoji 327 (NP) u 505 (NR)
-# standard i validacije dopu¹taju 501 (R) i 505 (R)
-
-## FFPS 327 - sadrzaj
-if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
- marc_indicators('505', '1', ' ');
- marc('505','a',
- regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
- rec('327')
- )
-);
-}
-
-## napomene uz konverziju polja 330:
-# NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
-
-# FFPS 330 (NP) - sa¾etak
-if ( config() =~ m/ffps/ ) {
- marc('520','a',
- regex('s/[\\r\\n]+/. /g',
- rec('330')
- )
- );
+# marc('562','a',
+# lookup(
+# sub { rec('316','a') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# );
}
-
-# FFTU 330 - ???
-if ( config() =~ m/fftu/ ) {
- marc('520','a',
- rec('330')
- );
-}
-
-
-# mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
-
-
-### 534
-
-marc('534','a',
- rec('324')
-);
-
-
-marc_indicators('655', ' ', 4);
-marc('655','a',
- rec('608')
-);
-
+
marc_indicators('653', 0, ' ');
marc('653','a',
rec('610')
);
-# 675 podpolja c, d ... - ¹to s njima ???
-
-# 084 je other classification (R)
-# NSK ga koristi za struènu oznaku NSK iz polja 681
-# NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
-#
-
+# marc_indicators('655', ' ', 4);
+# marc('655','a',
+# lookup(
+# sub { rec('608','a') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# );
#_debug(2);
marc_indicators('700', 1, ' ');
-if ( rec('701') ) {
-marc('700','4',
- 'aut'
-);
-}
-
-marc('700','a',
- join_with(', ',
- rec('701', 'a'),
- rec('701', 'b')
- )
-);
-
-marc('700','a',
- join_with(', ',
- rec('701', 'c'),
- rec('701', 'd')
- )
-);
-
-marc('700','a',
- join_with(', ',
- rec('701', 'e'),
- rec('701', 'f')
- )
-);
-
-marc('700','a',
- join_with(', ',
- rec('701', 'g'),
- rec('701', 'h')
- )
-);
-
-
marc('700','a',
rec('702','a'),
);
-
-# ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
-
-
marc('700','a',
join_with(', ',
rec('702','c'),
)
);
-marc('700','a',
- join_with(', ',
- rec('702','e'),
- rec('702','f')
- )
-);
-
-marc('700','a',
- join_with(', ',
- rec('702','g'),
- rec('702','h')
- )
-);
-
#_debug(0);
-
-
-marc_indicators('740', 0, ' ');
-
-if ( ! rec('464') ) {
-marc('740','a',
- rec('200','c')
-);
-
-marc('740','a',
- rec('200','k')
+marc_indicators('710', '2', ' ');
+marc('710','a',
+ rec('710','a')
);
-} else {
-marc('740','a',
- rec('464','a')
-);
-};
marc_indicators('770', 0, ' ');
marc('770','t',
- rec('430','a'),
+ rec('421','a'),
);
-marc('770','x',
- rec('430','b'),
+marc_indicators('772', 0, ' ');
+marc('772','t',
+ rec('422','a'),
);
-if ( rec('225','a') ) {
-
-marc_indicators('773', 0, ' ');
-marc('773','g',
- rec('207','a')
+marc_indicators('777', 0, ' ');
+marc('777','t',
+ rec('423','a'),
);
-marc('773','t',
- join_with(' : ',
- rec('225','a'),
- rec('225','e')
- ),
+marc_indicators('780', 0, 0);
+marc('780','t',
+ rec('430','a'),
);
-marc('773','w',
- lookup(
- sub {
- join_with('',
- uc( config() ),
- ' P',
- rec('000')
- ),
- },
- 'ffsf','peri',
- sub { rec('200','a') },
- sub { rec('225','a') },
- )
+marc_indicators('785', 0, 0);
+marc('785','t',
+ rec('440','a'),
);
-}
-
marc('852','j',
join_with(' ',
rec('990')
)
);
-
-marc('997','a',
- sort(
- lookup(
- sub { rec('001') },
- 'nsk','bbaza',
- sub { rec('011','a') },
- sub { rec('11') },
- )
- )
-);
-
-marc('998','a',
- sort(
- lookup(
- sub { rec('001') },
- 'nsk','bbaza',
- sub { first(rec('200','a')) . first(rec('200','e')) },
- sub { rec('200','a') . rec('200','e') },
- )
- )
-);
-
-marc('998','a',
- sort(
- lookup(
- sub { rec('001') },
- 'nsk','bbaza',
- sub { first(rec('200','a')) },
- sub { rec('200','a') },
- )
- )
-);
+# marc('997','a',
+# sort(
+# lookup(
+# sub { rec('001') },
+# 'nsk','bbaza',
+# sub { rec('011','a') },
+# sub { rec('11') },
+# )
+# )
+# );
+#
+# marc('998','a',
+# sort(
+# lookup(
+# sub { rec('001') },
+# 'nsk','bbaza',
+# sub { first(rec('200','a')) . first(rec('200','e')) },
+# sub { rec('200','a') . rec('200','e') },
+# )
+# )
+# );
+#
+# marc('998','a',
+# sort(
+# lookup(
+# sub { rec('001') },
+# 'nsk','bbaza',
+# sub { first(rec('200','a')) },
+# sub { rec('200','a') },
+# )
+# )
+# );
}