4 |
# UNIMARC formatu, sa višestrukim odstupanjima od standarda. |
# UNIMARC formatu, sa višestrukim odstupanjima od standarda. |
5 |
|
|
6 |
|
|
7 |
## konvertira se ako postoji polje 200^a |
## lookup rezultat za sabrana djela |
8 |
|
my $sabrana; |
9 |
|
|
10 |
|
|
11 |
|
## konvertira se ako postoji polje 200^a |
12 |
if ( rec('200','a') ) { |
if ( rec('200','a') ) { |
13 |
|
|
14 |
### LEADER |
### LEADER |
15 |
|
|
16 |
## LDR 05 - c = pregledan ; n = new |
## LDR 05 - c = pregledan ; n = new |
17 |
|
## provjeriti za svaku bazu koje polje koristi |
18 |
## 999^aP - SFM |
## 999^aP - SFM |
19 |
|
|
20 |
if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) { |
if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) { |
29 |
|
|
30 |
## LDR 07 - m - Monograph/item |
## LDR 07 - m - Monograph/item |
31 |
|
|
32 |
|
if ( config() =~ m/fffi/ ) { |
33 |
|
$sabrana = |
34 |
|
lookup( |
35 |
|
sub{ rec('A') }, |
36 |
|
'fffi','sabrana', |
37 |
|
sub { rec('B') }, |
38 |
|
sub { rec('000') } |
39 |
|
); |
40 |
|
} |
41 |
|
|
42 |
|
if ( ! $sabrana ) { |
43 |
marc_leader('07','m'); |
marc_leader('07','m'); |
44 |
|
} else { |
45 |
|
marc_leader('07','c'); |
46 |
|
} |
47 |
|
|
48 |
## LDR 17 - 3 |
## LDR 17 - Encoding level ; 7 - minimal level |
49 |
marc_leader('17','7'); |
marc_leader('17','7'); |
50 |
|
|
51 |
## LDR 18 |
## LDR 18 - i - isbd |
52 |
marc_leader('18','i'); |
marc_leader('18','i'); |
53 |
|
|
54 |
## LDR 19 - razjasniti |
## LDR 19 |
55 |
# nema više r, ima #, a, b ili c |
# # - Not specified or not applicable; a - Set; b - Part with independent title; c - Part with dependent title |
56 |
|
|
57 |
|
#if ( ( ! $sabrana ) && ( rec('230') || rec('231') || rec('232') || rec('233') ) ) { |
58 |
|
# marc_leader('19','a'); |
59 |
|
#} |
60 |
|
|
61 |
if ( rec('230') | rec('231') | rec('232') | rec('233') ) { |
if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) { |
62 |
marc_leader('19','a'); |
marc_leader('19','a'); |
63 |
} |
} |
64 |
|
|
65 |
### 008 - All materials |
### 008 - All materials |
66 |
## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje |
## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje |
67 |
## ostaviti prazno tamo gdje nema ništa |
## provjereno: fi |
68 |
|
|
69 |
if ( rec('994','c') =~ m/\d{8}/ ) { |
if ( rec('994','c') =~ m/\d{8}/ ) { |
70 |
marc_fixed('008','00', |
marc_fixed('008','00', |
100 |
#); |
#); |
101 |
|
|
102 |
## 008 06 - Type of date/Publication status |
## 008 06 - Type of date/Publication status |
103 |
## dodati i ostale mogućnosti |
|
104 |
## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c |
## 008 07-10 - Date 1 - |
105 |
## srediti sve moguće upitne godine |
## srediti sve moguće oznake za godine (06) |
106 |
|
## 210d kroz modify postaje 210c |
107 |
|
|
108 |
if ( rec('210','c') ) { |
if ( rec('210','c') ) { |
109 |
my $d1; |
my $d1 = ''; |
110 |
my $d2; |
my $d2 = ''; |
111 |
if ( rec('210','c') =~ m/\?/ ) { |
if ( rec('210','c') =~ m/(\?)/ ) { |
112 |
marc_fixed('008','06','q'); |
marc_fixed('008','06','q'); |
113 |
|
if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) { |
114 |
|
$d1 = $1.'uu'; |
115 |
|
} |
116 |
|
if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) { |
117 |
|
$d1 = $1.'u'; |
118 |
|
} |
119 |
|
if ( rec('210','c') =~ m/(\d{4})/ ) { |
120 |
|
$d1 = $1; |
121 |
|
} |
122 |
|
} elsif ( rec('210','c') =~ m/(\d{4})-/ ) { |
123 |
|
if ( $sabrana ) { |
124 |
|
marc_fixed('008','06','i'); |
125 |
|
} else { |
126 |
|
marc_fixed('008','06','m'); |
127 |
|
} |
128 |
|
if ( rec('210','c') =~ m/(\d{4})-/ ) { |
129 |
|
$d1 = $1; |
130 |
|
$d2 = '9999'; |
131 |
|
} |
132 |
|
if ( rec('210','c') =~ m/-(\d{4})/ ) { |
133 |
|
$d2 = $1; |
134 |
|
} |
135 |
} else { |
} else { |
136 |
marc_fixed('008','06','s'); |
marc_fixed('008','06','s'); |
137 |
} |
if ( rec('210','c') =~ m/(\d{4})/ ) { |
138 |
if ( rec('210','c') =~ m/(\d{4})/ ) { |
$d1 = $1; |
139 |
$d1 = $1; |
} |
|
} else { |
|
|
$d1 = ''; |
|
|
} |
|
|
if ( rec('210','c') =~ m/^.*-(\d{4})/ ) { |
|
|
$d2 = $1; |
|
|
} else { |
|
|
$d2 = '', |
|
|
} |
|
|
if ( rec('210','c') =~ m/(\d{2})--/ ) { |
|
|
$d1 = $1.'uu'; |
|
|
marc_fixed('008','06','u'); |
|
140 |
} |
} |
141 |
|
|
142 |
marc_fixed('008','07',$d1); # 07-10 - Date 1 |
marc_fixed('008','07',$d1); # 07-10 - Date 1 |
241 |
marc('020','z', |
marc('020','z', |
242 |
rec('10','z') |
rec('10','z') |
243 |
); |
); |
|
|
|
244 |
} |
} |
245 |
|
|
246 |
#warn( |
#warn( |
250 |
#); |
#); |
251 |
|
|
252 |
### 035$ |
### 035$ |
253 |
## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku. |
## marc 035a - System Number |
254 |
## marc 035a - System Number - Voyagerov ID (001) |
## polje može sadržavati slova i razmake, problem u pretraživanju ako ima zagrade, kako bi trebalo po standardu |
|
## polje 035$9 može sadržavati slova i razmake |
|
255 |
|
|
256 |
marc('035','a', |
marc('035','a', |
257 |
join_with('', |
join_with('', |
273 |
marc('040','a', |
marc('040','a', |
274 |
'HR-ZaFF' |
'HR-ZaFF' |
275 |
); |
); |
|
|
|
276 |
marc('040','b', |
marc('040','b', |
277 |
'hrv' |
'hrv' |
278 |
); |
); |
|
|
|
279 |
marc('040','c', |
marc('040','c', |
280 |
'HR-ZaFF' |
'HR-ZaFF' |
281 |
); |
); |
|
|
|
282 |
marc('040','e', |
marc('040','e', |
283 |
'ppiak' |
'ppiak' |
284 |
); |
); |
285 |
|
|
|
|
|
286 |
### 041 - indikatori |
### 041 - indikatori |
287 |
## pretpostavke o indikatorima |
## pretpostavke o indikatorima |
288 |
## 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1 |
## 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1 |
292 |
## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake) |
## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake) |
293 |
## pr. 821.111-2=163.42 je prijevod engleske drame na HR. |
## pr. 821.111-2=163.42 je prijevod engleske drame na HR. |
294 |
## to ima samo za književna djela, eseje.... |
## to ima samo za književna djela, eseje.... |
|
## ???? |
|
295 |
|
|
296 |
#if ( rec('675') =~ m/\d=\d/ ) ? |
#if ( rec('675') =~ m/\d=\d/ ) ? |
297 |
|
|
298 |
if ( |
if ( |
299 |
grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) || |
grep( m/prijevod/i, rec('300') ) |
300 |
grep( m/[preve|prijevod]/i, rec('200','f')) || |
|| grep( m/nasl.*izv/i, rec('300') ) |
301 |
grep( m/[preve|prijevod]/i, rec('200','g')) |
# ( frec('300') =~ m/Prijevod/ ) |
302 |
|
# || ( rec('300') =~ m/izvorni stvarni naslov/i ) |
303 |
|
# || ( rec('300') =~ m/naslov izvornika/i ) |
304 |
|
# grep( m/[prijevod|stvarni\snaslov]/i, rec('300') ) |
305 |
) { |
) { |
306 |
marc_indicators('041', 1, ' '); |
marc_indicators('041', 1, ' '); |
307 |
} else { |
marc_repeatable_subfield('041','a', |
308 |
|
map { lc($_) } rec('101') |
309 |
|
); |
310 |
|
} elsif ( |
311 |
|
count( rec('101') ) > 1 |
312 |
|
) { |
313 |
marc_indicators('041', 0, ' '); |
marc_indicators('041', 0, ' '); |
314 |
|
marc_repeatable_subfield('041','a', |
315 |
|
map { lc($_) } rec('101') |
316 |
|
); |
317 |
} |
} |
318 |
|
|
319 |
### 041 |
### 041 |
320 |
## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a) |
## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a) |
321 |
|
## polje se koristi kad ima više od jednog jezika, ili kad se radi o prijevodu |
322 |
#_debug(2); |
#_debug(2); |
|
|
|
|
marc_repeatable_subfield('041','a', |
|
|
map { lc($_) } rec('101') |
|
|
); |
|
323 |
|
|
324 |
#_debug(0); |
#_debug(0); |
325 |
|
|
328 |
|
|
329 |
### 080 |
### 080 |
330 |
## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu |
## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu |
331 |
|
## fi: abcd |
332 |
|
|
333 |
marc('080','a', |
marc('080','a', |
334 |
rec('675','a') |
rec('675','a') |
376 |
|
|
377 |
### 111 i 110 |
### 111 i 110 |
378 |
## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguće su greške. |
## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguće su greške. |
379 |
|
## popraviti interpunkciju |
380 |
|
|
381 |
# ovo vrijedi za FFSFB |
# ovo vrijedi za FFSFB |
382 |
if ( rec('710','d') || rec('710','e') || rec('710','f') ) { |
if ( rec('710','d') || rec('710','e') || rec('710','f') ) { |
409 |
), |
), |
410 |
'+',')', |
'+',')', |
411 |
); |
); |
|
|
|
|
|
|
412 |
} else { |
} else { |
413 |
|
marc_indicators('110', 2, ' '); |
414 |
marc_indicators('110', 2, ' '); |
marc('110','a', |
415 |
|
rec('710','a') |
|
marc('110','a', |
|
|
rec('710','a') |
|
|
); |
|
|
|
|
|
marc('110','b', |
|
|
rec('710','b') |
|
|
); |
|
|
|
|
|
if ( rec('710','c') ) { |
|
|
marc('110','c', |
|
|
surround('(', ')', rec('710','c')) |
|
416 |
); |
); |
417 |
|
marc('110','b', |
418 |
|
rec('710','b') |
419 |
|
); |
420 |
|
if ( rec('710','c') ) { |
421 |
|
marc('110','c', |
422 |
|
surround('(', ')', rec('710','c')) |
423 |
|
); |
424 |
} |
} |
|
|
|
425 |
} |
} |
426 |
|
|
|
|
|
427 |
### 245 indikatori |
### 245 indikatori |
428 |
## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710 |
## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710 |
429 |
## i2 = pretpostavlja se na temelju člana na početku naslova i jezika |
## i2 = pretpostavlja se na temelju člana na početku naslova i jezika |
433 |
|
|
434 |
if ( rec('700') || rec('710') ) { |
if ( rec('700') || rec('710') ) { |
435 |
$i1 = 1; |
$i1 = 1; |
|
|
|
436 |
} else { |
} else { |
437 |
$i1 = 0; |
$i1 = 0; |
438 |
} |
} |
442 |
if ( rec('200','a') =~ m/^Einen / ) { |
if ( rec('200','a') =~ m/^Einen / ) { |
443 |
marc_indicators('245', $i1, 6); |
marc_indicators('245', $i1, 6); |
444 |
} |
} |
|
|
|
445 |
if ( rec('200','a') =~ m/^Eine / ) { |
if ( rec('200','a') =~ m/^Eine / ) { |
446 |
marc_indicators('245', $i1, 5); |
marc_indicators('245', $i1, 5); |
447 |
} |
} |
448 |
|
if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|Los|The) / ) { |
|
if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) { |
|
449 |
marc_indicators('245', $i1, 4); |
marc_indicators('245', $i1, 4); |
450 |
} |
} |
451 |
|
if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Lo|Il) / ) { |
|
if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
|
452 |
marc_indicators('245', $i1, 3); |
marc_indicators('245', $i1, 3); |
453 |
} |
} |
454 |
|
if ( ( rec('101') =~ m/ENG/ ) && ( rec('200','a') =~ m/^A / ) ) { |
455 |
if ( rec('200','a') =~ m/^(A|L) / ) { |
marc_indicators('245', $i1, 2); |
456 |
|
} |
457 |
|
if ( rec('200','a') =~ m/^L / ) { |
458 |
marc_indicators('245', $i1, 2); |
marc_indicators('245', $i1, 2); |
459 |
} |
} |
|
|
|
460 |
if ( rec('200','a') =~ m/^L'/ ) { |
if ( rec('200','a') =~ m/^L'/ ) { |
461 |
marc_indicators('245', $i1, 2); |
marc_indicators('245', $i1, 2); |
462 |
} |
} |
463 |
|
|
464 |
|
|
465 |
### 245 |
### 245 |
466 |
## potpolja i interpunkcije pripremljeni u modify |
## postoji modify |
467 |
## da li treba makivati razmake u inicijalima? |
## da li treba makivati razmake u inicijalima? |
468 |
|
|
469 |
#_debug(3); |
#_debug(3); |
496 |
rec('200','k'), |
rec('200','k'), |
497 |
), |
), |
498 |
'c', suffix( |
'c', suffix( |
499 |
( rec('200','f') && rec('200','c') ) ? '.' : |
( rec('200','f') && rec('200','c') ) ? '. ' : |
500 |
'', |
'', |
501 |
join_with(' ; ', |
join_with(' ; ', |
502 |
regex('s/(\S\.)\s(\S\.\s)/$1$2/g', |
regex('s/(\S\.)\s(\S\.\s)/$1$2/g', |
509 |
), |
), |
510 |
## append to last subfield |
## append to last subfield |
511 |
'+', suffix('.', |
'+', suffix('.', |
512 |
rec('200','c'), |
join_with(' / ', |
513 |
|
rec('200','c'), |
514 |
|
rec('200','x') |
515 |
|
) |
516 |
), |
), |
517 |
); |
); |
518 |
|
|
559 |
rec('215','a') |
rec('215','a') |
560 |
) |
) |
561 |
); |
); |
|
|
|
562 |
marc('300','b', |
marc('300','b', |
563 |
suffix( |
suffix( |
564 |
( rec('215','c') && rec('215','d') ) ? ' ; ' : |
( rec('215','c') && rec('215','d') ) ? ' ; ' : |
567 |
rec('215','c') |
rec('215','c') |
568 |
) |
) |
569 |
); |
); |
|
|
|
570 |
marc('300','c', |
marc('300','c', |
571 |
suffix( |
suffix( |
572 |
rec('215','e') ? ' + ' : |
rec('215','e') ? ' + ' : |
573 |
'.', |
'', |
574 |
rec('215','d') |
rec('215','d') |
575 |
) |
) |
576 |
); |
); |
|
|
|
577 |
marc('300','e', |
marc('300','e', |
578 |
rec('215','e') |
rec('215','e') |
579 |
); |
); |
580 |
|
|
581 |
### 362 - brojčani podaci za nakladničku cjelinu - razjasniti upotrebu |
### 362 - brojčani podaci za nakladničku cjelinu - to mi nemamo, polje se koristi samo za časopise |
582 |
|
|
583 |
|
|
584 |
# if ( ! rec('225','z') ) { |
# if ( ! rec('225','z') ) { |
585 |
|
|
642 |
|
|
643 |
#} else { |
#} else { |
644 |
|
|
|
|
|
645 |
### 440 - indikatori |
### 440 - indikatori |
646 |
## 2.ind. prema jeziku i članu, provjeriti |
## 2.ind. prema jeziku i članu, uskladiti s 245 |
647 |
|
|
648 |
marc_indicators('440', ' ', '0'); |
marc_indicators('440', ' ', '0'); |
649 |
|
|
650 |
if ( rec('200','a') =~ m/^Einen / ) { |
if ( rec('225','a') =~ m/^Einen / ) { |
651 |
marc_indicators('440', ' ', 6); |
marc_indicators('440', ' ', 6); |
652 |
} |
} |
653 |
|
|
654 |
if ( rec('200','a') =~ m/^Eine / ) { |
if ( rec('225','a') =~ m/^Eine / ) { |
655 |
marc_indicators('440', ' ', 5); |
marc_indicators('440', ' ', 5); |
656 |
} |
} |
657 |
|
|
658 |
if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) { |
if ( rec('225','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) { |
659 |
marc_indicators('440', ' ', 4); |
marc_indicators('440', ' ', 4); |
660 |
} |
} |
661 |
|
|
662 |
if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
if ( rec('225','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
663 |
marc_indicators('440', ' ', 3); |
marc_indicators('440', ' ', 3); |
664 |
} |
} |
665 |
|
|
666 |
if ( rec('200','a') =~ m/^(A|L') / ) { |
if ( rec('225','a') =~ m/^(A|L') / ) { |
667 |
marc_indicators('440', ' ', 2); |
marc_indicators('440', ' ', 2); |
668 |
} |
} |
669 |
|
|
670 |
## 440v nije ponovljivo |
## 440v nije ponovljivo |
671 |
|
|
|
|
|
672 |
marc_template( |
marc_template( |
673 |
from => 225, to => 440, |
from => 225, to => 440, |
674 |
subfields_rename => [ |
subfields_rename => [ |
700 |
'a.|h,|i ;|w', |
'a.|h,|i ;|w', |
701 |
'a.|i', |
'a.|i', |
702 |
'a.|i ;|w', |
'a.|i ;|w', |
703 |
# greške |
# greške: |
704 |
'a ;|v ;|w', |
'a ;|v ;|w', |
705 |
'a.|h', |
'a.|h', |
706 |
'a.|h ;|w', |
'a.|h ;|w', |
710 |
'i ;|w', |
'i ;|w', |
711 |
'v', |
'v', |
712 |
'w', |
'w', |
|
|
|
713 |
], |
], |
714 |
); |
); |
715 |
|
|
849 |
## NSK konvertira 327 (NP) u 501 (R) |
## NSK konvertira 327 (NP) u 501 (R) |
850 |
## u LOC konv. tablici stoji 327 (NP) u 505 (NR) |
## u LOC konv. tablici stoji 327 (NP) u 505 (NR) |
851 |
## standard i validacije dopuštaju 501 (R) i 505 (R) |
## standard i validacije dopuštaju 501 (R) i 505 (R) |
852 |
|
## za svaku bazu posebno provjeriti sta je u poljima 327 i 330 |
853 |
if ( config() =~ m/ffps|fftu/ ) { |
if ( config() =~ m/ffps|fftu/ ) { |
854 |
marc_indicators('505', '0', ' '); |
marc_indicators('505', '0', ' '); |
855 |
marc('505','a', |
marc('505','a', |
868 |
); |
); |
869 |
} |
} |
870 |
|
|
|
|
|
|
|
|
|
|
|
871 |
### 520 |
### 520 |
872 |
## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica |
## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica |
|
## FFPS 330 (NP) - sažetak |
|
|
|
|
873 |
if ( config() =~ m/ffps/ ) { |
if ( config() =~ m/ffps/ ) { |
874 |
marc('520','a', |
marc('520','a', |
875 |
regex('s/[\\r\\n]+/. /g', |
regex('s/[\\r\\n]+/. /g', |
912 |
|
|
913 |
|
|
914 |
### 700 |
### 700 |
915 |
## ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !! |
## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !! |
916 |
|
## ako ima samo podpolje a onda je pseudonim - popraviti indikator |
917 |
|
|
918 |
marc_indicators('700', 1, ' '); |
marc_indicators('700', 1, ' '); |
919 |
|
|
920 |
marc('700','a', |
marc('700','a', |
921 |
rec('701', 'a'), |
rec('701', 'a'), |
922 |
); |
); |
|
|
|
923 |
marc('700','a', |
marc('700','a', |
924 |
join_with(', ', |
join_with(', ', |
925 |
rec('701', 'c'), |
rec('701', 'c'), |
926 |
rec('701', 'd') |
rec('701', 'd') |
927 |
) |
) |
928 |
); |
); |
|
|
|
929 |
marc('700','a', |
marc('700','a', |
930 |
join_with(', ', |
join_with(', ', |
931 |
rec('701', 'e'), |
rec('701', 'e'), |
932 |
rec('701', 'f') |
rec('701', 'f') |
933 |
) |
) |
934 |
); |
); |
|
|
|
935 |
marc('700','a', |
marc('700','a', |
936 |
join_with(', ', |
join_with(', ', |
937 |
rec('701', 'g'), |
rec('701', 'g'), |
938 |
rec('701', 'h') |
rec('701', 'h') |
939 |
) |
) |
940 |
); |
); |
|
|
|
|
|
|
941 |
marc('700','a', |
marc('700','a', |
942 |
rec('702', 'a'), |
rec('702', 'a'), |
943 |
); |
); |
|
|
|
944 |
marc('700','a', |
marc('700','a', |
945 |
join_with(', ', |
join_with(', ', |
946 |
rec('702','c'), |
rec('702','c'), |
947 |
rec('702','d') |
rec('702','d') |
948 |
) |
) |
949 |
); |
); |
|
|
|
950 |
marc('700','a', |
marc('700','a', |
951 |
join_with(', ', |
join_with(', ', |
952 |
rec('702','e'), |
rec('702','e'), |
953 |
rec('702','f') |
rec('702','f') |
954 |
) |
) |
955 |
); |
); |
|
|
|
956 |
marc('700','a', |
marc('700','a', |
957 |
join_with(', ', |
join_with(', ', |
958 |
rec('702','g'), |
rec('702','g'), |
963 |
#_debug(0); |
#_debug(0); |
964 |
|
|
965 |
|
|
966 |
### 740 - nadopuniti |
### 740 - sta s tim? |
967 |
|
|
968 |
marc_indicators('740', 0, ' '); |
marc_indicators('740', 0, ' '); |
969 |
|
|
984 |
|
|
985 |
# }; |
# }; |
986 |
|
|
987 |
|
# ------------------------------------------------------------------- |
988 |
### 760 w |
### 760 w |
989 |
## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim |
## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim |
990 |
|
|
1053 |
# rec('452','1') |
# rec('452','1') |
1054 |
# ); |
# ); |
1055 |
# |
# |
1056 |
|
# ------------------------------------------------------------------- |
1057 |
|
|
1058 |
|
### 774 - Constituent Item Entry - to bi trebali koristiti ali ne koristimo jer NSK to koristi za nešto drugo |
|
### 774 - Constituent Item Entry |
|
1059 |
### 787 - Nonspecific Relationship Entry |
### 787 - Nonspecific Relationship Entry |
1060 |
|
|
1061 |
marc_indicators('787','0',' '); |
#marc_indicators('787','0',' '); |
1062 |
|
# |
1063 |
marc_compose('787', |
#marc_compose('787', |
1064 |
'g', rec('230','v'), |
# 'g', rec('230','v'), |
1065 |
't', rec('230','a'), |
# 't', rec('230','a'), |
1066 |
'b', rec('240','a'), |
# 'b', rec('240','a'), |
1067 |
'd', rec('250','a'), |
# 'd', rec('250','a'), |
1068 |
'd', rec('250','d'), |
# 'd', rec('250','d'), |
1069 |
'h', rec('260','a'), |
# 'h', rec('260','a'), |
1070 |
'k', rec('270','a'), |
# 'k', rec('270','a'), |
1071 |
'n', join_with('. - ', |
# 'n', join_with('. - ', |
1072 |
rec('280'), |
# rec('280'), |
1073 |
), |
# ), |
1074 |
'x', rec('290'), |
# 'x', join_with(', ', |
1075 |
); |
# rec('290'), |
1076 |
|
# ) |
|
marc_compose('787', |
|
|
'g', rec('231','v'), |
|
|
't', rec('231','a'), |
|
|
'b', rec('241','a'), |
|
|
'd', rec('251','a'), |
|
|
'd', rec('251','d'), |
|
|
'h', rec('261','a'), |
|
|
'k', rec('271','a'), |
|
|
'n', join_with('. - ', |
|
|
rec('281'), |
|
|
), |
|
|
'x', rec('291'), |
|
|
); |
|
|
|
|
|
marc_compose('787', |
|
|
'g', rec('232','v'), |
|
|
't', rec('232','a'), |
|
|
'b', rec('242','a'), |
|
|
'd', rec('252','a'), |
|
|
'd', rec('252','d'), |
|
|
'h', rec('262','a'), |
|
|
'k', rec('272','a'), |
|
|
'n', join_with('. - ', |
|
|
rec('282'), |
|
|
), |
|
|
'x', rec('292'), |
|
|
); |
|
|
|
|
|
marc_compose('787', |
|
|
'g', rec('233','v'), |
|
|
't', rec('233','a'), |
|
|
'b', rec('243','a'), |
|
|
'd', rec('253','a'), |
|
|
'h', rec('263','a'), |
|
|
'k', rec('273','a'), |
|
|
'n', join_with('. - ', |
|
|
rec('283'), |
|
|
), |
|
|
'x', rec('293'), |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
### 852 - lokacija |
|
|
|
|
|
|
|
|
|
|
|
#marc('852','i', |
|
|
# |
|
1077 |
#); |
#); |
1078 |
|
#marc_compose('787', |
1079 |
|
# 'g', rec('231','v'), |
1080 |
|
# 't', rec('231','a'), |
1081 |
|
# 'b', rec('241','a'), |
1082 |
|
# 'd', rec('251','a'), |
1083 |
|
# 'd', rec('251','d'), |
1084 |
|
# 'h', rec('261','a'), |
1085 |
|
# 'k', rec('271','a'), |
1086 |
|
# 'n', join_with('. - ', |
1087 |
|
# rec('281'), |
1088 |
|
# ), |
1089 |
|
# 'x', join_with(', ', |
1090 |
|
# rec('291'), |
1091 |
|
# ) |
1092 |
|
#); |
1093 |
|
#marc_compose('787', |
1094 |
|
# 'g', rec('232','v'), |
1095 |
|
# 't', rec('232','a'), |
1096 |
|
# 'b', rec('242','a'), |
1097 |
|
# 'd', rec('252','a'), |
1098 |
|
# 'd', rec('252','d'), |
1099 |
|
# 'h', rec('262','a'), |
1100 |
|
# 'k', rec('272','a'), |
1101 |
|
# 'n', join_with('. - ', |
1102 |
|
# rec('282'), |
1103 |
|
# ), |
1104 |
|
# 'x', join_with(', ', |
1105 |
|
# rec('292'), |
1106 |
|
# ) |
1107 |
|
#); |
1108 |
|
#marc_compose('787', |
1109 |
|
# 'g', rec('233','v'), |
1110 |
|
# 't', rec('233','a'), |
1111 |
|
# 'b', rec('243','a'), |
1112 |
|
# 'd', rec('253','a'), |
1113 |
|
# 'h', rec('263','a'), |
1114 |
|
# 'k', rec('273','a'), |
1115 |
|
# 'n', join_with('. - ', |
1116 |
|
# rec('283'), |
1117 |
|
# ), |
1118 |
|
# 'x', join_with(', ', |
1119 |
|
# rec('293'), |
1120 |
|
# ) |
1121 |
|
#); |
1122 |
|
# |
1123 |
|
### 852 - ne koristimo, koristimo 942 i 952 |
1124 |
|
|
1125 |
### 876 - item information - basic bibliographic unit |
### 876 - item information - basic bibliographic unit |
1126 |
|
#marc('876','a', |
1127 |
marc('876','a', |
# rec('991','t'), |
1128 |
rec('991','t'), |
#); |
|
); |
|
1129 |
|
|
1130 |
### 886 - former marc |
### 886 - former marc |
1131 |
|
# inicijale treba prebaciti u neko lokalno polje, a ovo polje nam ne treba |
1132 |
|
|
1133 |
marc_indicators('886', 2, ' '); |
marc_indicators('886', 2, ' '); |
|
|
|
1134 |
marc('886','2', |
marc('886','2', |
1135 |
'ffmarc' |
'ffmarc' |
1136 |
); |
); |
|
|
|
1137 |
marc('886','a', |
marc('886','a', |
1138 |
'994' |
'994' |
1139 |
); |
); |
|
|
|
1140 |
marc('886','b', |
marc('886','b', |
1141 |
join_with(''. |
join_with(''. |
1142 |
'##^a', |
'##^a', |
1151 |
) |
) |
1152 |
); |
); |
1153 |
|
|
1154 |
### KOHA |
### KOHA items |
1155 |
|
|
1156 |
marc('942','b', |
marc('942','b', |
1157 |
'LIB' |
'LIB' |
1158 |
); |
); |
1159 |
|
|
1160 |
marc('942','c', |
|
1161 |
'KNJ' |
if ( grep( m/Posebni otisak/, rec('300') ) ) { |
1162 |
); |
marc('942','c', |
1163 |
|
'SEP' |
1164 |
|
); |
1165 |
|
} else { |
1166 |
|
marc('942','c', |
1167 |
|
'KNJ' |
1168 |
|
); |
1169 |
|
} |
1170 |
|
|
1171 |
marc('942','d', |
marc('942','d', |
1172 |
join_with(' | ', |
join_with(' | ', |
1174 |
) |
) |
1175 |
); |
); |
1176 |
|
|
1177 |
if ( config() =~ m/ffiz/ ) { |
if ( config() =~ m/ffan/ ) { |
1178 |
my $novasig1 = |
my $novasig1 = |
1179 |
lookup( |
lookup( |
1180 |
sub { rec('C') }, |
sub { rec('C') }, |
1181 |
'ffiz','mapirano', |
'ffan','mapirano', |
1182 |
sub { rec('B') }, |
sub { rec('B') }, |
1183 |
sub { rec('990') } |
sub { rec('990') } |
1184 |
); |
); |
1185 |
my $novasig2 = |
my $novasig2 = |
1186 |
lookup( |
lookup( |
1187 |
sub { rec('C') . ' ' . rec('D') }, |
sub { rec('C') . ' ' . rec('D') }, |
1188 |
'ffiz','starasig', |
'ffan','starasig', |
1189 |
sub { rec('A') }, |
sub { rec('A') }, |
1190 |
sub { rec('000') }, |
sub { rec('000') }, |
1191 |
); |
); |
1198 |
} |
} |
1199 |
|
|
1200 |
|
|
1201 |
#if ( config() =~ m/ffsf|ffpo/ ) { |
if ( config() =~ m/ffsf|ffpo|fffi/ ) { |
1202 |
# my $sig1 = |
my $sig1 = |
1203 |
# lookup( |
lookup( |
1204 |
# sub { rec('C') }, |
sub { rec('C') }, |
1205 |
# 'ffiz','signature', |
'fffi','signature', |
1206 |
# sub { rec('B') }, |
sub { rec('B') }, |
1207 |
# sub { frec('990') }, |
sub { frec('990') }, |
1208 |
# ); |
); |
1209 |
# if ( rec('700','a') ) { |
if ( rec('700','a') ) { |
1210 |
# marc('942','h', |
marc('942','h', |
1211 |
# $sig1, |
$sig1, |
1212 |
# ); |
); |
1213 |
# if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) { |
if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) { |
1214 |
# marc('942','i', |
marc('942','i', |
1215 |
# join_with(' ', |
join_with(' ', |
1216 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1217 |
# uc ( rec('700','a') ) |
uc ( rec('700','a') ) |
1218 |
# ), |
), |
1219 |
# regex('s/^.{4}(.{1}).*/$1/', |
regex('s/^.{4}(.{1}).*/$1/', |
1220 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1221 |
# ) |
) |
1222 |
# ) |
) |
1223 |
# ); |
); |
1224 |
# } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
} elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
1225 |
# marc('942','i', |
marc('942','i', |
1226 |
# join_with(' ', |
join_with(' ', |
1227 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1228 |
# uc ( rec('700','a') ) |
uc ( rec('700','a') ) |
1229 |
# ), |
), |
1230 |
# regex('s/^.{3}(.{1}).*/$1/', |
regex('s/^.{3}(.{1}).*/$1/', |
1231 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1232 |
# ) |
) |
1233 |
# ) |
) |
1234 |
# ); |
); |
1235 |
# } elsif ( rec('200','a') =~ m/^Eine / ) { |
} elsif ( rec('200','a') =~ m/^Eine / ) { |
1236 |
# marc('942','i', |
marc('942','i', |
1237 |
# join_with(' ', |
join_with(' ', |
1238 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1239 |
# uc ( rec('700','a') ) |
uc ( rec('700','a') ) |
1240 |
# ), |
), |
1241 |
# regex('s/^.{5}(.{1}).*/$1/', |
regex('s/^.{5}(.{1}).*/$1/', |
1242 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1243 |
# ) |
) |
1244 |
# ) |
) |
1245 |
# ); |
); |
1246 |
# } elsif ( rec('200','a') =~ m/^Einen / ) { |
} elsif ( rec('200','a') =~ m/^Einen / ) { |
1247 |
# marc('942','i', |
marc('942','i', |
1248 |
# join_with(' ', |
join_with(' ', |
1249 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1250 |
# uc ( rec('700','a') ) |
uc ( rec('700','a') ) |
1251 |
# ), |
), |
1252 |
# regex('s/^.{6}(.{1}).*/$1/', |
regex('s/^.{6}(.{1}).*/$1/', |
1253 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1254 |
# ) |
) |
1255 |
# ) |
) |
1256 |
# ); |
); |
1257 |
# } elsif ( rec('200','a') =~ m/^(A|L) / ) { |
} elsif ( rec('200','a') =~ m/^(A|L) / ) { |
1258 |
# marc('942','i', |
marc('942','i', |
1259 |
# join_with(' ', |
join_with(' ', |
1260 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1261 |
# uc ( rec('700','a') ) |
uc ( rec('700','a') ) |
1262 |
# ), |
), |
1263 |
# regex('s/^.{2}(.{1}).*/$1/', |
regex('s/^.{2}(.{1}).*/$1/', |
1264 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1265 |
# ) |
) |
1266 |
# ) |
) |
1267 |
# ); |
); |
1268 |
# } else { |
} else { |
1269 |
# marc('942','i', |
marc('942','i', |
1270 |
# join_with(' ', |
join_with(' ', |
1271 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1272 |
# uc ( rec('700','a') ) |
uc ( rec('700','a') ) |
1273 |
# ), |
), |
1274 |
# regex('s/(^.{1}).*/$1/', |
regex('s/(^.{1}).*/$1/', |
1275 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1276 |
# ) |
) |
1277 |
# ) |
) |
1278 |
# ); |
); |
1279 |
# } |
} |
1280 |
# } elsif ( rec('710','a') ) { |
} elsif ( rec('710','a') ) { |
1281 |
# marc('942','h', |
marc('942','h', |
1282 |
# $sig1, |
$sig1, |
1283 |
# ); |
); |
1284 |
# if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) { |
if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) { |
1285 |
# marc('942','i', |
marc('942','i', |
1286 |
# join_with(' ', |
join_with(' ', |
1287 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1288 |
# uc ( rec('710','a') ) |
uc ( rec('710','a') ) |
1289 |
# ), |
), |
1290 |
# regex('s/^.{4}(.{1}).*/$1/', |
regex('s/^.{4}(.{1}).*/$1/', |
1291 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1292 |
# ) |
) |
1293 |
# ) |
) |
1294 |
# ); |
); |
1295 |
# } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
} elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
1296 |
# marc('942','i', |
marc('942','i', |
1297 |
# join_with(' ', |
join_with(' ', |
1298 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1299 |
# uc ( rec('710','a') ) |
uc ( rec('710','a') ) |
1300 |
# ), |
), |
1301 |
# regex('s/^.{3}(.{1}).*/$1/', |
regex('s/^.{3}(.{1}).*/$1/', |
1302 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1303 |
# ) |
) |
1304 |
# ) |
) |
1305 |
# ); |
); |
1306 |
# } elsif ( rec('200','a') =~ m/^Eine / ) { |
} elsif ( rec('200','a') =~ m/^Eine / ) { |
1307 |
# marc('942','i', |
marc('942','i', |
1308 |
# join_with(' ', |
join_with(' ', |
1309 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1310 |
# uc ( rec('710','a') ) |
uc ( rec('710','a') ) |
1311 |
# ), |
), |
1312 |
# regex('s/^.{5}(.{1}).*/$1/', |
regex('s/^.{5}(.{1}).*/$1/', |
1313 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1314 |
# ) |
) |
1315 |
# ) |
) |
1316 |
# ); |
); |
1317 |
# } elsif ( rec('200','a') =~ m/^Einen / ) { |
} elsif ( rec('200','a') =~ m/^Einen / ) { |
1318 |
# marc('942','i', |
marc('942','i', |
1319 |
# join_with(' ', |
join_with(' ', |
1320 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1321 |
# uc ( rec('710','a') ) |
uc ( rec('710','a') ) |
1322 |
# ), |
), |
1323 |
# regex('s/^.{6}(.{1}).*/$1/', |
regex('s/^.{6}(.{1}).*/$1/', |
1324 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1325 |
# ) |
) |
1326 |
# ) |
) |
1327 |
# ); |
); |
1328 |
# } elsif ( rec('200','a') =~ m/^(A|L) / ) { |
} elsif ( rec('200','a') =~ m/^(A|L) / ) { |
1329 |
# marc('942','i', |
marc('942','i', |
1330 |
# join_with(' ', |
join_with(' ', |
1331 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1332 |
# uc ( rec('710','a') ) |
uc ( rec('710','a') ) |
1333 |
# ), |
), |
1334 |
# regex('s/^.{2}(.{1}).*/$1/', |
regex('s/^.{2}(.{1}).*/$1/', |
1335 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1336 |
# ) |
) |
1337 |
# ) |
) |
1338 |
# ); |
); |
1339 |
# } else { |
} else { |
1340 |
# marc('942','i', |
marc('942','i', |
1341 |
# join_with(' ', |
join_with(' ', |
1342 |
# regex('s/(^.{3}).*/$1/', |
regex('s/(^.{3}).*/$1/', |
1343 |
# uc ( rec('710','a') ) |
uc ( rec('710','a') ) |
1344 |
# ), |
), |
1345 |
# regex('s/(^.{1}).*/$1/', |
regex('s/(^.{1}).*/$1/', |
1346 |
# lc ( rec('200','a') ) |
lc ( rec('200','a') ) |
1347 |
# ) |
) |
1348 |
# ) |
) |
1349 |
# ); |
); |
1350 |
# } |
} |
1351 |
# } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) { |
} elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) { |
1352 |
# marc('942','h', |
marc('942','h', |
1353 |
# $sig1, |
$sig1, |
1354 |
# ); |
); |
1355 |
# marc('942','i', |
marc('942','i', |
1356 |
# regex('s/^.{4}(.{3}).*/$1/', |
regex('s/^.{4}(.{3}).*/$1/', |
1357 |
# uc ( rec('200','a') ) |
uc ( rec('200','a') ) |
1358 |
# ), |
), |
1359 |
# ); |
); |
1360 |
# |
|
1361 |
# } else { |
} else { |
1362 |
# marc('942','h', |
marc('942','h', |
1363 |
# $sig1, |
$sig1, |
1364 |
# ); |
); |
1365 |
# marc('942','i', |
marc('942','i', |
1366 |
# regex('s/(^\w{3}).*/$1/', |
regex('s/(^\w{3}).*/$1/', |
1367 |
# uc ( rec('200','a') ) |
uc ( rec('200','a') ) |
1368 |
# ) |
) |
1369 |
# ) |
) |
1370 |
# } |
} |
1371 |
#} # if config() |
} # if config() |
|
|
|
|
marc('952','8', |
|
|
rec('991','8') |
|
|
); |
|
|
|
|
|
marc('952','a', |
|
|
rec('991','a') |
|
|
); |
|
|
|
|
|
marc('952','b', |
|
|
rec('991','b') |
|
|
); |
|
|
|
|
|
marc('952','c', |
|
|
rec('991','c'), |
|
|
); |
|
|
|
|
|
marc('952','i', |
|
|
rec('991','i') |
|
|
); |
|
|
|
|
|
marc('952','y', |
|
|
rec('991','y') |
|
|
); |
|
|
|
|
|
|
|
|
|
|
1372 |
|
|
1373 |
|
if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) { |
1374 |
|
warn "nema primjeraka"; |
1375 |
|
} else { |
1376 |
|
marc('952','8', |
1377 |
|
rec('991','8') |
1378 |
|
); |
1379 |
|
marc('952','a', |
1380 |
|
rec('991','a') |
1381 |
|
); |
1382 |
|
marc('952','b', |
1383 |
|
rec('991','b') |
1384 |
|
); |
1385 |
|
marc('952','c', |
1386 |
|
rec('991','c'), |
1387 |
|
); |
1388 |
|
marc('952','i', |
1389 |
|
rec('991','i') |
1390 |
|
); |
1391 |
|
marc('952','y', |
1392 |
|
rec('991','y') |
1393 |
|
); |
1394 |
|
} |
1395 |
} # polje 200a |
} # polje 200a |
1396 |
# } sig |
# } sig |