/[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 905 - (hide annotations)
Mon Oct 29 21:59:43 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 10128 byte(s)
local

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

  ViewVC Help
Powered by ViewVC 1.1.26