/[webpac2]/trunk/conf/normalize/ff-libri.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-libri.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1090 - (hide annotations)
Tue Feb 12 18:32:13 2008 UTC (16 years, 3 months ago) by dpavlin
File MIME type: text/plain
File size: 15220 byte(s)
local

1 dpavlin 1020 ##########################################################################
2 dpavlin 802 ## ##
3     ## Ova datoteka sadr¾i pravila za generiranje MARC21 ISO 2709 izlazne ##
4 dpavlin 1020 ## datoteke. Ulazni format je CDS/ISIS izvorni format, sa zapisima u ##
5     ## UNIMARC formatu, sa vi¹estrukim odstupanjima od standarda. ##
6 dpavlin 802 ## ##
7     ##########################################################################
8 dpavlin 795
9 dpavlin 1020 ## konvertira se ako postoji polje 200^a
10 dpavlin 773
11 dpavlin 751 if ( rec('200','a') ) {
12    
13 dpavlin 792 ### LEADER
14 dpavlin 751
15 dpavlin 1090 ## LDR 05 - c = pregledan ; n = new
16     ## 999^aP - SFM
17 dpavlin 1042
18 dpavlin 1064 if ( rec('999') && rec('999','a') =~ m/(pregledan|P)/i) {
19 dpavlin 751 marc_leader('05','c');
20     } else {
21     marc_leader('05','n');
22     }
23    
24 dpavlin 1090 ## LDR 06 - a - language material
25 dpavlin 1020
26 dpavlin 751 marc_leader('06','a');
27 dpavlin 1042
28 dpavlin 1090 ## LDR 07 - m - Monograph/item
29 dpavlin 1042
30 dpavlin 751 marc_leader('07','m');
31 dpavlin 1042
32 dpavlin 1090 ## LDR 17
33     marc_leader('17','7');
34 dpavlin 1042
35 dpavlin 1090 ## LDR 18
36 dpavlin 751 marc_leader('18','i');
37    
38 dpavlin 1042 ## LDR 19 - razjasniti
39 dpavlin 876
40 dpavlin 751 if ( rec('230') ) {
41     marc_leader('19','r');
42     }
43    
44 dpavlin 1090 ### 001 - Voyager ID
45 dpavlin 751
46 dpavlin 1042 ### 003 - razjasniti
47 dpavlin 876
48 dpavlin 1042 ### 007 - razjasniti
49 dpavlin 816
50     marc_fixed('007',00,'ta');
51    
52 dpavlin 905 ### 008 - All materials
53 dpavlin 1090 ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
54 dpavlin 905
55 dpavlin 816 if ( rec('994','c') ) {
56     marc_fixed('008','00',
57     regex('s/^\d\d//',
58     rec('994','c')
59     ),
60     );
61     } else {
62     marc_fixed('008', 00,
63 dpavlin 1090 '000000'
64 dpavlin 816 );
65     }
66    
67     #warn( dump(
68     # regex('s/^\d\d//',
69     # rec('994','c')
70     # ),
71     #)
72     #);
73    
74 dpavlin 1090 ## 008 06 - Type of date/Publication status
75     ## dodati i ostale moguænosti
76     ## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c
77 dpavlin 1042
78 dpavlin 1090 my $year = rec('210','c');
79 dpavlin 1042
80 dpavlin 1090 if ( rec('210','c') ) {
81     marc_fixed('008','06','s'); # 06 - Type of date/Publication status, s = single know date
82    
83     # warn "## year = $year";
84 dpavlin 1042
85 dpavlin 1090 if ( $year =~ m/^(\d{4})/ ) {
86     # warn "## $1 ##\n";
87     marc_fixed('008','07',$1); # 07-10 - Date 1
88 dpavlin 1042
89 dpavlin 1090 } else {
90     marc_fixed('008','06','n'); # 06 - n = unknown date
91     marc_fixed('008','07','uuuu');
92     }
93     }
94    
95    
96 dpavlin 1042 ## 008 11-14 - Date 2
97    
98     ## 008 15-17 - Place of publication, production, or execution - ¹to ako nema 102?
99 dpavlin 1090 ## raspraviti
100 dpavlin 1042
101 dpavlin 1090 #marc_fixed('008','15',
102     # lc ( rec('102') )
103     #);
104 dpavlin 1042
105 dpavlin 1090 my $zemlja =
106     lookup(
107     sub { rec('B') },
108     'kodovi','zemlje',
109     sub { rec('A') },
110     sub {
111     regex('s/[\s;:]/g',
112     rec('210','a')
113     )
114     },
115     );
116 dpavlin 1042
117 dpavlin 1090 warn (
118     dump ($zemlja)
119     );
120    
121     if ( $year =~ m/^(\d{4})/ ) {
122     if ( $1 >= 1990 ) {
123     marc_fixed('008','15',
124     lc ( $zemlja )
125    
126     );
127     # } elsif ( dump( $zemlja ) eq 'hr' ) {
128     # marc_fixed('008','15','yu');
129     }
130     }
131    
132    
133     ## 008 35-37 - Language
134    
135 dpavlin 816 marc_fixed('008','35',
136 dpavlin 1090 # first( lc(rec('101')) )
137     lc( frec('101'))
138 dpavlin 816 );
139 dpavlin 1042
140     ## 008 38 - Modified record - razjasniti
141 dpavlin 816
142 dpavlin 1090 ## 008 39 - Cataloging source - d (other)
143 dpavlin 905
144 dpavlin 1042 marc_fixed('008','39','d');
145 dpavlin 905
146 dpavlin 1042 ### 008 - Books - raspraviti upotrebu ovih polja
147     ## 008 18-21 - Illustrations
148     ## 008 22 - Target audience
149     ## 008 23 - Form of item
150     ## 008 24-27 - Nature of contents
151     ## 008 28 - Government publication
152     ## 008 29 - Conference publication
153     ## 008 30 - Festschrift
154     ## 008 31 - Index
155     ## 008 32 - Undefined
156     ## 008 33 - Literary form
157     ## 008 34 - Biography
158 dpavlin 905
159 dpavlin 876 ### 020
160 dpavlin 1090 ## modify za polje 10 -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (pr. u sfb)
161 dpavlin 816
162 dpavlin 1020 if ( frec('10') ne ( frec('290') ) ) {
163 dpavlin 1010 marc('020','a',
164 dpavlin 1090 # isbn_13(
165     regex('s/\s\s/ /g',
166     # regex('s/\(\d\)\(/$1 \(//g',
167     rec('10','a')
168     )
169     # )
170 dpavlin 1010 );
171     }
172 dpavlin 876
173 dpavlin 1010 #warn(
174     # dump(
175     # frec('10')
176     # ),
177     #);
178 dpavlin 876
179 dpavlin 1090 ### 035$
180 dpavlin 1042 ## Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
181     ## marc 035a - System Number - Voyagerov ID (001)
182     ## polje 035$9 mo¾e sadr¾avati slova i razmake
183 dpavlin 792
184 dpavlin 751 marc('035','6',
185 dpavlin 824 join_with('',
186 dpavlin 1090 # config('input normalize path'),
187     # config('name'),
188     config(),
189     ' L',
190     # config('input name'),
191     # id(),
192     # rec('994','a'),
193     rec('000')
194 dpavlin 751 )
195     );
196    
197 dpavlin 792 ### 040
198 dpavlin 1042 ## za sve je isti
199     ## treba utvrditi toènu oznaku za ustanovu
200 dpavlin 792
201 dpavlin 751 marc('040','a',
202 dpavlin 1082 'HR-ZgFF'
203 dpavlin 751 );
204    
205     marc('040','b',
206     'hrv'
207     );
208    
209 dpavlin 1082 marc('040','c',
210     'HR-ZgFF'
211     );
212    
213 dpavlin 758 marc('040','e',
214 dpavlin 1082 'ppiak'
215 dpavlin 758 );
216    
217 dpavlin 792
218 dpavlin 905 ### 041 - indikatori
219 dpavlin 1042 ## pretpostavke o indikatorima
220     ## 1. Ako postoji polje 300 i ono sadr¾i /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
221     ## (Da li je napomena uvijek pisana?)
222     ## 2. Podatak o prevodiocu u 200g. Problem: razlièiti oblici rijeèi, razlièiti jezici.
223     ## 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
224     ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoæne oznake)
225     ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.
226     ## to ima samo za knji¾evna djela, eseje....
227     ## ????
228 dpavlin 792
229 dpavlin 1090 #if ( rec('675') =~ m/\d=\d/ ) ?
230 dpavlin 1010
231     if (
232 dpavlin 1090 grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) ||
233 dpavlin 1010 grep( m/[preve|prijevod]/i, rec('200','f')) ||
234     grep( m/[preve|prijevod]/i, rec('200','g'))
235     ) {
236 dpavlin 751 marc_indicators('041', 1, ' ');
237     } else {
238     marc_indicators('041', 0, ' ');
239     }
240    
241 dpavlin 792 ### 041
242 dpavlin 1042 ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
243 dpavlin 792
244 dpavlin 783 #_debug(2);
245 dpavlin 903
246 dpavlin 751 marc_repeatable_subfield('041','a',
247 dpavlin 1010 map { lc($_) } rec('101')
248 dpavlin 751 );
249 dpavlin 903
250 dpavlin 783 #_debug(0);
251 dpavlin 751
252 dpavlin 876 ### 044
253 dpavlin 905 ## kako dobiti zemlju izdavanja?
254 dpavlin 751
255 dpavlin 792 ### 080
256 dpavlin 1042 ## 675 podpolja b, c, d ... - ¹to s njima? - provjeriti za svaku bazu
257 dpavlin 783
258 dpavlin 792 marc('080','a',
259     rec('675','a')
260     );
261    
262 dpavlin 876 marc('080','a',
263     rec('675','b')
264     );
265 dpavlin 792
266 dpavlin 876 marc('080','a',
267     rec('675','c')
268     );
269    
270     marc('080','a',
271     rec('675','d')
272     );
273    
274    
275 dpavlin 792 ### 084 - other classification (R)
276 dpavlin 1042 ## NSK ga koristi za struènu oznaku NSK iz polja 681
277     ## NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
278     ## polje 686 koristi FFPS. jo¹ netko?
279 dpavlin 792
280     marc('084','a',
281     rec('686')
282     );
283    
284 dpavlin 1042 ### 100
285     ## I1 = 0 ako je pseudonim (ima 700a, nema 700b)
286 dpavlin 903
287 dpavlin 807 if ( rec('700','a') && ! rec('700','b') ) {
288     marc_indicators('100', 0, ' ');
289     } else {
290     marc_indicators('100', 1, ' ');
291     }
292    
293 dpavlin 792 marc('100','a',
294     join_with(', ',
295     rec('700', 'a'),
296     rec('700', 'b')
297     )
298     );
299    
300    
301     ### 111 i 110
302 dpavlin 1042 ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
303 dpavlin 905
304 dpavlin 802 # ovo vrijedi za FFSFB
305 dpavlin 876 if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
306 dpavlin 792
307     marc_indicators('111', 2, ' ');
308    
309 dpavlin 802 marc_compose('111',
310 dpavlin 876 'a', suffix(
311     rec('710','b') ? '.' :
312     '',
313     rec('710','a'),
314     ),
315 dpavlin 802 'e', rec('710','b'),
316 dpavlin 876 'n', prefix(
317     rec('710','d') ? '(' :
318     '',
319     rec('710','d')
320     ),
321     'd', prefix(
322     ( ! rec('710','d') ) ? '(' :
323     ( ! rec('710','e') ) ? '(' :
324     '; ',
325     rec('710','f'),
326     ),
327     'c', prefix(
328     ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
329     ( ! rec('710','d') && ! rec('710','f') ) ? '(' :
330     '',
331     rec('710','e'),
332     ),
333     '+',')',
334 dpavlin 792 );
335    
336    
337     } else {
338    
339     marc_indicators('110', 2, ' ');
340 dpavlin 876
341 dpavlin 792 marc('110','a',
342     rec('710','a')
343     );
344    
345 dpavlin 876 marc('110','b',
346     rec('710','b')
347     );
348 dpavlin 792
349 dpavlin 903 if ( rec('710','c') ) {
350     marc('110','c',
351     surround('(', ')', rec('710','c'))
352     );
353     }
354    
355 dpavlin 802 }
356 dpavlin 792
357    
358 dpavlin 905 ### 245 indikatori
359 dpavlin 1042 ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
360     ## i2 = pretpostavlja se na temelju èlana na poèetku naslova i jezika
361     ## treba provjeriti
362 dpavlin 903
363 dpavlin 816 my $i1;
364 dpavlin 792
365 dpavlin 816 if ( rec('700') || rec('710') ) {
366     $i1 = 1;
367    
368     } else {
369     $i1 = 0;
370     }
371    
372     marc_indicators('245', $i1, 0);
373    
374 dpavlin 1064 if ( rec('200','a') =~ m/^Einen / ) {
375     marc_indicators('245', $i1, 6);
376     }
377 dpavlin 1010
378 dpavlin 1064 if ( rec('200','a') =~ m/^Eine / ) {
379     marc_indicators('245', $i1, 5);
380 dpavlin 783 }
381 dpavlin 751
382 dpavlin 1064 if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
383     marc_indicators('245', $i1, 4);
384     }
385    
386     if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
387 dpavlin 1010 marc_indicators('245', $i1, 3);
388 dpavlin 783 }
389    
390 dpavlin 1064 if ( rec('200','a') =~ m/^(A|L') / ) {
391 dpavlin 816 marc_indicators('245', $i1, 2);
392 dpavlin 807 }
393    
394 dpavlin 1064
395 dpavlin 905 ### 245
396 dpavlin 1042 ## potpolja i interpunkcije pripremljeni u modify
397 dpavlin 783
398 dpavlin 751 #_debug(3);
399 dpavlin 816
400 dpavlin 751 marc_compose('245',
401     'a', suffix(
402 dpavlin 944 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :
403     ( rec('200','d') ) ? ' =' :
404     ( rec('200','e') ) ? ' :' :
405     ( rec('200','k') ) ? ' ;' :
406 dpavlin 1064 '.',
407 dpavlin 816 rec('200','a'),
408 dpavlin 751 ),
409     'b', suffix(
410 dpavlin 944 ( rec('200','d') && rec('200','f') ) ? ' /' :
411     ( rec('200','d') && rec('200','c') ) ? '.' :
412 dpavlin 824 '',
413 dpavlin 876 rec('200','d'),
414 dpavlin 751 ),
415 dpavlin 876 'b', suffix(
416 dpavlin 944 ( rec('200','e') && rec('200','f') ) ? ' /' :
417     ( rec('200','e') && rec('200','c') ) ? '.' :
418 dpavlin 876 '',
419     rec('200','e'),
420     ),
421     'b', suffix(
422 dpavlin 944 ( rec('200','k') && rec('200','f') ) ? ' /' :
423     ( rec('200','k') && rec('200','c') ) ? '.' :
424 dpavlin 876 '',
425     rec('200','k'),
426     ),
427 dpavlin 816 'c', suffix(
428 dpavlin 944 ( rec('200','f') && rec('200','c') ) ? '.' :
429 dpavlin 824 '',
430 dpavlin 1010 join_with(' ; ',
431 dpavlin 1090 regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
432     rec('200','f'),
433     ),
434     regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
435     rec('200','g')
436     )
437 dpavlin 1010 )
438 dpavlin 751 ),
439 dpavlin 1042 ## append to last subfield
440 dpavlin 944 '+', suffix('.',
441     rec('200','c'),
442     ),
443 dpavlin 816 );
444 dpavlin 751
445 dpavlin 816 #_debug(0);
446 dpavlin 783
447 dpavlin 1042 ### 246
448 dpavlin 751
449 dpavlin 1042 marc_indicators('246', 1, 3);
450     marc('246','a',
451     rec('532')
452     );
453 dpavlin 751
454 dpavlin 792 ### 250
455 dpavlin 1042 ## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
456 dpavlin 783
457 dpavlin 824 marc_compose('250',
458     'a',suffix(
459     rec('205','f') ? ' / ' :
460     ' ',
461 dpavlin 751 rec('205','a')
462 dpavlin 824 ),
463     'b', rec('205','f'),
464 dpavlin 751 );
465    
466 dpavlin 792 ### 260
467 dpavlin 1042 ## ponovljiva potpolja u originalnom redosljedu - priprema u modify
468 dpavlin 773
469 dpavlin 751 marc_original_order('260', '210');
470    
471    
472 dpavlin 792 ### 300
473 dpavlin 1042 ## urediti interpunkcije za sve kombinacije
474 dpavlin 758
475 dpavlin 751 marc('300','a',
476     suffix(
477 dpavlin 783 rec('215','c') ? ' : ' :
478     rec('215','d') ? ' ; ' :
479     rec('215','e') ? ' + ' :
480 dpavlin 1064 '',
481 dpavlin 751 rec('215','a')
482     )
483     );
484    
485     marc('300','b',
486     suffix(
487 dpavlin 783 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
488     ( rec('215','c') && rec('215','e') ) ? ' + ' :
489 dpavlin 1064 '',
490 dpavlin 751 rec('215','c')
491     )
492     );
493    
494     marc('300','c',
495     suffix(
496     rec('215','e') ? ' + ' :
497 dpavlin 1064 '',
498 dpavlin 751 rec('215','d')
499     )
500     );
501    
502     marc('300','e',
503     rec('215','e')
504     );
505    
506 dpavlin 1042 ### 362 - brojèani podaci za nakladnièku cjelinu - razjasniti upotrebu
507 dpavlin 751
508 dpavlin 905 ### 440 - indikatori
509 dpavlin 1064 ## 2.ind. prema jeziku i èlanu, provjeriti
510 dpavlin 758
511 dpavlin 783 marc_indicators('440', ' ', '0');
512 dpavlin 751
513 dpavlin 816 if ( ( rec('225','a') =~ m/^Die /) ||
514     ( rec('225','a') =~ m/^Das /) ||
515     ( rec('225','a') =~ m/^The /) ) {
516     marc_indicators('440', ' ', 4);
517     }
518    
519     if ( ( rec('225','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {
520     marc_indicators('440', ' ', 2);
521     }
522    
523     if ( ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
524 dpavlin 1064 marc_indicators('440', ' ', 3);
525 dpavlin 816 }
526    
527 dpavlin 824 #_debug(3);
528    
529 dpavlin 905 ### 440
530    
531 dpavlin 1020 marc_template(
532     from => 225, to => 440,
533     subfields_rename => [
534     'a' => 'a',
535     'x' => 'x',
536     'v' => 'v',
537     'h' => 'n',
538     'i' => 'p',
539     'w' => 'v',
540     ],
541 dpavlin 1042 isis_template => [
542 dpavlin 1064 'a.|h,|i ;|w',
543     'a.|h.|w',
544     'a.|i ;|w',
545     'a ;|v.|i',
546 dpavlin 1042 'a ;|v.|i ;|w',
547 dpavlin 1064 'a ;|v.|h,|i ;|w',
548     'a ;|v.|h ;|w',
549     'a ;|v ;|w',
550     #mozda greska:
551     'a ;|v,|x ;|w',
552 dpavlin 1090 'a ;|v,|x.|p',
553 dpavlin 1064 'a,|x ;|v',
554     'a,|x.|p ;|w',
555 dpavlin 1042 ],
556 dpavlin 1090 from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }",
557     to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }",
558    
559 dpavlin 1020 marc_template => [
560     'a',
561 dpavlin 1064 'a ;|v',
562     'a,|x',
563     'a.|n', # mozda greska
564     'a.|n,|p',
565     'a.|p',
566     'a ;|v.|n',
567     'a ;|v.|n,|p', # mozda greska
568 dpavlin 1082 'n,|p',
569     'n ;|v', # mozda greska
570     'p ;|v',
571 dpavlin 1020 'v',
572 dpavlin 1064 'x',
573 dpavlin 1082 'x ;|v' # greska
574 dpavlin 1020 ],
575 dpavlin 1010 );
576 dpavlin 751
577 dpavlin 1010
578 dpavlin 1064 ## marc_compose za 440 radi samo kad polje ni potpolja nisu ponovljiva. ne zapisuje dobro drugo pojavljivanje ^v, tj. ^v iza ^p (iz 225^w)
579    
580 dpavlin 876 #marc_compose('440',
581     # 'a', suffix(
582 dpavlin 1020 # ( rec('225','v') ) ? ' ;' :
583     # ( rec('225','w') ) ? ' ; ' :
584     # ( rec('225','x') ) ? ',' :
585     # ( rec('225','h') || rec('225','i') ) ? '.' :
586     # '.',
587     # frec('225','a')
588     # ),
589     # 'x',suffix(
590     # ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
591 dpavlin 876 # '',
592 dpavlin 1020 # frec('225','x')
593 dpavlin 824 # ),
594 dpavlin 1020 # 'v',suffix(
595     # ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
596     # ( rec('225','v') && rec('225','w') ) ? ' ; ' :
597 dpavlin 876 # '',
598 dpavlin 1020 # frec('225','v')
599 dpavlin 876 # ),
600 dpavlin 1020 # 'n',suffix(
601     # ( rec('225','h') && rec('225','i') ) ? ',' :
602     # ( rec('225','h') && rec('225','w') ) ? ' ; ' :
603 dpavlin 876 # '',
604 dpavlin 1020 # frec('225','h')
605 dpavlin 876 # ),
606 dpavlin 1020 # 'p',suffix(
607     # ( rec('225','i') && rec('225','w') ) ? ' ; ' :
608     # ( rec('225','i') && rec('225','x') ) ? ',' :
609     # '',
610     # frec('225','i')
611     # ),
612 dpavlin 1042 ## 225w treba ici u 440v, na kraj
613 dpavlin 1020 # '+', join_with(' ; ',
614     # rec('225','w'),
615     # )
616 dpavlin 876 #);
617 dpavlin 824
618 dpavlin 1020 #marc_original_order('440','225');
619 dpavlin 824
620 dpavlin 1020
621 dpavlin 876 #if (
622     # count( lookup(
623     # sub { 1 },
624     # 'ffps','libri',
625     # sub { rec('225','a') }
626     # ) ) > 1
627     #) {
628 dpavlin 783
629    
630 dpavlin 876 #_debug(0);
631 dpavlin 792
632 dpavlin 751
633 dpavlin 1042 ### 500
634 dpavlin 792
635 dpavlin 751 marc('500','a',
636     rec('300')
637     );
638    
639     marc('500','a',
640 dpavlin 773 rec('305')
641     );
642    
643     marc('500','a',
644     rec('307')
645     );
646    
647     marc('500','a',
648 dpavlin 751 rec('314')
649     );
650    
651 dpavlin 795 ### 502 - bilje¹ka o disertacijama
652 dpavlin 1042 ## odgovarajuæeg polja nema u originalnim podacima. mo¾da se mo¾e pretpostaviti?
653 dpavlin 795
654 dpavlin 792 ### 504
655    
656 dpavlin 751 marc('504','a',
657     rec('320')
658     );
659    
660 dpavlin 1042 ### 505
661     ## FFPS 327 - sadrzaj
662     ## NSK konvertira 327 (NP) u 501 (R)
663     ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)
664     ## standard i validacije dopu¹taju 501 (R) i 505 (R)
665 dpavlin 751
666 dpavlin 758 if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
667 dpavlin 773 marc_indicators('505', '0', ' ');
668 dpavlin 758 marc('505','a',
669     regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
670     rec('327')
671     )
672     );
673     }
674 dpavlin 751
675 dpavlin 816 if ( config() =~ m/ffan/ ) {
676     marc_indicators('505', '0', ' ');
677     marc('505','a',
678     regex('s/[<>]//g',
679     rec('330')
680     )
681     );
682     }
683 dpavlin 751
684 dpavlin 792
685 dpavlin 751
686    
687 dpavlin 792 ### 520
688 dpavlin 1042 ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
689     ## FFPS 330 (NP) - sa¾etak
690 dpavlin 792
691 dpavlin 758 if ( config() =~ m/ffps/ ) {
692     marc('520','a',
693     regex('s/[\\r\\n]+/. /g',
694     rec('330')
695     )
696     );
697     }
698 dpavlin 751
699 dpavlin 816 ### 526 - STUDY PROGRAM INFORMATION NOTE
700 dpavlin 1042 ## provjeriti za svaku bazu sta je u 996?
701 dpavlin 751
702 dpavlin 816 marc_indicators('526', 8, ' ');
703 dpavlin 792
704 dpavlin 816 marc('526','a',
705     rec('996')
706     );
707 dpavlin 792
708 dpavlin 816 ### 538 - zahtjevi sustava
709    
710 dpavlin 773 marc('538','a',
711     rec('337','a')
712     );
713 dpavlin 758
714 dpavlin 792 ### 655
715    
716 dpavlin 751 marc_indicators('655', ' ', 4);
717     marc('655','a',
718     rec('608')
719     );
720    
721 dpavlin 792 ### 653
722    
723 dpavlin 758 marc_indicators('653', 0, ' ');
724 dpavlin 751 marc('653','a',
725     rec('610')
726     );
727    
728 dpavlin 792 #_debug(2);
729 dpavlin 751
730    
731 dpavlin 792 ### 700
732 dpavlin 1042 ## ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
733 dpavlin 751
734     marc_indicators('700', 1, ' ');
735    
736     if ( rec('701') ) {
737     marc('700','4',
738     'aut'
739     );
740     }
741    
742     marc('700','a',
743 dpavlin 758 join_with(', ',
744     rec('701', 'a'),
745     rec('701', 'b')
746     )
747 dpavlin 751 );
748    
749     marc('700','a',
750     join_with(', ',
751     rec('701', 'c'),
752     rec('701', 'd')
753     )
754     );
755    
756     marc('700','a',
757     join_with(', ',
758     rec('701', 'e'),
759     rec('701', 'f')
760     )
761     );
762    
763     marc('700','a',
764     join_with(', ',
765     rec('701', 'g'),
766     rec('701', 'h')
767     )
768     );
769    
770    
771     marc('700','a',
772 dpavlin 876 join_with(', ',
773     rec('702', 'a'),
774     rec('702', 'b')
775     )
776 dpavlin 751 );
777    
778     marc('700','a',
779     join_with(', ',
780     rec('702','c'),
781     rec('702','d')
782     )
783     );
784    
785     marc('700','a',
786     join_with(', ',
787     rec('702','e'),
788     rec('702','f')
789     )
790     );
791    
792     marc('700','a',
793     join_with(', ',
794     rec('702','g'),
795     rec('702','h')
796     )
797     );
798    
799     #_debug(0);
800    
801    
802 dpavlin 1042 ### 740 - nadopuniti
803 dpavlin 751
804 dpavlin 792 marc_indicators('740', 0, ' ');
805 dpavlin 751
806 dpavlin 792 # if ( ! rec('464') ) {
807     # marc('740','a',
808     # rec('200','c')
809     # );
810 dpavlin 751
811 dpavlin 807 marc('740','a',
812     rec('200','k')
813     );
814 dpavlin 751
815 dpavlin 792 # } else {
816 dpavlin 751
817 dpavlin 792 #marc('740','a',
818     # rec('464','a')
819     #);
820 dpavlin 751
821 dpavlin 792 # };
822 dpavlin 751
823    
824 dpavlin 1042 ### 760 w
825     ## generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
826    
827 dpavlin 1064 #if (
828     # rec('225','a') # da li je nakladnièka cjelina?
829     #) {
830     #
831     #my $series_key =
832     #join_with('',
833     # rec('225','a'),
834     # rec('210','a'),
835     # rec('210','b'),
836     #);
837     #
838     #my $series = get( $series_key );
839     #
840     #if ($series) {
841     # warn "nije novi";
842     #} else {
843     #
844     #$series = join_with('',
845     # uc( config() ),
846     # ' LS',
847     # rec('000')
848     #);
849     #
850     #set( $series_key => $series );
851     #
852     #} # $series
853     #} # nakladnièka cjelina
854     #
855     #my $series_key = join_with('',
856     # rec('225','a'),
857     # rec('210','a'),
858     # rec('210','b'),
859     #);
860     #
861     #if ($series_key) {
862     #
863     # marc_indicators('760', 0, ' ');
864     #
865     # marc('760','w',
866     # get( $series_key )
867     # );
868     #}
869 dpavlin 751
870 dpavlin 1042 # ## testing
871 dpavlin 792 #
872     # my $dup_key = join_with('',
873     # rec('200','a'),
874     #);
875     #
876     #if ($dup_key) {
877     # marc('995','a',
878     # get( $dup_key )
879     # );
880     #}
881     #
882     #
883     # marc_indicators('776', 0, ' ');
884     #
885     # marc('776','a',
886     # rec('452','1')
887     # );
888     #
889 dpavlin 751
890    
891 dpavlin 1042 ### 852 - signatura
892 dpavlin 783
893 dpavlin 816 marc_indicators('852', 4, ' ');
894 dpavlin 773
895 dpavlin 816 marc('852','j',
896     join_with(' ',
897     rec('990')
898     )
899     );
900 dpavlin 783
901 dpavlin 903 ### 876 - item information - basic bibliographic unit
902 dpavlin 783
903 dpavlin 816 marc('876','a',
904     rec('991'),
905     );
906 dpavlin 783
907 dpavlin 903 ### 886 - former marc
908 dpavlin 783
909 dpavlin 816 marc_indicators('886', 2, ' ');
910 dpavlin 783
911 dpavlin 816 marc('886','2',
912     'ffmarc'
913     );
914 dpavlin 792
915 dpavlin 816 marc('886','a',
916     '994'
917     );
918 dpavlin 792
919 dpavlin 816 marc('886','b',
920     join_with(''.
921     '##^a',
922     join_with('',
923     prefix('^a',
924     rec('994','a'),
925     ),
926     prefix('^b',
927     rec('994','b')
928     )
929     )
930     )
931     );
932 dpavlin 792
933    
934 dpavlin 795 } # polje 200a

  ViewVC Help
Powered by ViewVC 1.1.26