11 |
if ( rec('200','a') ) { |
if ( rec('200','a') ) { |
12 |
|
|
13 |
### LEADER |
### LEADER |
|
## raspraviti 17,18 |
|
14 |
|
|
15 |
## LDR 05 - c ili d - iz 999a ili 999b ili 999 - provjeriti za svaku knjiznicu |
## LDR 05 - c = pregledan ; n = new |
16 |
|
## 999^aP - SFM |
17 |
|
|
18 |
if ( rec('999') && frec('999') =~ m/(pregledan|P)/i) { |
if ( rec('999') && rec('999','a') =~ m/(pregledan|P)/i) { |
19 |
marc_leader('05','c'); |
marc_leader('05','c'); |
20 |
} else { |
} else { |
21 |
marc_leader('05','n'); |
marc_leader('05','n'); |
22 |
} |
} |
23 |
|
|
24 |
## LDR 06 - a ili m - odrediti kriterije |
## LDR 06 - a - language material |
25 |
|
|
26 |
marc_leader('06','a'); |
marc_leader('06','a'); |
27 |
|
|
28 |
## LDR 07 - m |
## LDR 07 - m - Monograph/item |
29 |
|
|
30 |
marc_leader('07','m'); |
marc_leader('07','m'); |
31 |
|
|
32 |
## LDR 17 i 18 - razjasniti |
## LDR 17 |
33 |
|
marc_leader('17','7'); |
34 |
|
|
35 |
|
## LDR 18 |
36 |
marc_leader('18','i'); |
marc_leader('18','i'); |
37 |
|
|
38 |
## LDR 19 - razjasniti |
## LDR 19 - razjasniti |
41 |
marc_leader('19','r'); |
marc_leader('19','r'); |
42 |
} |
} |
43 |
|
|
44 |
### 001 - Voyager |
### 001 - Voyager ID |
45 |
|
|
46 |
### 003 - razjasniti |
### 003 - razjasniti |
47 |
|
|
50 |
marc_fixed('007',00,'ta'); |
marc_fixed('007',00,'ta'); |
51 |
|
|
52 |
### 008 - All materials |
### 008 - All materials |
53 |
## 008 00 - datum - što kad datum nije poznat? |
## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje |
54 |
|
|
55 |
if ( rec('994','c') ) { |
if ( rec('994','c') ) { |
56 |
marc_fixed('008','00', |
marc_fixed('008','00', |
60 |
); |
); |
61 |
} else { |
} else { |
62 |
marc_fixed('008', 00, |
marc_fixed('008', 00, |
63 |
'000101' |
'000000' |
64 |
); |
); |
65 |
} |
} |
66 |
|
|
71 |
#) |
#) |
72 |
#); |
#); |
73 |
|
|
74 |
## 008 06 - Type of date/Publication status - t - raspraviti |
## 008 06 - Type of date/Publication status |
75 |
|
## dodati i ostale mogućnosti |
76 |
|
## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c |
77 |
|
|
78 |
marc_fixed('008','06', 't'); |
my $year = rec('210','c'); |
79 |
|
|
80 |
## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c |
if ( rec('210','c') ) { |
81 |
|
marc_fixed('008','06','s'); # 06 - Type of date/Publication status, s = single know date |
82 |
|
|
83 |
|
# warn "## year = $year"; |
84 |
|
|
85 |
|
if ( $year =~ m/^(\d{4})/ ) { |
86 |
|
# warn "## $1 ##\n"; |
87 |
|
marc_fixed('008','07',$1); # 07-10 - Date 1 |
88 |
|
|
89 |
|
} else { |
90 |
|
marc_fixed('008','06','n'); # 06 - n = unknown date |
91 |
|
marc_fixed('008','07','uuuu'); |
92 |
|
} |
93 |
|
} |
94 |
|
|
|
marc_fixed('008','07', |
|
|
rec('210','c') |
|
|
); |
|
95 |
|
|
96 |
## 008 11-14 - Date 2 |
## 008 11-14 - Date 2 |
97 |
|
|
98 |
## 008 15-17 - Place of publication, production, or execution - što ako nema 102? |
## 008 15-17 - Place of publication, production, or execution - što ako nema 102? |
99 |
|
## raspraviti |
100 |
|
|
101 |
|
#marc_fixed('008','15', |
102 |
|
# lc ( rec('102') ) |
103 |
|
#); |
104 |
|
|
105 |
|
my $zemlja = |
106 |
|
lookup( |
107 |
|
sub { rec('B') }, |
108 |
|
'kodovi','zemlje', |
109 |
|
sub { rec('A') }, |
110 |
|
sub { |
111 |
|
regex('s/[\s;:]/g', |
112 |
|
rec('210','a') |
113 |
|
) |
114 |
|
}, |
115 |
|
); |
116 |
|
|
117 |
|
warn ( |
118 |
|
dump ($zemlja) |
119 |
|
); |
120 |
|
|
121 |
|
if ( $year =~ m/^(\d{4})/ ) { |
122 |
|
if ( $1 >= 1990 ) { |
123 |
|
marc_fixed('008','15', |
124 |
|
lc ( $zemlja ) |
125 |
|
|
126 |
|
); |
127 |
|
# } elsif ( dump( $zemlja ) eq 'hr' ) { |
128 |
|
# marc_fixed('008','15','yu'); |
129 |
|
} |
130 |
|
} |
131 |
|
|
|
marc_fixed('008','15', |
|
|
lc ( rec('102') ) |
|
|
); |
|
132 |
|
|
133 |
## 008 35-37 - Language - što ako nema 101? |
## 008 35-37 - Language |
134 |
|
|
135 |
marc_fixed('008','35', |
marc_fixed('008','35', |
136 |
first( lc(rec('101')) ) |
# first( lc(rec('101')) ) |
137 |
|
lc( frec('101')) |
138 |
); |
); |
139 |
|
|
140 |
## 008 38 - Modified record - razjasniti |
## 008 38 - Modified record - razjasniti |
141 |
|
|
142 |
## 008 39 - Cataloging source - d |
## 008 39 - Cataloging source - d (other) |
143 |
|
|
144 |
marc_fixed('008','39','d'); |
marc_fixed('008','39','d'); |
145 |
|
|
157 |
## 008 34 - Biography |
## 008 34 - Biography |
158 |
|
|
159 |
### 020 |
### 020 |
160 |
## modify -> drugi ISBN počinje prefixom "ISBN" koji se miče (sfb) |
## modify za polje 10 -> drugi ISBN počinje prefixom "ISBN" koji se miče (pr. u sfb) |
161 |
|
|
162 |
if ( frec('10') ne ( frec('290') ) ) { |
if ( frec('10') ne ( frec('290') ) ) { |
163 |
marc('020','a', |
marc('020','a', |
164 |
regex('s/-//g', |
# isbn_13( |
165 |
rec('10') |
regex('s/\s\s/ /g', |
166 |
) |
# regex('s/\(\d\)\(/$1 \(//g', |
167 |
|
rec('10','a') |
168 |
|
) |
169 |
|
# ) |
170 |
); |
); |
171 |
} |
} |
172 |
|
|
176 |
# ), |
# ), |
177 |
#); |
#); |
178 |
|
|
179 |
### 035$6 |
### 035$ |
180 |
## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku. |
## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku. |
181 |
## marc 035a - System Number - Voyagerov ID (001) |
## marc 035a - System Number - Voyagerov ID (001) |
182 |
## polje 035$9 može sadržavati slova i razmake |
## polje 035$9 može sadržavati slova i razmake |
183 |
|
|
184 |
marc('035','6', |
marc('035','6', |
185 |
join_with('', |
join_with('', |
186 |
# config('input normalize path'), |
# config('input normalize path'), |
187 |
# config('name'), |
# config('name'), |
188 |
config(), |
config(), |
189 |
' L', |
' L', |
190 |
# config('input name'), |
# config('input name'), |
191 |
# id(), |
# id(), |
192 |
# rec('994','a'), |
# rec('994','a'), |
193 |
rec('000') |
rec('000') |
194 |
) |
) |
195 |
); |
); |
196 |
|
|
199 |
## treba utvrditi točnu oznaku za ustanovu |
## treba utvrditi točnu oznaku za ustanovu |
200 |
|
|
201 |
marc('040','a', |
marc('040','a', |
202 |
'HR FFZG' |
'HR-ZgFF' |
203 |
); |
); |
204 |
|
|
205 |
marc('040','b', |
marc('040','b', |
206 |
'hrv' |
'hrv' |
207 |
); |
); |
208 |
|
|
209 |
|
marc('040','c', |
210 |
|
'HR-ZgFF' |
211 |
|
); |
212 |
|
|
213 |
marc('040','e', |
marc('040','e', |
214 |
'HR PPIAK' |
'ppiak' |
215 |
); |
); |
216 |
|
|
217 |
|
|
226 |
## to ima samo za književna djela, eseje.... |
## to ima samo za književna djela, eseje.... |
227 |
## ???? |
## ???? |
228 |
|
|
229 |
#if ( rec('675') =~ m/\d=\d/ ) ?? |
#if ( rec('675') =~ m/\d=\d/ ) ? |
230 |
|
|
231 |
if ( |
if ( |
232 |
grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik]/i, rec('300') ) || |
grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) || |
233 |
grep( m/[preve|prijevod]/i, rec('200','f')) || |
grep( m/[preve|prijevod]/i, rec('200','f')) || |
234 |
grep( m/[preve|prijevod]/i, rec('200','g')) |
grep( m/[preve|prijevod]/i, rec('200','g')) |
235 |
) { |
) { |
371 |
|
|
372 |
marc_indicators('245', $i1, 0); |
marc_indicators('245', $i1, 0); |
373 |
|
|
374 |
if ( ( rec('200','a') =~ m/^Die /) || |
if ( rec('200','a') =~ m/^Einen / ) { |
375 |
( rec('200','a') =~ m/^Das /) || |
marc_indicators('245', $i1, 6); |
376 |
( rec('200','a') =~ m/^Der /) || |
} |
377 |
( rec('200','a') =~ m/^Les /) || |
|
378 |
( rec('200','a') =~ m/^The /) ) { |
if ( rec('200','a') =~ m/^Eine / ) { |
379 |
marc_indicators('245', $i1, 4); |
marc_indicators('245', $i1, 5); |
380 |
|
} |
381 |
|
|
382 |
|
if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) { |
383 |
|
marc_indicators('245', $i1, 4); |
384 |
} |
} |
385 |
|
|
386 |
if ( ( rec('200','a') =~ m/^Un /) || |
if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { |
|
( rec('200','a') =~ m/^An /) || |
|
|
( rec('200','a') =~ m/^La /) || |
|
|
( rec('200','a') =~ m/^Le /) || |
|
|
( rec('200','a') =~ m/^Il /) ) { |
|
387 |
marc_indicators('245', $i1, 3); |
marc_indicators('245', $i1, 3); |
388 |
} |
} |
389 |
|
|
390 |
if ( ( rec('200','a') =~ m/^A /) || |
if ( rec('200','a') =~ m/^(A|L') / ) { |
|
( rec('200','a') =~ m/^L'/) ) { |
|
391 |
marc_indicators('245', $i1, 2); |
marc_indicators('245', $i1, 2); |
392 |
} |
} |
393 |
|
|
394 |
|
|
395 |
### 245 |
### 245 |
396 |
## potpolja i interpunkcije pripremljeni u modify |
## potpolja i interpunkcije pripremljeni u modify |
397 |
|
|
403 |
( rec('200','d') ) ? ' =' : |
( rec('200','d') ) ? ' =' : |
404 |
( rec('200','e') ) ? ' :' : |
( rec('200','e') ) ? ' :' : |
405 |
( rec('200','k') ) ? ' ;' : |
( rec('200','k') ) ? ' ;' : |
406 |
'', |
'.', |
407 |
rec('200','a'), |
rec('200','a'), |
408 |
), |
), |
409 |
'b', suffix( |
'b', suffix( |
428 |
( rec('200','f') && rec('200','c') ) ? '.' : |
( rec('200','f') && rec('200','c') ) ? '.' : |
429 |
'', |
'', |
430 |
join_with(' ; ', |
join_with(' ; ', |
431 |
rec('200','f'), |
regex('s/(\S\.)\s(\S\.\s)/$1$2/g', |
432 |
rec('200','g') |
rec('200','f'), |
433 |
|
), |
434 |
|
regex('s/(\S\.)\s(\S\.\s)/$1$2/g', |
435 |
|
rec('200','g') |
436 |
|
) |
437 |
) |
) |
438 |
), |
), |
439 |
## append to last subfield |
## append to last subfield |
477 |
rec('215','c') ? ' : ' : |
rec('215','c') ? ' : ' : |
478 |
rec('215','d') ? ' ; ' : |
rec('215','d') ? ' ; ' : |
479 |
rec('215','e') ? ' + ' : |
rec('215','e') ? ' + ' : |
480 |
' ', |
'', |
481 |
rec('215','a') |
rec('215','a') |
482 |
) |
) |
483 |
); |
); |
486 |
suffix( |
suffix( |
487 |
( rec('215','c') && rec('215','d') ) ? ' ; ' : |
( rec('215','c') && rec('215','d') ) ? ' ; ' : |
488 |
( rec('215','c') && rec('215','e') ) ? ' + ' : |
( rec('215','c') && rec('215','e') ) ? ' + ' : |
489 |
' ', |
'', |
490 |
rec('215','c') |
rec('215','c') |
491 |
) |
) |
492 |
); |
); |
494 |
marc('300','c', |
marc('300','c', |
495 |
suffix( |
suffix( |
496 |
rec('215','e') ? ' + ' : |
rec('215','e') ? ' + ' : |
497 |
' ', |
'', |
498 |
rec('215','d') |
rec('215','d') |
499 |
) |
) |
500 |
); |
); |
506 |
### 362 - brojčani podaci za nakladničku cjelinu - razjasniti upotrebu |
### 362 - brojčani podaci za nakladničku cjelinu - razjasniti upotrebu |
507 |
|
|
508 |
### 440 - indikatori |
### 440 - indikatori |
509 |
## 2.ind. prema jeziku i članu, provjeriri |
## 2.ind. prema jeziku i članu, provjeriti |
510 |
|
|
511 |
marc_indicators('440', ' ', '0'); |
marc_indicators('440', ' ', '0'); |
512 |
|
|
521 |
} |
} |
522 |
|
|
523 |
if ( ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) { |
if ( ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) { |
524 |
marc_indicators('440', ' ', 2); |
marc_indicators('440', ' ', 3); |
525 |
} |
} |
526 |
|
|
527 |
#_debug(3); |
#_debug(3); |
528 |
|
|
529 |
### 440 |
### 440 |
|
## marc_compose radi samo kad polje ni potpolja nisu ponovljivi. ne zapisuje dobro drugo pojavljivanje ^v (iz 225^w) |
|
530 |
|
|
531 |
marc_template( |
marc_template( |
532 |
from => 225, to => 440, |
from => 225, to => 440, |
539 |
'w' => 'v', |
'w' => 'v', |
540 |
], |
], |
541 |
isis_template => [ |
isis_template => [ |
|
'a ; |v. |i', |
|
|
'a ;|v.|i ;|w', |
|
|
'a.|i ;|w', |
|
|
'a.|h', |
|
|
'a.|h,|i', |
|
542 |
'a.|h,|i ;|w', |
'a.|h,|i ;|w', |
543 |
'a.|h ;|w', |
'a.|h.|w', |
544 |
'a.|i', |
'a.|i ;|w', |
545 |
'a ;|v.|h', |
'a ;|v.|i', |
546 |
'a ;|v,|w', |
'a ;|v.|i ;|w', |
547 |
'a ;|w', |
'a ;|v.|h,|i ;|w', |
548 |
'w', |
'a ;|v.|h ;|w', |
549 |
|
'a ;|v ;|w', |
550 |
|
#mozda greska: |
551 |
|
'a ;|v,|x ;|w', |
552 |
|
'a ;|v,|x.|p', |
553 |
|
'a,|x ;|v', |
554 |
|
'a,|x.|p ;|w', |
555 |
], |
], |
556 |
|
from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }", |
557 |
|
to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }", |
558 |
|
|
559 |
marc_template => [ |
marc_template => [ |
560 |
'a', |
'a', |
561 |
'a,|x ;|v.|n,|p ;|v', |
'a ;|v', |
562 |
'a.|n.|p', |
'a,|x', |
563 |
'a ;|v.|p ;|v', |
'a.|n', # mozda greska |
564 |
'a.|p ;|v', |
'a.|n,|p', |
565 |
'a.|v', |
'a.|p', |
566 |
|
'a ;|v.|n', |
567 |
|
'a ;|v.|n,|p', # mozda greska |
568 |
|
'n,|p', |
569 |
|
'n ;|v', # mozda greska |
570 |
|
'p ;|v', |
571 |
'v', |
'v', |
572 |
|
'x', |
573 |
|
'x ;|v' # greska |
574 |
], |
], |
575 |
); |
); |
576 |
|
|
577 |
|
|
578 |
|
## marc_compose za 440 radi samo kad polje ni potpolja nisu ponovljiva. ne zapisuje dobro drugo pojavljivanje ^v, tj. ^v iza ^p (iz 225^w) |
579 |
|
|
580 |
#marc_compose('440', |
#marc_compose('440', |
581 |
# 'a', suffix( |
# 'a', suffix( |
582 |
# ( rec('225','v') ) ? ' ;' : |
# ( rec('225','v') ) ? ' ;' : |
824 |
### 760 w |
### 760 w |
825 |
## 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 |
826 |
|
|
827 |
if ( |
#if ( |
828 |
rec('225','a') # da li je nakladnička cjelina? |
# rec('225','a') # da li je nakladnička cjelina? |
829 |
) { |
#) { |
830 |
|
# |
831 |
my $series_key = |
#my $series_key = |
832 |
join_with('', |
#join_with('', |
833 |
rec('225','a'), |
# rec('225','a'), |
834 |
rec('210','a'), |
# rec('210','a'), |
835 |
rec('210','b'), |
# rec('210','b'), |
836 |
); |
#); |
837 |
|
# |
838 |
my $series = get( $series_key ); |
#my $series = get( $series_key ); |
839 |
|
# |
840 |
if ($series) { |
#if ($series) { |
841 |
warn "nije novi"; |
# warn "nije novi"; |
842 |
} else { |
#} else { |
843 |
|
# |
844 |
$series = join_with('', |
#$series = join_with('', |
845 |
uc( config() ), |
# uc( config() ), |
846 |
' LS', |
# ' LS', |
847 |
rec('000') |
# rec('000') |
848 |
); |
#); |
849 |
|
# |
850 |
set( $series_key => $series ); |
#set( $series_key => $series ); |
851 |
|
# |
852 |
} # $series |
#} # $series |
853 |
} # nakladnička cjelina |
#} # nakladnička cjelina |
854 |
|
# |
855 |
my $series_key = join_with('', |
#my $series_key = join_with('', |
856 |
rec('225','a'), |
# rec('225','a'), |
857 |
rec('210','a'), |
# rec('210','a'), |
858 |
rec('210','b'), |
# rec('210','b'), |
859 |
); |
#); |
860 |
|
# |
861 |
if ($series_key) { |
#if ($series_key) { |
862 |
|
# |
863 |
marc_indicators('760', 0, ' '); |
# marc_indicators('760', 0, ' '); |
864 |
|
# |
865 |
marc('760','w', |
# marc('760','w', |
866 |
get( $series_key ) |
# get( $series_key ) |
867 |
); |
# ); |
868 |
} |
#} |
869 |
|
|
870 |
# ## testing |
# ## testing |
871 |
# |
# |