/[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 880 - (show annotations)
Thu Aug 23 19:23:53 2007 UTC (16 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 8206 byte(s)
more local changes

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
29 marc_fixed('008','00', '070707');
30 marc_fixed('008','06', '|'); # Type of date/Publication status
31 marc_fixed('008','07', '|'); # Date 1
32 marc_fixed('008','08', '|');
33 marc_fixed('008','09', '|');
34 marc_fixed('008','10', '|');
35 marc_fixed('008','11', '|'); # Date 2
36 marc_fixed('008','12', '|');
37 marc_fixed('008','13', '|');
38 marc_fixed('008','14', '|');
39 marc_fixed('008','15', # Place of publication, production, or execution
40 lookup(
41 sub { rec('102','a') },
42 'nsk','bbaza',
43 sub { rec('011','a') },
44 sub { rec('11') },
45 ),
46 );
47 marc_fixed('008','18', '');
48 marc_fixed('008','35', # Language
49 rec('101')
50 );
51 marc_fixed('008','39','|'); # Cataloging source
52
53 ## 022
54
55 if ( ! rec('225','a') ) {
56 marc('022','a',
57 rec('11')
58 );
59 }
60
61 # privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
62
63 marc('035','6',
64 join_with('',
65 uc( config() ),
66 ' P',
67 rec('000')
68 )
69 );
70
71 # u marc 035a treba dodati System Number -
72 # NSK zapisuje Voyagerov ID (001) - kako ???
73
74 # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
75
76
77 # u polje 040a mo¾da jo¹ dodati prefiks HR
78 # NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
79
80 marc('040','a',
81 'HR FFZG'
82 );
83
84 marc('040','b',
85 'hrv'
86 );
87
88 marc('040','e',
89 'HR PPIAK'
90 );
91
92 # if (rec('300') && first(rec('300')) =~ m/Prijevod/) {
93 # marc_indicators('041', 1, ' ');
94 # } else {
95 # marc_indicators('041', 0, ' ');
96 # }
97
98 ## naci primjer u NSK
99
100 marc_repeatable_subfield('041','a',
101 rec('101')
102 );
103
104
105 if ( ( rec('200','a') =~ m/^Die /) ||
106 ( rec('200','a') =~ m/^Das /) ||
107 ( rec('200','a') =~ m/^The /) ) {
108 marc_indicators('245', 0, 4);
109 } else {
110 marc_indicators('245', 0, 0);
111 }
112
113 #_debug(3);
114
115 marc('044','a',
116 lookup(
117 sub { rec('102','a') },
118 'nsk','bbaza',
119 sub { rec('011','a') },
120 sub { rec('11') },
121 ),
122 );
123
124 marc('080','a',
125 rec('675','a')
126 );
127
128 marc_indicators('100', 1, ' ');
129 marc('100','a',
130 join_with(', ',
131 rec('700', 'a'),
132 rec('700', 'b')
133 )
134 );
135
136 marc_indicators('110', 2, ' ');
137 marc('110','a',
138 rec('710','a')
139 );
140
141 marc('110','c',
142 rec('710','c')
143 );
144
145 marc('222','a',
146 lookup(
147 sub { rec('530','a') },
148 'nsk','bbaza',
149 sub { rec('011','a') },
150 sub { rec('11') },
151 )
152 );
153
154 ### 245 indikatori
155
156 marc_compose('245',
157 'a', suffix(
158 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :
159 ( rec('200','d') ) ? ' = ' :
160 ( rec('200','e') ) ? ' : ' :
161 ( rec('200','k') ) ? ' ; ' :
162 '',
163 rec('200','a'),
164 ),
165 'b', suffix(
166 ( rec('200','d') && rec('200','f') ) ? ' / ' :
167 ( rec('200','d') && rec('200','c') ) ? '. ' :
168 '',
169 rec('200','d'),
170 ),
171 'b', suffix(
172 ( rec('200','e') && rec('200','f') ) ? ' / ' :
173 ( rec('200','e') && rec('200','c') ) ? '. ' :
174 '',
175 rec('200','e'),
176 ),
177 'b', suffix(
178 ( rec('200','k') && rec('200','f') ) ? ' / ' :
179 ( rec('200','k') && rec('200','c') ) ? '. ' :
180 '',
181 rec('200','k'),
182 ),
183 'c', suffix(
184 ( rec('200','f') && rec('200','c') ) ? '. ' :
185 '',
186 rec('200','f'),
187 ),
188 '+', rec('200','c'),
189 );
190
191 ## 246
192
193 marc_indicators('246', 1, 3);
194
195 marc('246','a',
196 rec('532')
197 );
198
199 #_debug(0);
200
201 marc('250','a',
202 suffix(
203 rec('205','f') ? ' / ' :
204 ' '.
205 rec('205','a')
206 )
207 );
208
209 marc('250','b',
210 rec('205','f')
211 );
212
213 # ponovljiva potpolja u originalnom redosljedu
214 #
215 marc_original_order('260', '210');
216
217
218 # provjeriti interpunkcije !!
219 # u NSK nesto ne stima
220
221 marc('300','a',
222 suffix(
223 rec('215','c') ? ' : ' :
224 rec('215','d') ? ' ; ' :
225 rec('215','e') ? ' + ' :
226 ' ',
227 rec('215','a')
228 )
229 );
230
231 marc('300','b',
232 suffix(
233 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
234 ( rec('215','c') && rec('215','e') ) ? ' + ' :
235 ' ',
236 rec('215','c')
237 )
238 );
239
240 marc('300','c',
241 suffix(
242 rec('215','e') ? ' + ' :
243 ' ',
244 rec('215','d')
245 )
246 );
247
248 marc('300','e',
249 rec('215','e')
250 );
251
252 marc('310','a',
253 lookup(
254 sub { rec('326','a') },
255 'nsk','bbaza',
256 sub { rec('011','a') },
257 sub { rec('11') },
258 )
259 );
260
261 marc('321','a',
262 rec('326')
263 );
264
265 marc_indicators('362', 0, ' ');
266
267 marc('362','a',
268 lookup(
269 sub { rec('207','a') },
270 'nsk','bbaza',
271 sub { rec('011','a') },
272 sub { rec('11') },
273 ),
274 );
275
276
277 marc('500','a',
278 lookup(
279 sub { rec('300','a') },
280 'nsk','bbaza',
281 sub { rec('011','a') },
282 sub { rec('11') },
283 )
284 );
285
286 marc('500','a',
287 lookup(
288 sub { rec('302','a') },
289 'nsk','bbaza',
290 sub { rec('011','a') },
291 sub { rec('11') },
292 )
293 );
294
295 marc('504','a',
296 lookup(
297 sub { rec('320','a') },
298 'nsk','bbaza',
299 sub { rec('011','a') },
300 sub { rec('11') },
301 )
302 );
303
304 marc('562','a',
305 lookup(
306 sub { rec('316','a') },
307 'nsk','bbaza',
308 sub { rec('011','a') },
309 sub { rec('11') },
310 )
311 );
312
313
314 #marc('500','a',
315 # rec('300')
316 #);
317 #
318 #marc('500','a',
319 # rec('314')
320 #);
321 #
322 #marc('504','a',
323 # rec('320')
324 #);
325
326 ## napomene uz konverziju polja 327 (sadrzaj):
327 # NSK konvertira 327 (NP) u 501 (R)
328 # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
329 # standard i validacije dopu¹taju 501 (R) i 505 (R)
330
331 ## FFPS 327 - sadrzaj
332 if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
333 marc_indicators('505', '1', ' ');
334 marc('505','a',
335 regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
336 rec('327')
337 )
338 );
339 }
340
341
342 ## napomene uz konverziju polja 330:
343 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
344
345
346 # FFPS 330 (NP) - sa¾etak
347 if ( config() =~ m/ffps/ ) {
348 marc('520','a',
349 regex('s/[\\r\\n]+/. /g',
350 rec('330')
351 )
352 );
353 }
354
355 # FFTU 330 - ???
356 if ( config() =~ m/fftu/ ) {
357 marc('520','a',
358 rec('330')
359 );
360 }
361
362
363 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
364
365
366 ### 534
367
368 marc('534','a',
369 rec('324')
370 );
371
372
373 marc_indicators('655', ' ', 4);
374 marc('655','a',
375 rec('608')
376 );
377
378 marc_indicators('653', 0, ' ');
379 marc('653','a',
380 rec('610')
381 );
382
383 # 675 podpolja c, d ... - ¹to s njima ???
384
385 # 084 je other classification (R)
386 # NSK ga koristi za struènu oznaku NSK iz polja 681
387 # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
388 #
389
390
391
392 #_debug(2);
393
394 marc_indicators('700', 1, ' ');
395
396 if ( rec('701') ) {
397 marc('700','4',
398 'aut'
399 );
400 }
401
402 marc('700','a',
403 join_with(', ',
404 rec('701', 'a'),
405 rec('701', 'b')
406 )
407 );
408
409 marc('700','a',
410 join_with(', ',
411 rec('701', 'c'),
412 rec('701', 'd')
413 )
414 );
415
416 marc('700','a',
417 join_with(', ',
418 rec('701', 'e'),
419 rec('701', 'f')
420 )
421 );
422
423 marc('700','a',
424 join_with(', ',
425 rec('701', 'g'),
426 rec('701', 'h')
427 )
428 );
429
430
431 marc('700','a',
432 rec('702','a'),
433 );
434
435
436 # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
437
438
439 marc('700','a',
440 join_with(', ',
441 rec('702','c'),
442 rec('702','d')
443 )
444 );
445
446 marc('700','a',
447 join_with(', ',
448 rec('702','e'),
449 rec('702','f')
450 )
451 );
452
453 marc('700','a',
454 join_with(', ',
455 rec('702','g'),
456 rec('702','h')
457 )
458 );
459
460
461 #_debug(0);
462
463
464
465 marc_indicators('740', 0, ' ');
466
467 if ( ! rec('464') ) {
468 marc('740','a',
469 rec('200','c')
470 );
471
472 marc('740','a',
473 rec('200','k')
474 );
475
476 } else {
477 marc('740','a',
478 rec('464','a')
479 );
480 };
481
482 marc_indicators('770', 0, ' ');
483 marc('770','t',
484 rec('430','a'),
485 );
486
487 marc('770','x',
488 rec('430','b'),
489 );
490
491 if ( rec('225','a') ) {
492
493 marc_indicators('773', 0, ' ');
494 marc('773','g',
495 rec('207','a')
496 );
497
498 marc('773','t',
499 join_with(' : ',
500 rec('225','a'),
501 rec('225','e')
502 ),
503 );
504
505 marc('773','w',
506 lookup(
507 sub {
508 join_with('',
509 uc( config() ),
510 ' P',
511 rec('000')
512 ),
513 },
514 'ffsf','peri',
515 sub { rec('200','a') },
516 sub { rec('225','a') },
517 )
518 );
519
520 }
521
522 marc('852','j',
523 join_with(' ',
524 rec('990')
525 )
526 );
527
528 marc('876','a',
529 rec('991','a')
530 );
531
532 marc('992','a',
533 join_with(' ; ',
534 rec('992')
535 )
536 );
537
538
539
540 marc('997','a',
541 sort(
542 lookup(
543 sub { rec('001') },
544 'nsk','bbaza',
545 sub { rec('011','a') },
546 sub { rec('11') },
547 )
548 )
549 );
550
551 marc('998','a',
552 sort(
553 lookup(
554 sub { rec('001') },
555 'nsk','bbaza',
556 sub { first(rec('200','a')) . first(rec('200','e')) },
557 sub { rec('200','a') . rec('200','e') },
558 )
559 )
560 );
561
562 marc('998','a',
563 sort(
564 lookup(
565 sub { rec('001') },
566 'nsk','bbaza',
567 sub { first(rec('200','a')) },
568 sub { rec('200','a') },
569 )
570 )
571 );
572
573 }

  ViewVC Help
Powered by ViewVC 1.1.26