/[webpac2]/trunk/conf/normalize/ff-peri.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/conf/normalize/ff-peri.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 890 - (show annotations)
Thu Sep 6 19:12:31 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 7726 byte(s)
local

1 if ( rec('200','a') ) {
2
3
4 # LEADER
5 # raspraviti 17,18
6
7 marc_leader('05','n');
8 marc_leader('06','a');
9
10 if ( rec('225','a') ) {
11 marc_leader('07','b');
12 } else {
13 marc_leader('07','s');
14 }
15
16 marc_leader('18','i');
17
18 if ( rec('225','a') ) {
19 marc_leader('19','r');
20 }
21
22 # 001 polje - Voyager
23
24 # 007
25 marc_fixed('007',00,'ta');
26
27
28 ## 008 - All materials
29 marc_fixed('008','00', '070707'); # Date entered on file
30 marc_fixed('008','06', 's'); # Type of date/Publication status
31 if ( rec('11') ) {
32 if ( my $lookup = lookup(
33 sub { rec('210','d') },
34 'nsk','bbaza',
35 sub { first( rec('011','a') ) },
36 sub { rec('11') },
37 )
38 ) {
39 marc_fixed('008','07', $lookup);
40 } else {
41 marc_fixed('008','07',
42 rec('210','d')
43 );
44 }
45 } # Date 1
46 marc_fixed('008','11', ' '); # Date 2
47 marc_fixed('008','15',
48 lc ( rec('102') )
49 ); # Place of publication, production, or execution
50 #marc_fixed('008','35',
51 # rec('101')
52 #); # Language
53 marc_fixed('008','38', '|'); # Modified record
54 marc_fixed('008','39','d'); # Cataloging source
55
56
57 ## 008 - Continuing resources
58 marc_fixed('008','18', '|'); # Frequency
59 marc_fixed('008','19', '|'); # Regularity
60 marc_fixed('008','21', 'p'); # Type of continuing resource
61 marc_fixed('008','29', '|'); # Conference publication
62 marc_fixed('008','33', '|'); # Original alphabet or script of title
63 marc_fixed('008','34', '|'); # Entry convention
64
65
66 ## 022
67 if ( ! rec('225','a') ) {
68 marc('022','a',
69 rec('11')
70 );
71 }
72
73 # privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
74
75 marc('035','6',
76 join_with('',
77 uc( config() ),
78 ' P',
79 rec('000')
80 )
81 );
82
83
84 marc('040','a',
85 'HR FFZG'
86 );
87
88 marc('040','b',
89 'hrv'
90 );
91
92 marc('040','e',
93 'HR PPIAK'
94 );
95
96 marc_indicators('041', 0, ' ');
97
98 marc_repeatable_subfield('041','a',
99 rec('101')
100 );
101
102
103 #_debug(3);
104
105 ## 044 - zemlja izdavanja
106
107 if ( rec('11') ) {
108 marc('044','a',
109 lookup(
110 sub { rec('102','a') },
111 'nsk','bbaza',
112 sub { first( rec('011','a') ) },
113 sub { rec('11') },
114 ),
115 );
116 }
117
118 marc('080','a',
119 rec('675','a')
120 );
121
122 marc_indicators('210', '1',' ');
123
124 if ( rec('11') ) {
125 marc('210','a',
126 lookup(
127 sub { rec('531','a') },
128 'nsk','bbaza',
129 sub { rec('011','a') },
130 sub { rec('11') },
131 )
132 );
133 }
134
135 marc_indicators('222',' ','0'); # drugi indikator prema èlanu
136 if ( rec('11') ) {
137 marc('222','a',
138 lookup(
139 sub { rec('530','a') },
140 'nsk','bbaza',
141 sub { rec('011','a') },
142 sub { rec('11') },
143 )
144 );
145 }
146
147 ### 245 indikatori
148
149 if ( ( rec('200','a') =~ m/^Die /) ||
150 ( rec('200','a') =~ m/^Das /) ||
151 ( rec('200','a') =~ m/^The /) ) {
152 marc_indicators('245', 0, 4);
153 } else {
154 marc_indicators('245', 0, 0);
155 }
156
157
158 ## 245
159 marc_compose('245',
160 'a', suffix(
161 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :
162 ( rec('200','d') ) ? ' = ' :
163 ( rec('200','e') ) ? ' : ' :
164 ( rec('200','k') ) ? ' ; ' :
165 '',
166 rec('200','a'),
167 ),
168 'b', suffix(
169 ( rec('200','d') && rec('200','f') ) ? ' / ' :
170 ( rec('200','d') && rec('200','c') ) ? '. ' :
171 '',
172 rec('200','d'),
173 ),
174 'b', suffix(
175 ( rec('200','e') && rec('200','f') ) ? ' / ' :
176 ( rec('200','e') && rec('200','c') ) ? '. ' :
177 '',
178 rec('200','e'),
179 ),
180 'b', suffix(
181 ( rec('200','k') && rec('200','f') ) ? ' / ' :
182 ( rec('200','k') && rec('200','c') ) ? '. ' :
183 '',
184 rec('200','k'),
185 ),
186 'c', suffix(
187 ( rec('200','f') && rec('200','c') ) ? '. ' :
188 '',
189 rec('200','f'),
190 ),
191 '+', rec('200','c'),
192 );
193
194 ## 246
195 if ( ( rec('200','a') =~ m/^Die /) ||
196 ( rec('200','a') =~ m/^Das /) ||
197 ( rec('200','a') =~ m/^The /) ) {
198 marc_indicators('246', 0, 4);
199 } else {
200 marc_indicators('246', 0, 0);
201 }
202
203
204 if ( rec('532') ) {
205 marc('246','a',
206 rec('532')
207 );
208 }
209
210 #else {
211 # marc('246','a',
212 # lookup(
213 # sub { rec('532','a') },
214 # 'nsk','bbaza',
215 # sub { rec('011','a') },
216 # sub { rec('11') },
217 # )
218 # );
219 #}
220
221 #_debug(0);
222
223
224 ## 260 - izdavanje
225
226 # if ( rec('11') ) {
227 # marc_repeatable_subfield('260','a',
228 # lookup(
229 # sub { rec('210','a') },
230 # 'nsk','bbaza',
231 # sub { rec('011','a') },
232 # sub { rec('11') },
233 # )
234 # );
235 # marc_repeatable_subfield('260','b',
236 # lookup(
237 # sub { rec('210','c') },
238 # 'nsk','bbaza',
239 # sub { rec('011','a') },
240 # sub { rec('11') },
241 # )
242 # );
243 # marc('260','c',
244 # lookup(
245 # sub { rec('210','d') },
246 # 'nsk','bbaza',
247 # sub { rec('011','a') },
248 # sub { rec('11') },
249 # )
250 # );
251 # } else {
252 # marc_original_order('260', '210');
253 # }
254
255 marc_original_order('260','210');
256
257 # provjeriti interpunkcije !!
258 # u NSK nesto ne stima
259
260 marc('300','a',
261 suffix(
262 ( rec('215','a') && rec('215','c') ) ? ' : ' :
263 ( rec('215','a') && rec('215','d') ) ? ' ; ' :
264 ( rec('215','a') && rec('215','e') ) ? ' + ' :
265 ' ',
266 rec('215','a')
267 )
268 );
269
270 marc('300','b',
271 suffix(
272 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
273 ( rec('215','c') && rec('215','e') ) ? ' + ' :
274 ' ',
275 rec('215','c')
276 )
277 );
278
279 marc('300','c',
280 suffix(
281 rec('215','e') ? ' + ' :
282 ' ',
283 rec('215','d')
284 )
285 );
286
287 marc('300','e',
288 rec('215','e')
289 );
290
291 ## 310 - current stated publication frequency
292 marc('310','a',
293 rec('326')
294 );
295
296 ## 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
297 # marc('321','a',
298 # ovo bi trebalo procitati iz NSK konvertiranih podataka
299 #);
300
301 marc_indicators('362', 0, ' ');
302
303
304 ## 362
305 if ( rec('207','a') ) {
306 marc('362','a',
307 rec('207','a'),
308 );
309 } else {
310 if ( rec('11') ) {
311 marc('362','a',
312 lookup(
313 sub { rec('207','a') },
314 'nsk','bbaza',
315 sub { first( rec('011','a') ) },
316 sub { rec('11') },
317 )
318 );
319 }
320 }
321
322 ## 5xx
323 marc('500','a',
324 rec('300','a'),
325 );
326
327
328 marc('534','a',
329 rec('324')
330 );
331
332 if ( rec('11') ) {
333 marc('546','a',
334 lookup(
335 sub { rec('302','a') },
336 'nsk','bbaza',
337 sub { rec('011','a') },
338 sub { rec('11') },
339 )
340 );
341
342 marc('550','a',
343 lookup(
344 sub { rec('314','a') },
345 'nsk','bbaza',
346 sub { rec('011','a') },
347 sub { rec('11') },
348 )
349 );
350
351 marc('555','a',
352 lookup(
353 sub { rec('320','a') },
354 'nsk','bbaza',
355 sub { rec('011','a') },
356 sub { rec('11') },
357 )
358 );
359
360
361 # marc('562','a',
362 # lookup(
363 # sub { rec('316','a') },
364 # 'nsk','bbaza',
365 # sub { rec('011','a') },
366 # sub { rec('11') },
367 # )
368 # );
369 }
370
371 marc_indicators('653', 0, ' ');
372 marc('653','a',
373 rec('610')
374 );
375
376 # marc_indicators('655', ' ', 4);
377 # marc('655','a',
378 # lookup(
379 # sub { rec('608','a') },
380 # 'nsk','bbaza',
381 # sub { rec('011','a') },
382 # sub { rec('11') },
383 # )
384 # );
385
386
387 #_debug(2);
388
389 marc_indicators('700', 1, ' ');
390
391 marc('700','a',
392 rec('702','a'),
393 );
394
395 marc('700','a',
396 join_with(', ',
397 rec('702','c'),
398 rec('702','d')
399 )
400 );
401
402
403 #_debug(0);
404
405 marc_indicators('710', '2', ' ');
406 marc('710','a',
407 rec('710','a')
408 );
409
410
411 marc_indicators('770', 0, ' ');
412 marc('770','t',
413 rec('421','a'),
414 );
415
416 marc_indicators('772', 0, ' ');
417 marc('772','t',
418 rec('422','a'),
419 );
420
421 marc_indicators('777', 0, ' ');
422 marc('777','t',
423 rec('423','a'),
424 );
425
426 marc_indicators('780', 0, 0);
427 marc('780','t',
428 rec('430','a'),
429 );
430
431 marc_indicators('785', 0, 0);
432 marc('785','t',
433 rec('440','a'),
434 );
435
436 marc('852','j',
437 join_with(' ',
438 rec('990')
439 )
440 );
441
442 marc('876','a',
443 rec('991','a')
444 );
445
446 marc('992','a',
447 join_with(' ; ',
448 rec('992')
449 )
450 );
451
452
453 # marc('997','a',
454 # sort(
455 # lookup(
456 # sub { rec('001') },
457 # 'nsk','bbaza',
458 # sub { rec('011','a') },
459 # sub { rec('11') },
460 # )
461 # )
462 # );
463 #
464 # marc('998','a',
465 # sort(
466 # lookup(
467 # sub { rec('001') },
468 # 'nsk','bbaza',
469 # sub { first(rec('200','a')) . first(rec('200','e')) },
470 # sub { rec('200','a') . rec('200','e') },
471 # )
472 # )
473 # );
474 #
475 # marc('998','a',
476 # sort(
477 # lookup(
478 # sub { rec('001') },
479 # 'nsk','bbaza',
480 # sub { first(rec('200','a')) },
481 # sub { rec('200','a') },
482 # )
483 # )
484 # );
485
486 }

  ViewVC Help
Powered by ViewVC 1.1.26