/[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 1273 - (hide annotations)
Wed Aug 19 14:05:30 2009 UTC (14 years, 9 months ago) by mglavica
File MIME type: text/plain
File size: 11220 byte(s)
work on journals database conversion

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 mglavica 1273 if ( rec('E') =~ m# / # && rec('E') =~ m/[:=]/ ) {
192     marc('299','a',
193     regex('s/(^.*?[:=]) (.*\/) (.*)/$1/',
194     rec('E')
195     )
196     );
197     marc('299','b',
198     regex('s/(^.*?[:=]) (.*\/) (.*)/$2/',
199     rec('E')
200     )
201     );
202     marc('299','c',
203     regex('s/(^.*?[:=]) (.*\/) (.*)/$3/',
204     rec('E')
205     )
206     );
207    
208     } elsif ( rec('E') =~ m/ \/ / && rec('E') !~ m/[:=]/ ) {
209     marc('299','a',
210     regex('s/(^.*?\/) (.*)/$1/',
211     rec('E')
212     )
213     );
214     marc('299','c',
215     regex('s/(^.*?\/) (.*)/$2/',
216     rec('E')
217     )
218     );
219     } elsif ( rec('E') !~ m/ \/ / && rec('E') =~ m/[:=]/ ) {
220     marc('299','a',
221     regex('s/(^.*?[:=]) (.*)/$1/',
222     rec('E')
223     )
224     );
225     marc('299','b',
226     regex('s/(^.*?[:=]) (.*)/$2/',
227     rec('E')
228     )
229     );
230    
231     } else {
232     marc('299','a',
233     rec('E')
234     );
235     }
236    
237 mglavica 1182 # ### 246 inikatori
238     # # prema jeziku - provjera
239     #
240     # if ( ( rec('200','a') =~ m/^Die /) ||
241     # ( rec('200','a') =~ m/^Das /) ||
242     # ( rec('200','a') =~ m/^The /) ) {
243     # marc_indicators('246', 0, 4);
244     # } else {
245     # marc_indicators('246', 0, 0);
246     # }
247     #
248     # ### 246
249     # # povuæi podatke iz prikladnog izvora (nsk, issn)
250     #
251     # marc('246','a',
252     # rec('532')
253     # );
254     #
255     # ## iz nsk:
256     # # marc('246','a',
257     # # lookup(
258     # # sub { rec('532','a') },
259     # # 'nsk','bbaza',
260     # # sub { rec('011','a') },
261     # # sub { rec('11') },
262     # # )
263     # # );
264     #
265     # #_debug(0);
266     #
267     #
268     # ## 260 - izdavanje
269     # # provjeriti interpunkcije !!, u NSK nesto ne stima
270     #
271     # marc_original_order('260','210');
272     #
273     # ## lookup u NSK:
274     # # if ( rec('11') ) {
275     # # marc_repeatable_subfield('260','a',
276     # # lookup(
277     # # sub { rec('210','a') },
278     # # 'nsk','bbaza',
279     # # sub { rec('011','a') },
280     # # sub { rec('11') },
281     # # )
282     # # );
283     # # marc_repeatable_subfield('260','b',
284     # # lookup(
285     # # sub { rec('210','c') },
286     # # 'nsk','bbaza',
287     # # sub { rec('011','a') },
288     # # sub { rec('11') },
289     # # )
290     # # );
291     # # marc('260','c',
292     # # lookup(
293     # # sub { rec('210','d') },
294     # # 'nsk','bbaza',
295     # # sub { rec('011','a') },
296     # # sub { rec('11') },
297     # # )
298     # # );
299     # # } else {
300     # # marc_original_order('260', '210');
301     # # }
302     #
303     #
304     # ### 300
305     #
306     # marc('300','a',
307     # suffix(
308     # ( rec('215','a') && rec('215','c') ) ? ' : ' :
309     # ( rec('215','a') && rec('215','d') ) ? ' ; ' :
310     # ( rec('215','a') && rec('215','e') ) ? ' + ' :
311     # ' ',
312     # rec('215','a')
313     # )
314     # );
315     #
316     # marc('300','b',
317     # suffix(
318     # ( rec('215','c') && rec('215','d') ) ? ' ; ' :
319     # ( rec('215','c') && rec('215','e') ) ? ' + ' :
320     # ' ',
321     # rec('215','c')
322     # )
323     # );
324     #
325     # marc('300','c',
326     # suffix(
327     # rec('215','e') ? ' + ' :
328     # ' ',
329     # rec('215','d')
330     # )
331     # );
332     #
333     # marc('300','e',
334     # rec('215','e')
335     # );
336     #
337     # ### 310 - current stated publication frequency
338     # # potrebno ujednaèiti, koristi se i u polju 008
339     #
340     # marc('310','a',
341     # rec('326')
342     # );
343     #
344     # ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
345     #
346     # # marc('321','a',
347     # # ovo bi trebalo procitati iz NSK konvertiranih podataka
348     # #);
349     #
350     # marc_indicators('362', 0, ' ');
351     #
352     # ### 362
353     # #
354     # if ( rec('207','a') ) {
355     # marc('362','a',
356     # rec('207','a'),
357     # );
358     # }
359     #
360     # ## lookup iz nsk
361     # #else {
362     # # if ( rec('11') ) {
363     # # marc('362','a',
364     # # lookup(
365     # # sub { rec('207','a') },
366     # # 'nsk','bbaza',
367     # # sub { first( rec('011','a') ) },
368     # # sub { rec('11') },
369     # # )
370     # # );
371     # # }
372     # #}
373     #
374     # ### 490 ind.
375     #
376     # marc_indicators('490', '0', ' ');
377     #
378     # ### 490
379     #
380     # marc('490','a',
381     # join_with('. ',
382     # join_with(' / ',
383     # join_with(' : ',
384     # join_with(' = ',
385     # rec('225','a'),
386     # rec('225','d')
387     # ),
388     # rec('225','e')
389     # ),
390     # join_with(' ; ',
391     # rec('225','f'),
392     # rec('225','g')
393     # ),
394     # ),
395     # rec('225','h')
396     # )
397     # );
398     #
399     # marc('490','v',
400     # rec('225','v')
401     # );
402     #
403     # marc('490','x',
404     # rec('225','x')
405     # );
406     #
407     # if ( rec('11') ) {
408     # marc('999','a',
409     # lookup(
410     # sub { rec('110','a'), },
411     # 'nsk','bbaza',
412     # sub { rec('011','a') },
413     # sub { rec('11') }
414     # )
415     # );
416     # }
417     #
418     #
419     # #marc('998','a',
420     # # lookup(
421     # # sub { rec('H') },
422     # # 'ffsf','xls',
423     # # sub { rec('A') },
424     # # sub { $id },
425     # # ),
426     # #);
427    
428    
429     ### 500
430     # lookup
431     #
432     #
433     # marc('500','a',
434     # rec(''),
435     # );
436     #
437     #
438     # ### 534 - napomena o pretisku
439     #
440     # marc('534','a',
441     # rec('324')
442     # );
443     #
444     # ## potencijalno za izvuæi iz NSK
445     # #if ( rec('11') ) {
446     # #marc('546','a',
447     # # lookup(
448     # # sub { rec('302','a') },
449     # # 'nsk','bbaza',
450     # # sub { rec('011','a') },
451     # # sub { rec('11') },
452     # # )
453     # #);
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    
485     if ( rec('B') ) {
486     marc('996','a',
487     lc( rec('A') )
488     );
489    
490     marc('996','b',
491     'peri'
492     );
493    
494     marc('996','c',
495     rec('B')
496     );
497     }
498    
499     #
500     # ### 653 indikatori
501     # marc_indicators('653', 0, ' ');
502     #
503     # ### 653
504     #
505     # marc('653','a',
506     # rec('610')
507     # );
508     #
509     # # marc_indicators('655', ' ', 4);
510     # # marc('655','a',
511     # # lookup(
512     # # sub { rec('608','a') },
513     # # 'nsk','bbaza',
514     # # sub { rec('011','a') },
515     # # sub { rec('11') },
516     # # )
517     # # );
518     #
519     #
520     # #_debug(2);
521     #
522     # ### 700 indikatori
523     #
524     # marc_indicators('700', 1, ' ');
525     #
526     # ### 700
527     #
528     # marc('700','a',
529     # rec('702','a'),
530     # );
531     #
532     # marc('700','a',
533     # join_with(', ',
534     # rec('702','c'),
535     # rec('702','d')
536     # )
537     # );
538     #
539     #
540     # #_debug(0);
541     #
542     # ### 710 indikatori
543     #
544     # marc_indicators('710', '2', ' ');
545     #
546     # ### 710
547     # marc('710','a',
548     # rec('710','a')
549     # );
550     #
551     # ### 770 indikatori
552     #
553     # marc_indicators('770', 0, ' ');
554     #
555     # ### 770
556     # marc('770','t',
557     # rec('421','a'),
558     # );
559     #
560     # ### 772 indikatori
561     # marc_indicators('772', 0, ' ');
562     #
563     # ### 772
564     # marc('772','t',
565     # rec('422','a'),
566     # );
567     #
568     # ### 773 indikatori
569     #
570     # if ( rec('225','a') ) {
571     #
572     # marc_indicators('773', 0, ' ');
573     #
574     # ### 773
575     # ## da li je bitan redoslijed potpolja?
576     #
577     # marc('773','w',
578     # lookup(
579     # sub { rec('000') },
580     # 'ffsf','peri',
581     # sub { rec('200','a') },
582     # sub {
583     # regex('s/ ; //g',
584     # rec('225','a')
585     # )
586     # },
587     # )
588     # );
589     #
590     # }
591     #
592     #
593     # ### 777 indikatori
594     #
595     # marc_indicators('777', 0, ' ');
596     #
597     # ### 777
598     #
599     # marc('777','t',
600     # rec('423','a'),
601     # );
602     #
603     # ### 780 indikatori
604     #
605     # marc_indicators('780', 0, 0);
606     #
607     # ### 780
608     # marc('780','t',
609     # rec('430','a'),
610     # );
611     #
612     # ### 785 indikatori
613     #
614     # marc_indicators('785', 0, 0);
615     #
616     # ### 785
617     # marc('785','t',
618     # rec('440','a'),
619     # );
620     #
621     # ### 852
622     #
623     # marc('852','j',
624     # join_with(' ',
625     # rec('990')
626     # )
627     # );
628     #
629     # ### 876
630     #
631     # marc('876','a',
632     # rec('991','a')
633     # );
634    
635     marc('942','d',
636     rec('C')
637     );
638    
639    
640    
641     #
642     # ### 992
643     #
644     # marc('992','a',
645     # join_with(' ; ',
646     # rec('992')
647     # )
648     # );
649     #
650     #
651     ### polja za probu
652    
653    
654     #marc('998','a',
655     # lookup(
656     # sub { rec('200','a') },
657     # 'ffiz','peri',
658     # sub { rec('200','a'), },
659     # sub { rec('225','a'), }
660     # )
661     #);
662    
663    
664     # marc('997','a',
665     # sort(
666     # lookup(
667     # sub { rec('001') },
668     # 'nsk','bbaza',
669     # sub { rec('011','a') },
670     # sub { rec('11') },
671     # )
672     # )
673     # );
674     #
675     # marc('998','a',
676     # sort(
677     # lookup(
678     # sub { rec('001') },
679     # 'nsk','bbaza',
680     # sub { first(rec('200','a')) . first(rec('200','e')) },
681     # sub { rec('200','a') . rec('200','e') },
682     # )
683     # )
684     # );
685     #
686     # marc('998','a',
687     # sort(
688     # lookup(
689     # sub { rec('001') },
690     # 'nsk','bbaza',
691     # sub { first(rec('200','a')) },
692     # sub { rec('200','a') },
693     # )
694     # )
695     # );
696    

Properties

Name Value
svn:mergeinfo

  ViewVC Help
Powered by ViewVC 1.1.26