/[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 1010 - (hide annotations)
Tue Nov 6 20:20:37 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: text/plain
File size: 16621 byte(s)
local

1 dpavlin 802 #########################################################################
2     ## ##
3     ## Ova datoteka sadr¾i pravila za generiranje MARC21 ISO 2709 izlazne ##
4     ## datoteke. Ulazni format je CDS/ISIS sa zapisima u UNIMARC-u. ##
5     ## ##
6     ##########################################################################
7 dpavlin 795
8 dpavlin 792 # konvertira se ako postoji polje 200^a
9 dpavlin 773
10 dpavlin 751 if ( rec('200','a') ) {
11    
12 dpavlin 792 ### LEADER
13 dpavlin 751 # raspraviti 17,18
14 dpavlin 795 # u nekim knji¾nicama koristi se 999a i 999b, a u nekima samo 999
15 dpavlin 751
16 dpavlin 795 if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) {
17 dpavlin 751 marc_leader('05','c');
18     } else {
19     marc_leader('05','n');
20     }
21    
22 dpavlin 842 # moguæa je i oznaka "m" u 06 - odrediti kriterije
23 dpavlin 751 marc_leader('06','a');
24     marc_leader('07','m');
25     marc_leader('18','i');
26    
27 dpavlin 876 # pojasniti upotrebu 19 lidera!
28    
29 dpavlin 751 if ( rec('230') ) {
30     marc_leader('19','r');
31     }
32    
33 dpavlin 792 ### 001 - Voyager
34 dpavlin 751
35 dpavlin 903 ### 003
36     # Pojasniti upotrebu polja
37 dpavlin 876
38 dpavlin 816 ### 007
39 dpavlin 903 # pojasniti upotrebu polja
40 dpavlin 816
41     marc_fixed('007',00,'ta');
42    
43 dpavlin 905 ### 008 - All materials
44    
45 dpavlin 903 # ¹to zapisati u polje kad datum nije poznat?
46 dpavlin 773
47 dpavlin 816 if ( rec('994','c') ) {
48     marc_fixed('008','00',
49     regex('s/^\d\d//',
50     rec('994','c')
51     ),
52     );
53     } else {
54     marc_fixed('008', 00,
55     '000101'
56     );
57     }
58    
59     #warn( dump(
60     # regex('s/^\d\d//',
61     # rec('994','c')
62     # ),
63     #)
64     #);
65    
66 dpavlin 905 marc_fixed('008','06', 't'); # 06 - Type of date/Publication status
67     marc_fixed('008','07',
68     rec('210','d')
69     ); # 07-10 - Date 1
70     # marc_fixed('008','11', ' '); # 11-14 - Date 2
71     marc_fixed('008','15',
72     lc ( rec('102') )
73     ); # 15-17 - Place of publication, production, or execution
74 dpavlin 816 marc_fixed('008','35',
75 dpavlin 905 first( lc(rec('101')) ) # 35-37 - Language
76 dpavlin 816 );
77 dpavlin 905 marc_fixed('008','38', '|'); # 38 - Modified record
78     marc_fixed('008','39','d'); # 39 - Cataloging source
79 dpavlin 816
80    
81 dpavlin 905 ### 008 - Books
82    
83     # 18-21 - Illustrations
84     # 22 - Target audience
85     # 23 - Form of item
86     # 24-27 - Nature of contents
87     # 28 - Government publication
88     # 29 - Conference publication
89     # 30 - Festschrift
90     # 31 - Index
91     # 32 - Undefined
92     # 33 - Literary form
93     # 34 - Biography
94    
95    
96 dpavlin 876 ### 020
97     # postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
98 dpavlin 816
99 dpavlin 1010 if ( frec('10') ne frec('290') ) {
100     marc('020','a',
101     regex('s/-//g',
102     rec('10')
103     )
104     );
105     }
106 dpavlin 876
107 dpavlin 1010 #warn(
108     # dump(
109     # frec('10')
110     # ),
111     #);
112 dpavlin 876
113 dpavlin 792 ### 035$6
114     # Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
115 dpavlin 903 # marc 035a - System Number - Voyagerov ID (001)
116     # polje 035$9 mo¾e sadr¾avati slova i razmake
117 dpavlin 792
118 dpavlin 751 marc('035','6',
119 dpavlin 824 join_with('',
120 dpavlin 751 # config('input normalize path'),
121     # config('name'),
122 dpavlin 758 config(),
123 dpavlin 876 ' L',
124 dpavlin 751 # config('input name'),
125     # id(),
126     # rec('994','a'),
127     rec('000')
128     )
129     );
130    
131 dpavlin 792 ### 040
132     # za sve je isti
133 dpavlin 876 # treba utvrditi toènu oznaku za ustanovu
134 dpavlin 792
135 dpavlin 751 marc('040','a',
136     'HR FFZG'
137     );
138    
139     marc('040','b',
140     'hrv'
141     );
142    
143 dpavlin 758 marc('040','e',
144     'HR PPIAK'
145     );
146    
147 dpavlin 792
148 dpavlin 905 ### 041 - indikatori
149 dpavlin 903 #
150 dpavlin 792 # pretpostavke o indikatorima:
151     #
152 dpavlin 816 # 1. Ako postoji polje 300 i ono sadr¾i /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
153 dpavlin 792 # (Da li je napomena uvijek pisana?)
154     #
155     # 2. Podatak o prevodiocu u 200g. Problem: razlièiti oblici rijeèi, razlièiti jezici.
156     #
157     # 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
158     # (ako postoje zagrade pr. 94(=411.16) onda su to pomoæne oznake)
159     # pr. 821.111-2=163.42 je prijevod engleske drame na HR.
160     # to ima samo za knji¾evna djela, eseje....
161 dpavlin 816 # ????
162 dpavlin 792
163    
164 dpavlin 1010 #if ( rec('675') =~ m/\d=\d/ ) ??
165    
166     if (
167     grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik]/i, rec('300') ) ||
168     grep( m/[preve|prijevod]/i, rec('200','f')) ||
169     grep( m/[preve|prijevod]/i, rec('200','g'))
170     ) {
171 dpavlin 751 marc_indicators('041', 1, ' ');
172     } else {
173     marc_indicators('041', 0, ' ');
174     }
175    
176 dpavlin 758
177 dpavlin 792 ### 041
178     # ponovljivo polje konvertira se u ponovljivo potpolje
179    
180 dpavlin 783 #_debug(2);
181 dpavlin 903
182 dpavlin 751 marc_repeatable_subfield('041','a',
183 dpavlin 1010 map { lc($_) } rec('101')
184 dpavlin 751 );
185 dpavlin 903
186 dpavlin 783 #_debug(0);
187 dpavlin 751
188 dpavlin 876 ### 044
189 dpavlin 905 ## kako dobiti zemlju izdavanja?
190 dpavlin 751
191 dpavlin 792 ### 080
192 dpavlin 807 # 675 podpolja b, c, d ... - ¹to s njima ???
193 dpavlin 783
194 dpavlin 792 marc('080','a',
195     rec('675','a')
196     );
197    
198 dpavlin 876 marc('080','a',
199     rec('675','b')
200     );
201 dpavlin 792
202 dpavlin 876 marc('080','a',
203     rec('675','c')
204     );
205    
206     marc('080','a',
207     rec('675','d')
208     );
209    
210    
211 dpavlin 792 ### 084 - other classification (R)
212     # NSK ga koristi za struènu oznaku NSK iz polja 681
213 dpavlin 903 # NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
214     # polje 686 koristi FFPS. jo¹ netko?
215 dpavlin 792
216     marc('084','a',
217     rec('686')
218     );
219    
220 dpavlin 905 ### 100 indikatori
221 dpavlin 903
222 dpavlin 792 # I1 = 0 ako je pseudonim (ima 700a, nema 700b)
223    
224 dpavlin 807 if ( rec('700','a') && ! rec('700','b') ) {
225     marc_indicators('100', 0, ' ');
226     } else {
227     marc_indicators('100', 1, ' ');
228     }
229    
230 dpavlin 905 ### 100
231    
232 dpavlin 792 marc('100','a',
233     join_with(', ',
234     rec('700', 'a'),
235     rec('700', 'b')
236     )
237     );
238    
239    
240     ### 111 i 110
241     # provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
242 dpavlin 905
243 dpavlin 802 # ovo vrijedi za FFSFB
244 dpavlin 876 if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
245 dpavlin 792
246     marc_indicators('111', 2, ' ');
247    
248 dpavlin 802 marc_compose('111',
249 dpavlin 876 'a', suffix(
250     rec('710','b') ? '.' :
251     '',
252     rec('710','a'),
253     ),
254 dpavlin 802 'e', rec('710','b'),
255 dpavlin 876 'n', prefix(
256     rec('710','d') ? '(' :
257     '',
258     rec('710','d')
259     ),
260     'd', prefix(
261     ( ! rec('710','d') ) ? '(' :
262     ( ! rec('710','e') ) ? '(' :
263     '; ',
264     rec('710','f'),
265     ),
266     'c', prefix(
267     ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
268     ( ! rec('710','d') && ! rec('710','f') ) ? '(' :
269     '',
270     rec('710','e'),
271     ),
272     '+',')',
273 dpavlin 792 );
274    
275    
276     } else {
277    
278     marc_indicators('110', 2, ' ');
279 dpavlin 876
280 dpavlin 792 marc('110','a',
281     rec('710','a')
282     );
283    
284 dpavlin 876 marc('110','b',
285     rec('710','b')
286     );
287 dpavlin 792
288 dpavlin 903 if ( rec('710','c') ) {
289     marc('110','c',
290     surround('(', ')', rec('710','c'))
291     );
292     }
293    
294 dpavlin 802 }
295 dpavlin 792
296    
297 dpavlin 905 ### 245 indikatori
298     # treba nadopuniti i dati podatke na verifikaciju knji¾nièarima
299 dpavlin 903
300 dpavlin 816 # i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
301 dpavlin 792 # i2 = pretpostavlja se na temelju èlana na poèetku naslova i jezika
302    
303 dpavlin 816 my $i1;
304 dpavlin 792
305 dpavlin 816 if ( rec('700') || rec('710') ) {
306     $i1 = 1;
307    
308     } else {
309     $i1 = 0;
310     }
311    
312     marc_indicators('245', $i1, 0);
313    
314 dpavlin 758 if ( ( rec('200','a') =~ m/^Die /) ||
315     ( rec('200','a') =~ m/^Das /) ||
316 dpavlin 824 ( rec('200','a') =~ m/^Der /) ||
317 dpavlin 1010 ( rec('200','a') =~ m/^Les /) ||
318 dpavlin 758 ( rec('200','a') =~ m/^The /) ) {
319 dpavlin 816 marc_indicators('245', $i1, 4);
320 dpavlin 1010
321 dpavlin 783 }
322 dpavlin 751
323 dpavlin 1010 if ( ( rec('200','a') =~ m/^Un /) ||
324     ( rec('200','a') =~ m/^An /) ||
325     ( rec('200','a') =~ m/^La /) ||
326     ( rec('200','a') =~ m/^Le /) ||
327     ( rec('200','a') =~ m/^Il /) ) {
328     marc_indicators('245', $i1, 3);
329 dpavlin 783 }
330    
331 dpavlin 1010 if ( ( rec('200','a') =~ m/^A /) ||
332     ( rec('200','a') =~ m/^L'/) ) {
333 dpavlin 816 marc_indicators('245', $i1, 2);
334 dpavlin 807 }
335    
336 dpavlin 905 ### 245
337 dpavlin 816 # podpolja i interpunkcije pripremljeni u modify
338 dpavlin 783
339 dpavlin 751 #_debug(3);
340 dpavlin 816
341 dpavlin 751 marc_compose('245',
342     'a', suffix(
343 dpavlin 944 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :
344     ( rec('200','d') ) ? ' =' :
345     ( rec('200','e') ) ? ' :' :
346     ( rec('200','k') ) ? ' ;' :
347 dpavlin 824 '',
348 dpavlin 816 rec('200','a'),
349 dpavlin 751 ),
350     'b', suffix(
351 dpavlin 944 ( rec('200','d') && rec('200','f') ) ? ' /' :
352     ( rec('200','d') && rec('200','c') ) ? '.' :
353 dpavlin 824 '',
354 dpavlin 876 rec('200','d'),
355 dpavlin 751 ),
356 dpavlin 876 'b', suffix(
357 dpavlin 944 ( rec('200','e') && rec('200','f') ) ? ' /' :
358     ( rec('200','e') && rec('200','c') ) ? '.' :
359 dpavlin 876 '',
360     rec('200','e'),
361     ),
362     'b', suffix(
363 dpavlin 944 ( rec('200','k') && rec('200','f') ) ? ' /' :
364     ( rec('200','k') && rec('200','c') ) ? '.' :
365 dpavlin 876 '',
366     rec('200','k'),
367     ),
368 dpavlin 816 'c', suffix(
369 dpavlin 944 ( rec('200','f') && rec('200','c') ) ? '.' :
370 dpavlin 824 '',
371 dpavlin 1010 join_with(' ; ',
372     rec('200','f'),
373     rec('200','g')
374     )
375 dpavlin 751 ),
376 dpavlin 944 '+', suffix('.',
377     rec('200','c'),
378     ),
379 dpavlin 816 );
380 dpavlin 751
381 dpavlin 876 #marc_compose('245',
382     # 'a', suffix(
383     # ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :
384     # ( ! rec('200','p') && rec('200','c') ) ? ' : ' :
385     # '',
386     # rec('200','a'),
387     # ),
388     # 'b', suffix(
389     # ( rec('200','p') && rec('200','f') ) ? ' / ' :
390     # ( rec('200','p') && rec('200','c') ) ? '. ' :
391     # '',
392     # rec('200','p'),
393     # ),
394     # 'c', suffix(
395     # ( rec('200','f') && rec('200','c') ) ? '. ' :
396     # '',
397     # rec('200','f'),
398     # ),
399     # '+', rec('200','c'),
400     #);
401    
402 dpavlin 816 #_debug(0);
403 dpavlin 783
404 dpavlin 816 #marc_compose('245',
405     # 'a', suffix(
406     # rec('200','b') ? '. ' :
407     # rec('200','k') ? ' ; ' :
408     # rec('200','d') ? ' = ' :
409     # rec('200','e') ? ' : ' :
410     # rec('200','f') ? ' / ' :
411     # '.',
412     # rec('200','a')
413     # ),
414     ## 'h', rec('200','b'),
415     # 'b', suffix(
416     # ( rec('200','k') && rec('200','f') ) ? ' / ' :
417     # ' ',
418     # join_with(' ; ',
419     # rec('200','k'),
420     # ),
421     # ),
422     # 'b', suffix(
423     # ( rec('200','d') && rec('200','f') ) ? ' / ' :
424     # ' ',
425     # rec('200','d'),
426     # ),
427     # 'b', suffix(
428     # ( rec('200','e') && rec('200','f') ) ? ' / ' :
429     # ' ',
430     # join_with(' : ',
431     # rec('200','e'),
432     # ),
433     # ),
434     # 'c', rec('200','f'),
435 dpavlin 903 ## append to last subfield
436 dpavlin 816 # '+', prefix('. ',
437     # rec('200','c')
438     # ),
439     #);
440 dpavlin 751
441    
442 dpavlin 792 ### 250
443 dpavlin 903 # zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
444 dpavlin 783
445 dpavlin 824 marc_compose('250',
446     'a',suffix(
447     rec('205','f') ? ' / ' :
448     ' ',
449 dpavlin 751 rec('205','a')
450 dpavlin 824 ),
451     'b', rec('205','f'),
452 dpavlin 751 );
453    
454 dpavlin 792 ### 260
455 dpavlin 751 # ponovljiva potpolja u originalnom redosljedu
456 dpavlin 773
457 dpavlin 751 marc_original_order('260', '210');
458    
459    
460 dpavlin 792 ### 300
461 dpavlin 876 # urediti interpunkcije za sve kombinacije
462 dpavlin 758
463 dpavlin 751 marc('300','a',
464     suffix(
465 dpavlin 783 rec('215','c') ? ' : ' :
466     rec('215','d') ? ' ; ' :
467     rec('215','e') ? ' + ' :
468 dpavlin 751 ' ',
469     rec('215','a')
470     )
471     );
472    
473     marc('300','b',
474     suffix(
475 dpavlin 783 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
476     ( rec('215','c') && rec('215','e') ) ? ' + ' :
477 dpavlin 816 ' ',
478 dpavlin 751 rec('215','c')
479     )
480     );
481    
482     marc('300','c',
483     suffix(
484     rec('215','e') ? ' + ' :
485     ' ',
486     rec('215','d')
487     )
488     );
489    
490     marc('300','e',
491     rec('215','e')
492     );
493    
494 dpavlin 876 ### 362
495     # brojèani podaci za nakladnièku cjelinu
496 dpavlin 903 # ???
497 dpavlin 751
498 dpavlin 905 ### 440 - indikatori
499     # 2.ind. prema jeziku i èlanu, provjeriri
500 dpavlin 758
501 dpavlin 783 marc_indicators('440', ' ', '0');
502 dpavlin 751
503 dpavlin 816 if ( ( rec('225','a') =~ m/^Die /) ||
504     ( rec('225','a') =~ m/^Das /) ||
505     ( rec('225','a') =~ m/^The /) ) {
506     marc_indicators('440', ' ', 4);
507     }
508    
509     if ( ( rec('225','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {
510     marc_indicators('440', ' ', 2);
511     }
512    
513     if ( ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
514     marc_indicators('440', ' ', 2);
515     }
516    
517 dpavlin 824 #_debug(3);
518    
519 dpavlin 905 ### 440
520 dpavlin 1010 ## marc_compose radi samo kad polje ni potpolja nisu ponovljivi
521 dpavlin 905
522 dpavlin 1010 marc_compose('440',
523     'a', suffix(
524     ( rec('225','v') ) ? ' ;' :
525     ( rec('225','w') ) ? ' ; ' :
526     ( rec('225','x') ) ? ',' :
527     ( rec('225','h') || rec('225','i') ) ? '.' :
528     '.',
529     frec('225','a')
530     ),
531     'x',suffix(
532     ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
533     '',
534     frec('225','x')
535     ),
536     'v',suffix(
537     ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
538     ( rec('225','v') && rec('225','w') ) ? ' ; ' :
539     '',
540     frec('225','v')
541     ),
542     'n',suffix(
543     ( rec('225','h') && rec('225','i') ) ? ',' :
544     ( rec('225','h') && rec('225','w') ) ? ' ; ' :
545     '',
546     frec('225','h')
547     ),
548     'p',suffix(
549     ( rec('225','i') && rec('225','w') ) ? ' ; ' :
550     ( rec('225','i') && rec('225','x') ) ? ',' :
551     '',
552     frec('225','i')
553     ),
554     ## 225w treba ici u 440v, na kraj
555     '+', join_with(' ; ',
556     rec('225','w'),
557     )
558     );
559 dpavlin 751
560 dpavlin 1010
561     #marc_original_order('440','225');
562    
563 dpavlin 876 #marc_compose('440',
564     # 'a', suffix(
565     # rec('225','i') ? '. ' :
566     # '',
567 dpavlin 824 # rec('225','a'),
568     # ),
569 dpavlin 876 # 'p', suffix(
570     # ( ! rec('225','x') && rec('225','i') && rec('225','v') ) ? ' ; ' :
571     # ( rec('225','i') && rec('225','x') ) ? ', ' :
572     # '',
573     # rec('225','i'),
574     # ),
575     # 'x', suffix(
576     # ( rec('225','x') && rec('225','v') ) ? ' ; ' :
577     # '',
578     # rec('225','x'),
579     # ),
580     # 'v', rec('225','v'),
581     #);
582 dpavlin 824
583 dpavlin 876 ## ovo radi samo kad 225 nije ponovljivo
584 dpavlin 824
585 dpavlin 876 #if (
586     # count( lookup(
587     # sub { 1 },
588     # 'ffps','libri',
589     # sub { rec('225','a') }
590     # ) ) > 1
591     #) {
592 dpavlin 783
593 dpavlin 876 #marc_compose('440',
594     # 'a', suffix(
595     # ( rec('225','x') ) ? ', ' :
596     # ( rec('225','v') || rec('225','w') ) ? ' ; ' :
597     # ( rec('225','h') || rec('225','i') ) ? '. ' :
598     # '',
599     # join_with(' / ',
600     # join_with(' : ',
601     # join_with(' = ',
602     # rec('225','a'),
603     # rec('225','d'),
604     # ),
605     # rec('225','e'),
606     # ),
607     # rec('225','f'),
608     # ),
609     # ),
610     # 'x', suffix(
611     # ( rec('225','x') && rec('225','v') ) ? ' ; ' :
612     # ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '. ' :
613     # '',
614     # rec('225','x'),
615     # ),
616     # 'v', suffix(
617     # ( rec('225','v') && rec('225','h') || rec('225','i') ) ? '. ' :
618     # '',
619     # join_with('; ',
620     # rec('225','v'),
621     # )
622     # ),
623     # 'n', suffix(
624     # ( rec('225','h') && rec('225','p') || rec('225','y') ) ? ', ' :
625     # '',
626     # rec('225','h'),
627     # ),
628     # 'p', suffix(
629     # ( rec('225','i') && rec('225','x') ) ? ', ' :
630     # ( rec('225','i') && rec('225','v') ) ? ' ; ' :
631     # '',
632     # rec('225','i'),
633     # ),
634     # 'x', suffix(
635     # ( rec('225','y') && rec('225','v') ) ? ' ; ' :
636     # '',
637     # rec('225','y'),
638     # ),
639     # 'v', rec('225','w'),
640     # );
641     #
642     # marc_compose('440',
643     # 'a', suffix(
644     # rec('225','k') ? ' ; ' :
645     # '',
646     # join_with(' / ',
647     # rec('225','b'),
648     # rec('225','j')
649     # ),
650     # ),
651     # 'v',
652     # rec('225','k'),
653     # );
654     #
655     #
656     # marc_compose('440',
657     # 'a', suffix(
658     # rec('225','s') ? ' ; ' :
659     # '',
660     # join_with(' / ',
661     # rec('225','c'),
662     # rec('225','r')
663     # ),
664     # ),
665     # 'v',
666     # rec('225','s'),
667     # );
668 dpavlin 783
669 dpavlin 876 #}
670 dpavlin 783
671 dpavlin 876 #if ( rec('225','i') ) {
672     # marc('440','p',
673     # prefix('. ',
674     # rec('225','i')
675     # ),
676     # );
677     #}
678     #
679     #if ( rec('225','v') ) {
680     # marc('440','v',
681     # prefix(' ; ',
682     # rec('225','v'),
683     # ),
684     # );
685     #}
686 dpavlin 783
687 dpavlin 876 #_debug(0);
688 dpavlin 792
689 dpavlin 751
690 dpavlin 816 ### 50x
691 dpavlin 792
692 dpavlin 751 marc('500','a',
693     rec('300')
694     );
695    
696     marc('500','a',
697 dpavlin 773 rec('305')
698     );
699    
700     marc('500','a',
701     rec('307')
702     );
703    
704     marc('500','a',
705 dpavlin 751 rec('314')
706     );
707    
708 dpavlin 795 ### 502 - bilje¹ka o disertacijama
709     # odgovarajuæeg polja nema u originalnim podacima. mo¾da se mo¾e pretpostaviti?
710    
711 dpavlin 792 ### 504
712    
713 dpavlin 751 marc('504','a',
714     rec('320')
715     );
716    
717 dpavlin 758 ## napomene uz konverziju polja 327 (sadrzaj):
718 dpavlin 751 # NSK konvertira 327 (NP) u 501 (R)
719     # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
720     # standard i validacije dopu¹taju 501 (R) i 505 (R)
721    
722 dpavlin 792 ## 505
723 dpavlin 903 # FFPS 327 - sadrzaj
724 dpavlin 792
725 dpavlin 758 if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
726 dpavlin 773 marc_indicators('505', '0', ' ');
727 dpavlin 758 marc('505','a',
728     regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
729     rec('327')
730     )
731     );
732     }
733 dpavlin 751
734 dpavlin 816 if ( config() =~ m/ffan/ ) {
735     marc_indicators('505', '0', ' ');
736     marc('505','a',
737     regex('s/[<>]//g',
738     rec('330')
739     )
740     );
741     }
742 dpavlin 751
743 dpavlin 792
744 dpavlin 751 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
745    
746    
747 dpavlin 792 ### 520
748 dpavlin 903 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik?
749 dpavlin 792
750 dpavlin 758 # FFPS 330 (NP) - sa¾etak
751     if ( config() =~ m/ffps/ ) {
752     marc('520','a',
753     regex('s/[\\r\\n]+/. /g',
754     rec('330')
755     )
756     );
757     }
758 dpavlin 751
759 dpavlin 816 ### 526 - STUDY PROGRAM INFORMATION NOTE
760 dpavlin 903 # provjeriti za svaku bazu sta je tocno u 996?
761 dpavlin 751
762 dpavlin 816 marc_indicators('526', 8, ' ');
763 dpavlin 792
764 dpavlin 816 marc('526','a',
765     rec('996')
766     );
767 dpavlin 792
768 dpavlin 816 ### 538 - zahtjevi sustava
769    
770 dpavlin 773 marc('538','a',
771     rec('337','a')
772     );
773 dpavlin 758
774 dpavlin 773
775 dpavlin 792 ### 246
776 dpavlin 751
777 dpavlin 758 marc_indicators('246', 1, 3);
778     marc('246','a',
779     rec('532')
780     );
781    
782 dpavlin 792 ### 655
783    
784 dpavlin 751 marc_indicators('655', ' ', 4);
785     marc('655','a',
786     rec('608')
787     );
788    
789 dpavlin 792 ### 653
790    
791 dpavlin 758 marc_indicators('653', 0, ' ');
792 dpavlin 751 marc('653','a',
793     rec('610')
794     );
795    
796 dpavlin 792 #_debug(2);
797 dpavlin 751
798    
799 dpavlin 792 ### 700
800 dpavlin 751
801     marc_indicators('700', 1, ' ');
802    
803     if ( rec('701') ) {
804     marc('700','4',
805     'aut'
806     );
807     }
808    
809     marc('700','a',
810 dpavlin 758 join_with(', ',
811     rec('701', 'a'),
812     rec('701', 'b')
813     )
814 dpavlin 751 );
815    
816     marc('700','a',
817     join_with(', ',
818     rec('701', 'c'),
819     rec('701', 'd')
820     )
821     );
822    
823     marc('700','a',
824     join_with(', ',
825     rec('701', 'e'),
826     rec('701', 'f')
827     )
828     );
829    
830     marc('700','a',
831     join_with(', ',
832     rec('701', 'g'),
833     rec('701', 'h')
834     )
835     );
836    
837    
838     marc('700','a',
839 dpavlin 876 join_with(', ',
840     rec('702', 'a'),
841     rec('702', 'b')
842     )
843 dpavlin 751 );
844    
845    
846 dpavlin 758 # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
847 dpavlin 751
848    
849     marc('700','a',
850     join_with(', ',
851     rec('702','c'),
852     rec('702','d')
853     )
854     );
855    
856     marc('700','a',
857     join_with(', ',
858     rec('702','e'),
859     rec('702','f')
860     )
861     );
862    
863     marc('700','a',
864     join_with(', ',
865     rec('702','g'),
866     rec('702','h')
867     )
868     );
869    
870     #_debug(0);
871    
872    
873 dpavlin 792 ### 740
874 dpavlin 751
875 dpavlin 792 marc_indicators('740', 0, ' ');
876 dpavlin 751
877 dpavlin 792 # if ( ! rec('464') ) {
878     # marc('740','a',
879     # rec('200','c')
880     # );
881 dpavlin 751
882 dpavlin 807 marc('740','a',
883     rec('200','k')
884     );
885 dpavlin 751
886 dpavlin 792 # } else {
887 dpavlin 751
888 dpavlin 792 #marc('740','a',
889     # rec('464','a')
890     #);
891 dpavlin 751
892 dpavlin 792 # };
893 dpavlin 751
894 dpavlin 903 # generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
895 dpavlin 751
896 dpavlin 824 if (
897 dpavlin 876 rec('225','a') # da li je nakladnièka cjelina?
898 dpavlin 824 ) {
899 dpavlin 751
900 dpavlin 824 my $series_key =
901     join_with('',
902     rec('225','a'),
903     rec('210','a'),
904     rec('210','b'),
905     );
906    
907     my $series = get( $series_key );
908    
909     if ($series) {
910     warn "nije novi";
911     } else {
912    
913     $series = join_with('',
914 dpavlin 944 uc( config() ),
915     ' LS',
916 dpavlin 824 rec('000')
917     );
918    
919     set( $series_key => $series );
920    
921 dpavlin 876 } # $series
922     } # nakladnièka cjelina
923 dpavlin 824
924 dpavlin 792 my $series_key = join_with('',
925     rec('225','a'),
926     rec('210','a'),
927     rec('210','b'),
928     );
929 dpavlin 751
930 dpavlin 792 if ($series_key) {
931 dpavlin 751
932 dpavlin 792 marc_indicators('760', 0, ' ');
933    
934     marc('760','w',
935     get( $series_key )
936     );
937     }
938     ### testing
939     #
940     # my $dup_key = join_with('',
941     # rec('200','a'),
942     #);
943     #
944     #if ($dup_key) {
945     # marc('995','a',
946     # get( $dup_key )
947     # );
948     #}
949     #
950     #
951     # marc_indicators('776', 0, ' ');
952     #
953     # marc('776','a',
954     # rec('452','1')
955     # );
956     #
957 dpavlin 751
958    
959 dpavlin 903 ### 852 - lokacija
960 dpavlin 783
961 dpavlin 816 marc_indicators('852', 4, ' ');
962 dpavlin 773
963 dpavlin 816 marc('852','j',
964     join_with(' ',
965     rec('990')
966     )
967     );
968 dpavlin 783
969 dpavlin 903 ### 876 - item information - basic bibliographic unit
970 dpavlin 783
971 dpavlin 816 marc('876','a',
972     rec('991'),
973     );
974 dpavlin 783
975 dpavlin 903 ### 886 - former marc
976 dpavlin 783
977 dpavlin 816 marc_indicators('886', 2, ' ');
978 dpavlin 783
979 dpavlin 816 marc('886','2',
980     'ffmarc'
981     );
982 dpavlin 792
983 dpavlin 816 marc('886','a',
984     '994'
985     );
986 dpavlin 792
987 dpavlin 816 marc('886','b',
988     join_with(''.
989     '##^a',
990     join_with('',
991     prefix('^a',
992     rec('994','a'),
993     ),
994     prefix('^b',
995     rec('994','b')
996     )
997     )
998     )
999     );
1000 dpavlin 792
1001    
1002 dpavlin 795 } # polje 200a

  ViewVC Help
Powered by ViewVC 1.1.26