/[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

Annotation of /trunk/conf/normalize/ff-libri.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 dpavlin 751 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 dpavlin 758 config(),
35     'L',
36 dpavlin 751 # 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 dpavlin 758 marc('040','e',
64     'HR PPIAK'
65     );
66    
67     if (rec('300') && first(rec('300')) =~ m/Prijevod/) {
68 dpavlin 751 marc_indicators('041', 1, ' ');
69     } else {
70     marc_indicators('041', 0, ' ');
71     }
72    
73 dpavlin 758 ## naci primjer u NSK
74    
75 dpavlin 751 marc_repeatable_subfield('041','a',
76     rec('101')
77     );
78    
79    
80 dpavlin 758 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 dpavlin 751 } 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 dpavlin 758 # u NSK nesto ne stima
152    
153 dpavlin 751 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 dpavlin 758 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
166 dpavlin 751 ( 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 dpavlin 758 # provjeriti
186    
187 dpavlin 751 marc_indicators('490', 0, ' ');
188    
189     marc('490','a',
190     rec('225','a')
191     );
192    
193 dpavlin 758 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 dpavlin 751 #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 dpavlin 758 ## napomene uz konverziju polja 327 (sadrzaj):
238 dpavlin 751 # 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 dpavlin 758 ## 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 dpavlin 751
252    
253 dpavlin 758 ## napomene uz konverziju polja 330:
254 dpavlin 751 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
255    
256    
257 dpavlin 758 # 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 dpavlin 751
266 dpavlin 758 # FFTU 330 - ???
267     if ( config() =~ m/fftu/ ) {
268     marc('520','a',
269 dpavlin 751 rec('330')
270 dpavlin 758 );
271 dpavlin 751 }
272    
273 dpavlin 758
274 dpavlin 751 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
275    
276 dpavlin 758 marc_indicators('246', 1, 3);
277     marc('246','a',
278     rec('532')
279     );
280    
281 dpavlin 751 marc_indicators('655', ' ', 4);
282     marc('655','a',
283     rec('608')
284     );
285    
286 dpavlin 758 marc_indicators('653', 0, ' ');
287 dpavlin 751 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 dpavlin 758 join_with(', ',
327     rec('701', 'a'),
328     rec('701', 'b')
329     )
330 dpavlin 751 );
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 dpavlin 758 # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
360 dpavlin 751
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 dpavlin 758 ## 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 dpavlin 751 # 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 dpavlin 758 '-',
484 dpavlin 751 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 dpavlin 758
549     # marc_original_order('260', '250');
550    
551 dpavlin 751 marc('260','c',
552 dpavlin 758 rec1('251')
553 dpavlin 751 );
554    
555 dpavlin 758
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 dpavlin 751 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