/[webpac2]/trunk/conf/normalize/ff-libri.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-libri.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 758 - (show annotations)
Wed Oct 25 11:02:36 2006 UTC (17 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 8323 byte(s)
local config

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

  ViewVC Help
Powered by ViewVC 1.1.26