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

Contents of /trunk/conf/ffcasopisi/sigxls2marc.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1273 - (show annotations)
Wed Aug 19 14:05:30 2009 UTC (14 years, 10 months ago) by mglavica
File MIME type: text/plain
File size: 11220 byte(s)
work on journals database conversion

1
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 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 # ### 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