1 |
|
my $csigid = |
2 |
|
lookup( |
3 |
|
sub { rec('A') }, |
4 |
|
'casopisi','csigid', |
5 |
|
sub { rec('A') }, |
6 |
|
sub { rec('I') } |
7 |
|
); |
8 |
|
|
9 |
|
if ( ! $csigid ) { |
10 |
|
|
11 |
|
|
12 |
### LEADER |
### LEADER |
13 |
|
|
27 |
marc_leader('18','i'); |
marc_leader('18','i'); |
28 |
|
|
29 |
### 008 - All materials |
### 008 - All materials |
30 |
marc_fixed('008','00', '090512'); # 00-05 - Date entered on file |
marc_fixed('008','00', '090820'); # 00-05 - Date entered on file |
31 |
|
|
32 |
## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije? |
## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije? |
33 |
## c - Continuing resource currently published |
## c - Continuing resource currently published |
64 |
marc_fixed('008','24', '|'); |
marc_fixed('008','24', '|'); |
65 |
marc_fixed('008','25', '|||'); |
marc_fixed('008','25', '|||'); |
66 |
marc_fixed('008','28', ' '); |
marc_fixed('008','28', ' '); |
67 |
marc_fixed('008','29', ' '); |
marc_fixed('008','29', '|'); |
68 |
marc_fixed('008','33', '|'); |
marc_fixed('008','33', '|'); |
69 |
marc_fixed('008','34', '|'); |
marc_fixed('008','34', '0'); |
70 |
|
|
71 |
### 022 |
### 022 |
72 |
|
|
76 |
|
|
77 |
### 035$a |
### 035$a |
78 |
|
|
79 |
if ( rec('B') ) { |
marc('035','a', |
80 |
marc('035','a', |
prefix('HR-ZaFF csig', |
81 |
join_with(' ', |
rec('I') |
82 |
'HR-ZaFF', |
), |
83 |
join_with('', |
); |
|
suffix('P', |
|
|
lc( rec('A') ) |
|
|
), |
|
|
rec('B') |
|
|
), |
|
|
) |
|
|
); |
|
|
} |
|
84 |
|
|
85 |
### 040 |
### 040 |
86 |
# za sve je isti |
# za sve je isti |
105 |
|
|
106 |
#_debug(3); |
#_debug(3); |
107 |
|
|
|
## iz nsk |
|
|
#if ( rec('11') ) { |
|
|
#marc('210','a', |
|
|
# lookup( |
|
|
# sub { rec('531','a') }, |
|
|
# 'nsk','bbaza', |
|
|
# sub { rec('011','a') }, |
|
|
# sub { rec('11') }, |
|
|
# ) |
|
|
#); |
|
|
#} |
|
|
|
|
|
# ### 222 indikatori |
|
|
# # drugi indikator prema članu |
|
|
# |
|
|
# marc_indicators('222',' ','0'); |
|
|
# |
|
|
# ### 222 - Key title |
|
|
# # pronaći prikadan izvor podataka - nsk baza, issn baze |
|
|
# |
|
|
# marc('222','a', |
|
|
# rec('530') |
|
|
# ); |
|
|
# |
|
|
# # iz nsk: |
|
|
# #if ( rec('11') ) { |
|
|
# #marc('222','a', |
|
|
# # lookup( |
|
|
# # sub { rec('530','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { rec('011','a') }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# #); |
|
|
# #} |
|
|
|
|
|
### 245 indikatori |
|
|
# generiraju se prema članu, trebalo bi možda i prema jeziku (jezika nema uvijek). |
|
|
# potrebna naknadna kontrola |
|
108 |
|
|
109 |
marc_indicators('245', 0, 0); |
marc_indicators('245', 0, 0); |
110 |
|
|
132 |
|
|
133 |
### 245 |
### 245 |
134 |
|
|
135 |
if ( rec('E') =~ m/:/ ) { |
my ($a,$b,$c); |
136 |
marc('245','a', |
my $naslov = rec('E'); |
137 |
suffix(' :', |
$c = $2 if $naslov =~ s{(\s+/)\s+(.+)$}{$1}; |
138 |
regex('s/(^.*):.*/$1/', |
if ( $naslov =~ s{^(.+?[:=])\s+}{} ) { |
139 |
rec('E') |
$a = $1; |
140 |
) |
$b = $naslov ; |
|
) |
|
|
); |
|
|
marc('245','b', |
|
|
regex('s/^.*: (.*)/$1/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
141 |
} else { |
} else { |
142 |
marc('245','a', |
$a = $naslov ; |
|
rec('E') |
|
|
); |
|
143 |
} |
} |
144 |
|
|
|
if ( rec('E') =~ m# / # && rec('E') =~ m/[:=]/ ) { |
|
|
marc('299','a', |
|
|
regex('s/(^.*?[:=]) (.*\/) (.*)/$1/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
|
marc('299','b', |
|
|
regex('s/(^.*?[:=]) (.*\/) (.*)/$2/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
|
marc('299','c', |
|
|
regex('s/(^.*?[:=]) (.*\/) (.*)/$3/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
|
|
|
|
} elsif ( rec('E') =~ m/ \/ / && rec('E') !~ m/[:=]/ ) { |
|
|
marc('299','a', |
|
|
regex('s/(^.*?\/) (.*)/$1/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
|
marc('299','c', |
|
|
regex('s/(^.*?\/) (.*)/$2/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
|
} elsif ( rec('E') !~ m/ \/ / && rec('E') =~ m/[:=]/ ) { |
|
|
marc('299','a', |
|
|
regex('s/(^.*?[:=]) (.*)/$1/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
|
marc('299','b', |
|
|
regex('s/(^.*?[:=]) (.*)/$2/', |
|
|
rec('E') |
|
|
) |
|
|
); |
|
145 |
|
|
146 |
} else { |
marc('245','a', $a); |
147 |
marc('299','a', |
marc('245','b', $b) if $b; |
148 |
rec('E') |
marc('245','c', $c); |
149 |
); |
|
150 |
} |
#if ( rec('E') =~ m/:/ ) { |
151 |
|
# marc('245','a', |
152 |
|
# suffix(' :', |
153 |
|
# regex('s/(^.*):.*/$1/', |
154 |
|
# rec('E') |
155 |
|
# ) |
156 |
|
# ) |
157 |
|
# ); |
158 |
|
# marc('245','b', |
159 |
|
# regex('s/^.*: (.*)/$1/', |
160 |
|
# rec('E') |
161 |
|
# ) |
162 |
|
# ); |
163 |
|
#} else { |
164 |
|
# marc('245','a', |
165 |
|
# rec('E') |
166 |
|
# ); |
167 |
|
#} |
168 |
|
|
169 |
# ### 246 inikatori |
marc('500','a', |
170 |
# # prema jeziku - provjera |
rec('H'), |
171 |
# |
); |
|
# 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); |
|
|
# } |
|
|
# |
|
|
# ### 246 |
|
|
# # povući podatke iz prikladnog izvora (nsk, issn) |
|
|
# |
|
|
# marc('246','a', |
|
|
# rec('532') |
|
|
# ); |
|
|
# |
|
|
# ## iz nsk: |
|
|
# # marc('246','a', |
|
|
# # lookup( |
|
|
# # sub { rec('532','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { rec('011','a') }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# # ); |
|
|
# |
|
|
# #_debug(0); |
|
|
# |
|
|
# |
|
|
# ## 260 - izdavanje |
|
|
# # provjeriti interpunkcije !!, u NSK nesto ne stima |
|
|
# |
|
|
# marc_original_order('260','210'); |
|
|
# |
|
|
# ## lookup u NSK: |
|
|
# # 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'); |
|
|
# # } |
|
|
# |
|
|
# |
|
|
# ### 300 |
|
|
# |
|
|
# marc('300','a', |
|
|
# suffix( |
|
|
# ( rec('215','a') && rec('215','c') ) ? ' : ' : |
|
|
# ( rec('215','a') && rec('215','d') ) ? ' ; ' : |
|
|
# ( rec('215','a') && rec('215','e') ) ? ' + ' : |
|
|
# ' ', |
|
|
# rec('215','a') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# marc('300','b', |
|
|
# suffix( |
|
|
# ( rec('215','c') && rec('215','d') ) ? ' ; ' : |
|
|
# ( rec('215','c') && rec('215','e') ) ? ' + ' : |
|
|
# ' ', |
|
|
# rec('215','c') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# marc('300','c', |
|
|
# suffix( |
|
|
# rec('215','e') ? ' + ' : |
|
|
# ' ', |
|
|
# rec('215','d') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# marc('300','e', |
|
|
# rec('215','e') |
|
|
# ); |
|
|
# |
|
|
# ### 310 - current stated publication frequency |
|
|
# # potrebno ujednačiti, koristi se i u polju 008 |
|
|
# |
|
|
# marc('310','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, ' '); |
|
|
# |
|
|
# ### 362 |
|
|
# # |
|
|
# if ( rec('207','a') ) { |
|
|
# marc('362','a', |
|
|
# rec('207','a'), |
|
|
# ); |
|
|
# } |
|
|
# |
|
|
# ## lookup iz nsk |
|
|
# #else { |
|
|
# # if ( rec('11') ) { |
|
|
# # marc('362','a', |
|
|
# # lookup( |
|
|
# # sub { rec('207','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { first( rec('011','a') ) }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# # ); |
|
|
# # } |
|
|
# #} |
|
|
# |
|
|
# ### 490 ind. |
|
|
# |
|
|
# marc_indicators('490', '0', ' '); |
|
|
# |
|
|
# ### 490 |
|
|
# |
|
|
# marc('490','a', |
|
|
# join_with('. ', |
|
|
# join_with(' / ', |
|
|
# join_with(' : ', |
|
|
# join_with(' = ', |
|
|
# rec('225','a'), |
|
|
# rec('225','d') |
|
|
# ), |
|
|
# rec('225','e') |
|
|
# ), |
|
|
# join_with(' ; ', |
|
|
# rec('225','f'), |
|
|
# rec('225','g') |
|
|
# ), |
|
|
# ), |
|
|
# rec('225','h') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# marc('490','v', |
|
|
# rec('225','v') |
|
|
# ); |
|
|
# |
|
|
# marc('490','x', |
|
|
# rec('225','x') |
|
|
# ); |
|
|
# |
|
|
# if ( rec('11') ) { |
|
|
# marc('999','a', |
|
|
# lookup( |
|
|
# sub { rec('110','a'), }, |
|
|
# 'nsk','bbaza', |
|
|
# sub { rec('011','a') }, |
|
|
# sub { rec('11') } |
|
|
# ) |
|
|
# ); |
|
|
# } |
|
|
# |
|
|
# |
|
|
# #marc('998','a', |
|
|
# # lookup( |
|
|
# # sub { rec('H') }, |
|
|
# # 'ffsf','xls', |
|
|
# # sub { rec('A') }, |
|
|
# # sub { $id }, |
|
|
# # ), |
|
|
# #); |
|
|
|
|
|
|
|
|
### 500 |
|
|
# lookup |
|
|
# |
|
|
# |
|
|
# marc('500','a', |
|
|
# rec(''), |
|
|
# ); |
|
|
# |
|
|
# |
|
|
# ### 534 - napomena o pretisku |
|
|
# |
|
|
# marc('534','a', |
|
|
# rec('324') |
|
|
# ); |
|
|
# |
|
|
# ## potencijalno za izvući iz NSK |
|
|
# #if ( rec('11') ) { |
|
|
# #marc('546','a', |
|
|
# # lookup( |
|
|
# # sub { rec('302','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { rec('011','a') }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# #); |
|
|
# # |
|
|
# #marc('550','a', |
|
|
# # lookup( |
|
|
# # sub { rec('314','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { rec('011','a') }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# #); |
|
|
# # |
|
|
# #marc('555','a', |
|
|
# # lookup( |
|
|
# # sub { rec('320','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { rec('011','a') }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# #); |
|
|
# # |
|
|
# # |
|
|
# ## marc('562','a', |
|
|
# ## lookup( |
|
|
# ## sub { rec('316','a') }, |
|
|
# ## 'nsk','bbaza', |
|
|
# ## sub { rec('011','a') }, |
|
|
# ## sub { rec('11') }, |
|
|
# ## ) |
|
|
# ## ); |
|
|
# #} |
|
|
|
|
|
|
|
|
if ( rec('B') ) { |
|
|
marc('996','a', |
|
|
lc( rec('A') ) |
|
|
); |
|
172 |
|
|
|
marc('996','b', |
|
|
'peri' |
|
|
); |
|
173 |
|
|
174 |
marc('996','c', |
### 866 |
175 |
rec('B') |
marc_indicators('866',' ','0'); |
176 |
); |
marc('866','a', |
177 |
} |
rec('G') |
178 |
|
); |
179 |
|
|
|
# |
|
|
# ### 653 indikatori |
|
|
# marc_indicators('653', 0, ' '); |
|
|
# |
|
|
# ### 653 |
|
|
# |
|
|
# marc('653','a', |
|
|
# rec('610') |
|
|
# ); |
|
|
# |
|
|
# # marc_indicators('655', ' ', 4); |
|
|
# # marc('655','a', |
|
|
# # lookup( |
|
|
# # sub { rec('608','a') }, |
|
|
# # 'nsk','bbaza', |
|
|
# # sub { rec('011','a') }, |
|
|
# # sub { rec('11') }, |
|
|
# # ) |
|
|
# # ); |
|
|
# |
|
|
# |
|
|
# #_debug(2); |
|
|
# |
|
|
# ### 700 indikatori |
|
|
# |
|
|
# marc_indicators('700', 1, ' '); |
|
|
# |
|
|
# ### 700 |
|
|
# |
|
|
# marc('700','a', |
|
|
# rec('702','a'), |
|
|
# ); |
|
|
# |
|
|
# marc('700','a', |
|
|
# join_with(', ', |
|
|
# rec('702','c'), |
|
|
# rec('702','d') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# |
|
|
# #_debug(0); |
|
|
# |
|
|
# ### 710 indikatori |
|
|
# |
|
|
# marc_indicators('710', '2', ' '); |
|
|
# |
|
|
# ### 710 |
|
|
# marc('710','a', |
|
|
# rec('710','a') |
|
|
# ); |
|
|
# |
|
|
# ### 770 indikatori |
|
|
# |
|
|
# marc_indicators('770', 0, ' '); |
|
|
# |
|
|
# ### 770 |
|
|
# marc('770','t', |
|
|
# rec('421','a'), |
|
|
# ); |
|
|
# |
|
|
# ### 772 indikatori |
|
|
# marc_indicators('772', 0, ' '); |
|
|
# |
|
|
# ### 772 |
|
|
# marc('772','t', |
|
|
# rec('422','a'), |
|
|
# ); |
|
|
# |
|
|
# ### 773 indikatori |
|
|
# |
|
|
# if ( rec('225','a') ) { |
|
|
# |
|
|
# marc_indicators('773', 0, ' '); |
|
|
# |
|
|
# ### 773 |
|
|
# ## da li je bitan redoslijed potpolja? |
|
|
# |
|
|
# marc('773','w', |
|
|
# lookup( |
|
|
# sub { rec('000') }, |
|
|
# 'ffsf','peri', |
|
|
# sub { rec('200','a') }, |
|
|
# sub { |
|
|
# regex('s/ ; //g', |
|
|
# rec('225','a') |
|
|
# ) |
|
|
# }, |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# } |
|
|
# |
|
|
# |
|
|
# ### 777 indikatori |
|
|
# |
|
|
# marc_indicators('777', 0, ' '); |
|
|
# |
|
|
# ### 777 |
|
|
# |
|
|
# marc('777','t', |
|
|
# rec('423','a'), |
|
|
# ); |
|
|
# |
|
|
# ### 780 indikatori |
|
|
# |
|
|
# marc_indicators('780', 0, 0); |
|
|
# |
|
|
# ### 780 |
|
|
# marc('780','t', |
|
|
# rec('430','a'), |
|
|
# ); |
|
|
# |
|
|
# ### 785 indikatori |
|
|
# |
|
|
# marc_indicators('785', 0, 0); |
|
|
# |
|
|
# ### 785 |
|
|
# marc('785','t', |
|
|
# rec('440','a'), |
|
|
# ); |
|
|
# |
|
|
# ### 852 |
|
|
# |
|
|
# marc('852','j', |
|
|
# join_with(' ', |
|
|
# rec('990') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# ### 876 |
|
|
# |
|
|
# marc('876','a', |
|
|
# rec('991','a') |
|
|
# ); |
|
180 |
|
|
181 |
marc('942','d', |
### 942 |
182 |
rec('C') |
|
183 |
|
marc('942','b', |
184 |
|
'PER' |
185 |
); |
); |
186 |
|
|
187 |
|
marc('942','c', |
188 |
|
'PER' |
189 |
|
); |
190 |
|
|
191 |
|
marc('942','d', |
192 |
|
rec('C') |
193 |
|
); |
194 |
|
|
195 |
# |
marc('942','i', |
196 |
# ### 992 |
rec('C') |
197 |
# |
); |
|
# marc('992','a', |
|
|
# join_with(' ; ', |
|
|
# rec('992') |
|
|
# ) |
|
|
# ); |
|
|
# |
|
|
# |
|
|
### polja za probu |
|
|
|
|
|
|
|
|
#marc('998','a', |
|
|
# lookup( |
|
|
# sub { rec('200','a') }, |
|
|
# 'ffiz','peri', |
|
|
# sub { rec('200','a'), }, |
|
|
# sub { rec('225','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') }, |
|
|
# ) |
|
|
# ) |
|
|
# ); |
|
198 |
|
|
199 |
|
} #csigid |