/[webpac2]/trunk/conf/ffcasopisi/sigxls2marc.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/ffcasopisi/sigxls2marc.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
Original Path: trunk/conf/normalize/ffcasopisi/signature_zs.pl
File MIME type: text/plain
File size: 10497 byte(s)
casopisi

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

  ViewVC Help
Powered by ViewVC 1.1.26