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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1182 - (hide annotations)
Mon May 18 17:37:06 2009 UTC (15 years ago) by mglavica
File MIME type: text/plain
File size: 11945 byte(s)
casopisi

1 dpavlin 758 if ( rec('200','a') ) {
2    
3 dpavlin 905 ### LEADER
4 dpavlin 758
5 mglavica 1182 ## LDR 05 - n - new
6     marc_leader('05','n');
7 dpavlin 758
8 mglavica 1182 ## LDR 06 - a - language material
9     marc_leader('06','a');
10 dpavlin 944
11 mglavica 1182 ## LDR 07 - Bibliographic level
12     # izvuci podatke iz tablice (za po i sf)
13    
14 dpavlin 880 if ( rec('225','a') ) {
15 dpavlin 905 marc_leader('07','d');
16 dpavlin 758 } else {
17 mglavica 1182 marc_leader('07','s');
18 dpavlin 758 }
19    
20 mglavica 1182 ## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
21     marc_leader('17','u');
22 dpavlin 758
23 mglavica 1182 ## LDR 18 - i - isbd
24     marc_leader('18','i');
25    
26    
27     ## LDR 19 - Multipart resource record level ; # - Not specified or not applicable, a - Set, b - Part with independent title, c - Part with dependent title
28 dpavlin 944 # tematski brojevi imaju vezu u
29    
30 dpavlin 880 if ( rec('225','a') ) {
31 mglavica 1182 marc_leader('19','a');
32 dpavlin 880 }
33 dpavlin 758
34 dpavlin 905 ### 008 - All materials
35    
36 mglavica 1182 marc_fixed('008','00', '010101'); # 00-05 - Date entered on file
37 dpavlin 905
38     ## za 008 06 treba i lookup u tablicu gdje postoji podatak o tome jel tekuci casopis ili nije?
39     ## c - Continuing resource currently published
40     ## d - Continuing resource ceased publication
41    
42 dpavlin 944 my $year = rec('210','c');
43    
44 mglavica 1182 #if ( rec('210','c') ) {
45     # marc_fixed('008','06','s'); # 06 - Type of date/Publication status, s = single know date
46     #
47     ## warn "## year = $year";
48     #
49     # if ( $year =~ m/^(\d{4})/ ) {
50     ## warn "## $1 ##\n";
51     # marc_fixed('008','07',$1); # 07-10 - Date 1
52     # }
53     #
54     # if ( $year =~ m/^\d{4}-(\d{4})/ ) {
55     ## warn "## $1 ##";
56     # marc_fixed('008','11',$1); # 11-14 - Date 2
57     # marc_fixed('008','06','d');
58     # }
59     #
60     #} else {
61     # marc_fixed('008','06','n'); # 06 - n = unknown date
62     #}
63    
64 dpavlin 905 if ( rec('210','c') ) {
65 mglavica 1182 my $d1 = '';
66     my $d2 = '';
67     if ( rec('210','c') =~ m/(\d{4})-/ ) {
68     marc_fixed('008','06','m');
69     if ( rec('210','c') =~ m/(\d{4})-/ ) {
70     $d1 = $1;
71     $d2 = '9999';
72     }
73     if ( rec('210','c') =~ m/-(\d{4})/ ) {
74     $d2 = $1;
75     }
76     } else {
77     marc_fixed('008','06','s');
78     if ( rec('210','c') =~ m/(\d{4})/ ) {
79     $d1 = $1;
80     }
81     if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
82     $d1 = $1.'uu';
83     }
84     if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
85     $d1 = $1.'u';
86     }
87 dpavlin 890 }
88 mglavica 1182 marc_fixed('008','07',$d1); # 07-10 - Date 1
89     marc_fixed('008','11',$d2); # 07-10 - Date 1
90 dpavlin 905 } else {
91     marc_fixed('008','06','n'); # 06 - n = unknown date
92 mglavica 1182 marc_fixed('008','07','uuuu');
93 dpavlin 905 }
94 dpavlin 903
95 dpavlin 944 marc_fixed('008','15', # 15-17 - Place of publication, production, or execution
96     lc ( rec('102') )
97     );
98 dpavlin 905
99 dpavlin 944
100    
101 dpavlin 905 marc_fixed('008','35',
102     first( lc(rec('101')) ) # 35-37 - Language
103     );
104 dpavlin 944 # 38 - Modified record
105     # 39 - Cataloging source
106 dpavlin 880
107 dpavlin 905 ### 008 - Continuing resources
108 dpavlin 890
109 dpavlin 905 if ( ! rec('225','a') ) {
110 dpavlin 890
111 dpavlin 944 marc_fixed('008','18', 'u'); # 18 - Frequency - ovo treba popuniti iz polja 326
112     marc_fixed('008','19', 'u'); # 19 - Regularity
113 dpavlin 905 # 20 - Undefined, ontains a blank (#) or fill character (|)
114    
115     # za polje 008 21 treba lookup u tablicu:
116     marc_fixed('008','21', 'p'); # 21 - Type of continuing resource
117    
118     # 22 - Form of original item - blank
119     # 23 - Form of item
120     # 24 - Nature of entire work
121     # 25-27 - Nature of contents
122     # 28 - Government publication
123     # 29 - Conference publication
124     # 30-32 - Undefined
125     # 33 - Original alphabet or script of title
126     # 34 - Entry convention
127     }
128    
129 dpavlin 880 ## 022
130 dpavlin 903 # if ( ! rec('225','a') ) {
131     # marc('022','a',
132     # rec('11')
133     # );
134     # }
135     #
136 dpavlin 880
137 dpavlin 905 ### 022
138 dpavlin 903
139 dpavlin 944 #if ( ! rec('225','a') ) {
140 dpavlin 905 marc('022','a',
141     rec('11')
142     );
143 dpavlin 944 #}
144 dpavlin 903
145 dpavlin 905 ### 035$6
146 dpavlin 758 # privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
147    
148 dpavlin 944 my $id;
149    
150     $id = (
151 dpavlin 880 join_with('',
152     uc( config() ),
153     ' P',
154 dpavlin 758 rec('000')
155     )
156     );
157    
158 dpavlin 944 marc('035','6', $id);
159 dpavlin 758
160 dpavlin 905 ### 040
161     # za sve je isti
162     # treba utvrditi toènu oznaku za ustanovu
163    
164 dpavlin 758 marc('040','a',
165     'HR FFZG'
166     );
167    
168     marc('040','b',
169     'hrv'
170     );
171    
172     marc('040','e',
173     'HR PPIAK'
174     );
175    
176 dpavlin 905 ### 041 - indikatori
177    
178 dpavlin 890 marc_indicators('041', 0, ' ');
179 dpavlin 758
180 dpavlin 905 ### 041
181    
182 dpavlin 758 marc_repeatable_subfield('041','a',
183     rec('101')
184     );
185    
186    
187     #_debug(3);
188    
189 dpavlin 905 ### 044 - zemlja izdavanja
190 dpavlin 880
191 dpavlin 905 marc('044','a',
192     rec('102')
193     );
194 dpavlin 890
195 dpavlin 905 ### 080
196    
197 dpavlin 880 marc('080','a',
198     rec('675','a')
199     );
200    
201 dpavlin 905 ### 210 indikatori
202     # marc_indicators('210', '1',' ');
203 dpavlin 880
204 dpavlin 944 ### 210 - ABBREVIATED TITLE
205     # pronaæi prikladan izvor podataka (nsk baza, issn baza)
206 dpavlin 905
207     ## iz nsk
208     #if ( rec('11') ) {
209     #marc('210','a',
210     # lookup(
211     # sub { rec('531','a') },
212     # 'nsk','bbaza',
213     # sub { rec('011','a') },
214     # sub { rec('11') },
215     # )
216     #);
217     #}
218    
219     ### 222 indikatori
220     # drugi indikator prema èlanu
221    
222     marc_indicators('222',' ','0');
223    
224     ### 222 - Key title
225     # pronaæi prikadan izvor podataka - nsk baza, issn baze
226    
227 dpavlin 880 marc('222','a',
228 dpavlin 905 rec('530')
229 dpavlin 880 );
230 dpavlin 905
231     # iz nsk:
232     #if ( rec('11') ) {
233     #marc('222','a',
234     # lookup(
235     # sub { rec('530','a') },
236     # 'nsk','bbaza',
237     # sub { rec('011','a') },
238     # sub { rec('11') },
239     # )
240     #);
241     #}
242    
243 dpavlin 880 ### 245 indikatori
244 dpavlin 975 # generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek).
245     # potrebna naknadna kontrola
246 dpavlin 880
247 dpavlin 944 marc_indicators('245', 0, 0);
248    
249 dpavlin 890 if ( ( rec('200','a') =~ m/^Die /) ||
250     ( rec('200','a') =~ m/^Das /) ||
251 dpavlin 944 ( rec('200','a') =~ m/^Der /) ||
252     ( rec('200','a') =~ m/^Les /) ||
253 dpavlin 890 ( rec('200','a') =~ m/^The /) ) {
254     marc_indicators('245', 0, 4);
255    
256 dpavlin 944 }
257 dpavlin 890
258 dpavlin 944 if ( ( rec('200','a') =~ m/^Un /) ||
259     ( rec('200','a') =~ m/^An /) ||
260     ( rec('200','a') =~ m/^La /) ||
261     ( rec('200','a') =~ m/^Le /) ||
262     ( rec('200','a') =~ m/^Il /) ) {
263     marc_indicators('245', 0, 3);
264     }
265    
266     if ( ( rec('200','a') =~ m/^A /) ||
267     ( rec('200','a') =~ m/^L'/) ) {
268     marc_indicators('245', 0, 2);
269     }
270    
271 dpavlin 905 ### 245
272    
273 dpavlin 758 marc_compose('245',
274     'a', suffix(
275 dpavlin 944 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :
276 mglavica 1182 ( rec('200','d') ) ? ' =' :
277     ( rec('200','e') ) ? ' :' :
278     ( rec('200','k') ) ? ' ;' :
279 dpavlin 880 '',
280     rec('200','a'),
281 dpavlin 758 ),
282     'b', suffix(
283 dpavlin 944 ( rec('200','d') && rec('200','f') ) ? ' /' :
284     ( rec('200','d') && rec('200','c') ) ? '.' :
285 dpavlin 880 '',
286     rec('200','d'),
287 dpavlin 758 ),
288     'b', suffix(
289 dpavlin 944 ( rec('200','e') && rec('200','f') ) ? ' /' :
290     ( rec('200','e') && rec('200','c') ) ? '.' :
291 dpavlin 880 '',
292     rec('200','e'),
293 dpavlin 758 ),
294     'b', suffix(
295 dpavlin 944 ( rec('200','k') && rec('200','f') ) ? ' /' :
296     ( rec('200','k') && rec('200','c') ) ? '.' :
297 dpavlin 880 '',
298     rec('200','k'),
299 dpavlin 758 ),
300 dpavlin 880 'c', suffix(
301 dpavlin 944 ( rec('200','f') && rec('200','c') ) ? '.' :
302 dpavlin 880 '',
303     rec('200','f'),
304 dpavlin 758 ),
305 dpavlin 944 '+', suffix('.',
306     rec('200','c'),
307     )
308 dpavlin 880 );
309 dpavlin 773
310 dpavlin 905 ### 246 inikatori
311     # prema jeziku - provjera
312    
313 dpavlin 890 if ( ( rec('200','a') =~ m/^Die /) ||
314     ( rec('200','a') =~ m/^Das /) ||
315     ( rec('200','a') =~ m/^The /) ) {
316     marc_indicators('246', 0, 4);
317     } else {
318     marc_indicators('246', 0, 0);
319     }
320 dpavlin 880
321 dpavlin 905 ### 246
322     # povuæi podatke iz prikladnog izvora (nsk, issn)
323 dpavlin 880
324 dpavlin 905 marc('246','a',
325     rec('532')
326     );
327 dpavlin 758
328 dpavlin 905 ## iz nsk:
329 dpavlin 890 # marc('246','a',
330     # lookup(
331     # sub { rec('532','a') },
332     # 'nsk','bbaza',
333     # sub { rec('011','a') },
334     # sub { rec('11') },
335     # )
336     # );
337    
338 dpavlin 758 #_debug(0);
339    
340    
341 dpavlin 890 ## 260 - izdavanje
342 dpavlin 905 # provjeriti interpunkcije !!, u NSK nesto ne stima
343 dpavlin 758
344 dpavlin 905 marc_original_order('260','210');
345    
346     ## lookup u NSK:
347 dpavlin 890 # if ( rec('11') ) {
348     # marc_repeatable_subfield('260','a',
349     # lookup(
350     # sub { rec('210','a') },
351     # 'nsk','bbaza',
352     # sub { rec('011','a') },
353     # sub { rec('11') },
354     # )
355     # );
356     # marc_repeatable_subfield('260','b',
357     # lookup(
358     # sub { rec('210','c') },
359     # 'nsk','bbaza',
360     # sub { rec('011','a') },
361     # sub { rec('11') },
362     # )
363     # );
364     # marc('260','c',
365     # lookup(
366     # sub { rec('210','d') },
367     # 'nsk','bbaza',
368     # sub { rec('011','a') },
369     # sub { rec('11') },
370     # )
371     # );
372     # } else {
373     # marc_original_order('260', '210');
374     # }
375 dpavlin 758
376    
377 dpavlin 905 ### 300
378 dpavlin 758
379     marc('300','a',
380     suffix(
381 dpavlin 890 ( rec('215','a') && rec('215','c') ) ? ' : ' :
382     ( rec('215','a') && rec('215','d') ) ? ' ; ' :
383     ( rec('215','a') && rec('215','e') ) ? ' + ' :
384 dpavlin 773 ' ',
385 dpavlin 758 rec('215','a')
386     )
387     );
388    
389     marc('300','b',
390     suffix(
391 dpavlin 773 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
392     ( rec('215','c') && rec('215','e') ) ? ' + ' :
393     ' ',
394 dpavlin 758 rec('215','c')
395     )
396     );
397    
398     marc('300','c',
399     suffix(
400     rec('215','e') ? ' + ' :
401     ' ',
402     rec('215','d')
403     )
404     );
405    
406     marc('300','e',
407     rec('215','e')
408     );
409    
410 dpavlin 905 ### 310 - current stated publication frequency
411 dpavlin 944 # potrebno ujednaèiti, koristi se i u polju 008
412 dpavlin 905
413 dpavlin 880 marc('310','a',
414     rec('326')
415     );
416 dpavlin 758
417 dpavlin 905 ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
418    
419 dpavlin 890 # marc('321','a',
420     # ovo bi trebalo procitati iz NSK konvertiranih podataka
421     #);
422    
423 dpavlin 880 marc_indicators('362', 0, ' ');
424 dpavlin 758
425 dpavlin 905 ### 362
426     #
427 dpavlin 890 if ( rec('207','a') ) {
428     marc('362','a',
429     rec('207','a'),
430     );
431 dpavlin 905 }
432 dpavlin 880
433 dpavlin 905 ## lookup iz nsk
434     #else {
435     # if ( rec('11') ) {
436     # marc('362','a',
437     # lookup(
438     # sub { rec('207','a') },
439     # 'nsk','bbaza',
440     # sub { first( rec('011','a') ) },
441     # sub { rec('11') },
442     # )
443     # );
444     # }
445     #}
446    
447     ### 490 ind.
448    
449     marc_indicators('490', '0', ' ');
450    
451     ### 490
452    
453     marc('490','a',
454     join_with('. ',
455     join_with(' / ',
456     join_with(' : ',
457     join_with(' = ',
458     rec('225','a'),
459     rec('225','d')
460     ),
461     rec('225','e')
462     ),
463     join_with(' ; ',
464     rec('225','f'),
465     rec('225','g')
466     ),
467     ),
468     rec('225','h')
469     )
470 dpavlin 758 );
471 dpavlin 905
472     marc('490','v',
473     rec('225','v')
474 dpavlin 890 );
475    
476 dpavlin 905 marc('490','x',
477     rec('225','x')
478 dpavlin 880 );
479 dpavlin 890
480 dpavlin 944 if ( rec('11') ) {
481     marc('999','a',
482     lookup(
483     sub { rec('110','a'), },
484     'nsk','bbaza',
485     sub { rec('011','a') },
486     sub { rec('11') }
487     )
488     );
489     }
490 dpavlin 905
491    
492 dpavlin 944 #marc('998','a',
493     # lookup(
494     # sub { rec('H') },
495     # 'ffsf','xls',
496     # sub { rec('A') },
497     # sub { $id },
498     # ),
499     #);
500 dpavlin 905
501 dpavlin 944
502 dpavlin 905 ### 5xx
503     # koje podatke povuæi iz drugih baza?
504    
505     marc('500','a',
506     rec('300','a'),
507 dpavlin 880 );
508 dpavlin 905
509 dpavlin 758
510 dpavlin 905 ### 534 - napomena o pretisku
511    
512     marc('534','a',
513     rec('324')
514 dpavlin 758 );
515    
516 dpavlin 905 ## potencijalno za izvuæi iz NSK
517     #if ( rec('11') ) {
518     #marc('546','a',
519 dpavlin 890 # lookup(
520 dpavlin 905 # sub { rec('302','a') },
521     # 'nsk','bbaza',
522 dpavlin 890 # sub { rec('011','a') },
523     # sub { rec('11') },
524     # )
525 dpavlin 905 #);
526     #
527     #marc('550','a',
528     # lookup(
529     # sub { rec('314','a') },
530     # 'nsk','bbaza',
531     # sub { rec('011','a') },
532     # sub { rec('11') },
533     # )
534     #);
535     #
536     #marc('555','a',
537     # lookup(
538     # sub { rec('320','a') },
539     # 'nsk','bbaza',
540     # sub { rec('011','a') },
541     # sub { rec('11') },
542     # )
543     #);
544     #
545     #
546     ## marc('562','a',
547     ## lookup(
548     ## sub { rec('316','a') },
549     ## 'nsk','bbaza',
550     ## sub { rec('011','a') },
551     ## sub { rec('11') },
552     ## )
553     ## );
554     #}
555    
556     ### 653 indikatori
557 dpavlin 758 marc_indicators('653', 0, ' ');
558 dpavlin 905
559     ### 653
560    
561 dpavlin 758 marc('653','a',
562     rec('610')
563     );
564    
565 dpavlin 890 # marc_indicators('655', ' ', 4);
566     # marc('655','a',
567     # lookup(
568     # sub { rec('608','a') },
569     # 'nsk','bbaza',
570     # sub { rec('011','a') },
571     # sub { rec('11') },
572     # )
573     # );
574 dpavlin 758
575    
576     #_debug(2);
577    
578 dpavlin 905 ### 700 indikatori
579    
580 dpavlin 758 marc_indicators('700', 1, ' ');
581    
582 dpavlin 905 ### 700
583    
584 dpavlin 758 marc('700','a',
585     rec('702','a'),
586     );
587    
588     marc('700','a',
589     join_with(', ',
590     rec('702','c'),
591     rec('702','d')
592     )
593     );
594    
595    
596     #_debug(0);
597    
598 dpavlin 905 ### 710 indikatori
599    
600 dpavlin 890 marc_indicators('710', '2', ' ');
601 dpavlin 905
602     ### 710
603 dpavlin 890 marc('710','a',
604     rec('710','a')
605 dpavlin 758 );
606    
607 dpavlin 905 ### 770 indikatori
608 dpavlin 758
609 dpavlin 880 marc_indicators('770', 0, ' ');
610 dpavlin 905
611     ### 770
612 dpavlin 880 marc('770','t',
613 dpavlin 890 rec('421','a'),
614 dpavlin 758 );
615    
616 dpavlin 905 ### 772 indikatori
617 dpavlin 890 marc_indicators('772', 0, ' ');
618 dpavlin 905
619     ### 772
620 dpavlin 890 marc('772','t',
621     rec('422','a'),
622 dpavlin 773 );
623 dpavlin 758
624 dpavlin 944 ### 773 indikatori
625    
626     if ( rec('225','a') ) {
627    
628     marc_indicators('773', 0, ' ');
629    
630     ### 773
631     ## da li je bitan redoslijed potpolja?
632    
633     marc('773','w',
634     lookup(
635     sub { rec('000') },
636     'ffsf','peri',
637     sub { rec('200','a') },
638     sub {
639     regex('s/ ; //g',
640     rec('225','a')
641     )
642     },
643     )
644     );
645    
646     }
647    
648    
649 dpavlin 905 ### 777 indikatori
650    
651 dpavlin 890 marc_indicators('777', 0, ' ');
652 dpavlin 905
653     ### 777
654 dpavlin 944
655 dpavlin 890 marc('777','t',
656     rec('423','a'),
657 dpavlin 773 );
658 dpavlin 758
659 dpavlin 905 ### 780 indikatori
660    
661 dpavlin 890 marc_indicators('780', 0, 0);
662 dpavlin 905
663     ### 780
664 dpavlin 890 marc('780','t',
665     rec('430','a'),
666 dpavlin 773 );
667    
668 dpavlin 905 ### 785 indikatori
669    
670 dpavlin 890 marc_indicators('785', 0, 0);
671 dpavlin 905
672     ### 785
673 dpavlin 890 marc('785','t',
674     rec('440','a'),
675 dpavlin 773 );
676    
677 dpavlin 905 ### 852
678    
679 dpavlin 880 marc('852','j',
680     join_with(' ',
681     rec('990')
682 dpavlin 773 )
683     );
684    
685 dpavlin 905 ### 876
686    
687 dpavlin 880 marc('876','a',
688     rec('991','a')
689     );
690    
691 dpavlin 905 ### 992
692    
693 dpavlin 880 marc('992','a',
694     join_with(' ; ',
695     rec('992')
696     )
697     );
698    
699 dpavlin 905
700     ### polja za probu
701    
702    
703     #marc('998','a',
704     # lookup(
705     # sub { rec('200','a') },
706     # 'ffiz','peri',
707     # sub { rec('200','a'), },
708     # sub { rec('225','a'), }
709     # )
710     #);
711    
712 dpavlin 880
713 dpavlin 890 # marc('997','a',
714     # sort(
715     # lookup(
716     # sub { rec('001') },
717     # 'nsk','bbaza',
718     # sub { rec('011','a') },
719     # sub { rec('11') },
720     # )
721     # )
722     # );
723     #
724     # marc('998','a',
725     # sort(
726     # lookup(
727     # sub { rec('001') },
728     # 'nsk','bbaza',
729     # sub { first(rec('200','a')) . first(rec('200','e')) },
730     # sub { rec('200','a') . rec('200','e') },
731     # )
732     # )
733     # );
734     #
735     # marc('998','a',
736     # sort(
737     # lookup(
738     # sub { rec('001') },
739     # 'nsk','bbaza',
740     # sub { first(rec('200','a')) },
741     # sub { rec('200','a') },
742     # )
743     # )
744     # );
745 dpavlin 880
746 dpavlin 944 }# 200a

  ViewVC Help
Powered by ViewVC 1.1.26