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

Diff of /trunk/conf/normalize/ff-libri.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 905 by dpavlin, Mon Oct 29 21:59:43 2007 UTC revision 1095 by dpavlin, Fri Aug 1 23:41:47 2008 UTC
# Line 1  Line 1 
 #########################################################################  
 ##                                                                      ##  
 ## Ova datoteka sadrži pravila za generiranje MARC21 ISO 2709 izlazne   ##  
 ## datoteke. Ulazni format je CDS/ISIS sa zapisima u UNIMARC-u.         ##  
 ##                                                                      ##        
 ##########################################################################  
1    
2  # konvertira se ako postoji polje 200^a  # Ova datoteka sadrži pravila za generiranje MARC21 ISO 2709 izlazne
3    # datoteke. Ulazni format je CDS/ISIS izvorni format, sa zapisima u
4    # UNIMARC formatu, sa višestrukim odstupanjima od standarda.
5    
6    
7    ## konvertira se ako postoji polje 200^a
8    
9  if ( rec('200','a') ) {  if ( rec('200','a') ) {
10    
11  ### LEADER  ### LEADER
 # raspraviti 17,18  
 # u nekim knjižnicama koristi se 999a i 999b, a u nekima samo 999  
12    
13  if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) {  ## LDR 05 - c = pregledan ; n = new
14    ## 999^aP - SFM
15    
16    if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {
17          marc_leader('05','c');          marc_leader('05','c');
18  } else {  } else {
19          marc_leader('05','n');          marc_leader('05','n');
20  }  }
21    
22  # moguća je i oznaka "m" u 06 - odrediti kriterije  ## LDR 06 - a - language material
23    
24          marc_leader('06','a');          marc_leader('06','a');
         marc_leader('07','m');  
         marc_leader('18','i');  
25    
26  # pojasniti upotrebu 19 lidera!  ## LDR 07 - m - Monograph/item
27    
28  if ( rec('230') ) {          marc_leader('07','m');
         marc_leader('19','r');  
 }  
29    
30  ### 001 - Voyager  ## LDR 17 - 3
31            marc_leader('17','7');
32    
33  ### 003  ## LDR 18
34  # Pojasniti upotrebu polja          marc_leader('18','i');
35    
36  ### 007  ## LDR 19 - razjasniti
37  # pojasniti upotrebu polja  # nema više r, ima #, a, b ili c
38    
39  marc_fixed('007',00,'ta');  if ( rec('230') | rec('231') | rec('232') | rec('233') ) {
40            marc_leader('19','a');
41    }
42    
43  ### 008 - All materials  ### 008 - All materials
44    ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
45    ## ostaviti prazno tamo gdje nema ništa
46    
47  # što zapisati u polje kad datum nije poznat?  if ( rec('994','c') =~ m/\d{8}/ ) {
   
 if ( rec('994','c') ) {  
48          marc_fixed('008','00',          marc_fixed('008','00',
49                  regex('s/^\d\d//',                  regex('s/^\d\d//',
50                          rec('994','c')                          rec('994','c')
51                  ),                  ),
52          );          );
53  } else {  } elsif ( rec('994','c') =~ m/\d{6}/ ) {
54          marc_fixed('008', 00,          marc_fixed('008', 00,
55                  '000101'                  regex('s/^\d\d//',
56                            rec('994','c')
57                    ),
58            );
59            marc_fixed('008', '04',
60                    '01'
61            );
62    } elsif ( rec('994','c') =~ m/\d{4}/ ) {
63            marc_fixed('008', 00,
64                    regex('s/^\d\d//',
65                            rec('994','c')
66                    ),
67            );
68            marc_fixed('008', '02',
69                    '0101'
70          );          );
71  }  }
72    
# Line 63  if ( rec('994','c') ) { Line 77  if ( rec('994','c') ) {
77  #)  #)
78  #);  #);
79    
80  marc_fixed('008','06', 't');            # 06 - Type of date/Publication status  ## 008 06 - Type of date/Publication status
81  marc_fixed('008','07',  ## dodati i ostale mogućnosti
82          rec('210','d')  ## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c
83  );                                      # 07-10 - Date 1  ## srediti sve moguće upitne godine
84  # marc_fixed('008','11', ' ');          # 11-14 - Date 2  
85  marc_fixed('008','15',  if ( rec('210','c') ) {
86          lc ( rec('102') )          my $d1;
87  );                                      # 15-17 - Place of publication, production, or execution          my $d2;
88            if ( rec('210','c') =~ m/\?/ ) {
89                    marc_fixed('008','06','q');
90            } else {
91                    marc_fixed('008','06','s');
92            }
93            if ( rec('210','c') =~ m/(\d{4})/ ) {
94                    $d1 = $1;
95            } else {
96                    $d1 = '';
97            }
98            if ( rec('210','c') =~ m/^.*-(\d{4})/ ) {
99                    $d2 = $1;
100            } else {
101                    $d2 = '',
102            }
103            if ( rec('210','c') =~ m/(\d{2})--/ ) {
104                    $d1 = $1.'uu';
105                    marc_fixed('008','06','u');
106            }
107    
108            marc_fixed('008','07',$d1);             # 07-10 - Date 1
109            marc_fixed('008','11',$d2);             # 07-10 - Date 1
110    
111    } else {
112            marc_fixed('008','06','n');             # 06 - n = unknown date
113            marc_fixed('008','07','uuuu');
114    }
115    
116    
117    ## 008 11-14 - Date 2
118    
119    ## 008 15-17 - Place of publication, production, or execution - što ako nema 102?
120    ## raspraviti
121    
122    marc_fixed('008','15','xx');
123    
124    #marc_fixed('008','15',
125    #       lc ( rec('102') )
126    #);
127    
128    #my $zemlja =
129    #       lookup(
130    #               sub { rec('B') },
131    #               'kodovi','zemlje',
132    #               sub { rec('A') },
133    #               sub {
134    #                       regex('s/[\s;:]/g',
135    #                               rec('210','a')
136    #                       )
137    #               },
138    #       );
139    
140    
141    ## 008 35-37 - Language
142  marc_fixed('008','35',  marc_fixed('008','35',
143          first( lc(rec('101')) )         # 35-37 - Language          # first( lc(rec('101')) )              
144            lc( frec('101'))                
145  );  );
146  marc_fixed('008','38', '|');            # 38 - Modified record                                          
147  marc_fixed('008','39','d');             # 39 - Cataloging source  ## 008 38 - Modified record - razjasniti
148    marc_fixed('008','38','|');            
149    
150    ## 008 39 - Cataloging source - d (other)
151    marc_fixed('008','39','d');            
152    
153    ### 008 - Books - raspraviti upotrebu ovih polja
154    ## 008 18-21 - Illustrations
155    if ( rec('215','c') && rec('215','c') =~ m/ilustr/ ) {
156            marc_fixed('008','18','a')
157    }
158    
159    ## 008 22 - Target audience
160    marc_fixed('008','22','|');
161    
162    ## 008 23 - Form of item
163    
164    ## 008 24-27 - Nature of contents
165    marc_fixed('008','24','||||');
166    
167    ## 008 28 - Government publication
168    marc_fixed('008','28','|');
169    
170  ### 008 - Books  ## 008 29 - Conference publication
171    marc_fixed('008','29','|');
172    
173                                          # 18-21 - Illustrations  ## 008 30 - Festschrift
174                                          # 22 - Target audience  marc_fixed('008','30','|');
                                         # 23 - Form of item  
                                         # 24-27 - Nature of contents  
                                         # 28 - Government publication  
                                         # 29 - Conference publication  
                                         # 30 - Festschrift  
                                         # 31 - Index  
                                         # 32 - Undefined  
                                         # 33 - Literary form  
                                         # 34 - Biography  
175    
176    ## 008 31 - Index
177    marc_fixed('008','31','|');
178    
179    ## 008 32 - Undefined
180    ## 008 33 - Literary form
181    marc_fixed('008','33','|');
182    
183    ## 008 34 - Biography
184    marc_fixed('008','34','|');
185    
186  ### 020  ### 020
187  # postoji modify -> drugi ISBN počinje prefixom "ISBN" koji se miče (sfb)  ## modify za polje 10 -> drugi ISBN počinje prefixom "ISBN" koji se miče (pr. u sfb)
188    
189  marc('020','a',  if ( frec('10') ne ( frec('290') ) ) {
190          regex('s/ ISBN //g',          if ( rec('10','a') !~ /pogre/ ) {
191                  rec('10')                  marc('020','a',
192          )                          # isbn_13(
193  );                                  regex('s/\s\s/ /g',
194                                    # regex('s/\(\d\)\(/$1 \(//g',
195                                            rec('10','a')
196                                    )
197                            # )
198                    );
199            }
200            if ( rec('10','a') =~ /pogre/ ) {
201                    marc('020','z',
202                            regex('s/\s\s/ /g',
203                                    rec('10','a')
204                            )
205                    );
206            }
207            marc('020','z',
208                    rec('10','z')
209            );
210                            
211    }
212    
213    #warn(
214    #       dump(
215    #               frec('10')
216    #       ),
217    #);
218    
219  ### 035$6  ### 035$
220  # Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku.  ## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku.
221  # marc 035a - System Number - Voyagerov ID (001)  ## marc 035a - System Number - Voyagerov ID (001)
222  # polje 035$9 može sadržavati slova i razmake  ## polje 035$9 može sadržavati slova i razmake
223    
224  marc('035','6',  marc('035','a',
225  join_with('',  join_with('',
226  #               config('input normalize path'),          # config('input normalize path'),
227  #               config('name'),          # config('name'),
228                  config(),          'HR-ZaFF ',
229                  ' L',          config(),
230  #               config('input name'),          'L-',
231  #               id(),          # config('input name'),
232  #               rec('994','a'),          # id(),
233                  rec('000')          # rec('994','a'),
234            rec('000')
235          )          )
236  );  );
237    
238  ### 040  ### 040
239  # za sve je isti  ## za sve je isti
 # treba utvrditi točnu oznaku za ustanovu  
240    
241  marc('040','a',  marc('040','a',
242          'HR FFZG'          'HR-ZaFF'
243  );  );
244    
245  marc('040','b',  marc('040','b',
246          'hrv'          'hrv'
247  );  );
248    
249    marc('040','c',
250            'HR-ZaFF'
251    );
252    
253  marc('040','e',  marc('040','e',
254          'HR PPIAK'          'ppiak'
255  );  );
256    
257    
258  ### 041 - indikatori  ### 041 - indikatori
259  #  ## pretpostavke o indikatorima
260  # pretpostavke o indikatorima:  ## 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
261  #  ## (Da li je napomena uvijek pisana?)
262  # 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1  ## 2. Podatak o prevodiocu u 200g. Problem: različiti oblici riječi, različiti jezici.
263  # (Da li je napomena uvijek pisana?)  ## 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
264  #  ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)
265  # 2. Podatak o prevodiocu u 200g. Problem: različiti oblici riječi, različiti jezici.  ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.
266  #  ## to ima samo za književna djela, eseje....
267  # 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod  ## ????
268  # (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)  
269  # pr. 821.111-2=163.42 je prijevod engleske drame na HR.  #if ( rec('675') =~ m/\d=\d/ ) ?
270  # to ima samo za književna djela, eseje....  
271  # ????  if (
272            grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) ||
273            grep( m/[preve|prijevod]/i, rec('200','f')) ||
274  #if ( rec('675') =~ m/\d=\d/ ) {          grep( m/[preve|prijevod]/i, rec('200','g'))  
275  if ( grep( m/prijevod/i, rec('300')) || grep( m/prevedeno/i, rec('300')) || grep( m/izv.*stv.*nasl/i, rec('300')) || grep( m/izvornik/i, rec('300')) || grep( m/preve/i, rec('200','f')) || grep( m/preve/i, rec('200','g')) || grep( m/prijevod/i, rec('200','f')) || grep( m/prijevod/i, rec('200','g')) ) {  ) {
276          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
277  } else {  } else {
278          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
279  }  }
280    
   
281  ### 041  ### 041
282  # ponovljivo polje konvertira se u ponovljivo potpolje  ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
283    
284  #_debug(2);  #_debug(2);
285    
286  marc_repeatable_subfield('041','a',  marc_repeatable_subfield('041','a',
287          rec('101')          map { lc($_) } rec('101')
288  );  );
289    
290  #_debug(0);  #_debug(0);
# Line 177  marc_repeatable_subfield('041','a', Line 293  marc_repeatable_subfield('041','a',
293  ## kako dobiti zemlju izdavanja?  ## kako dobiti zemlju izdavanja?
294    
295  ### 080  ### 080
296  # 675 podpolja b, c, d ... - što s njima ???  ## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu
297    
298  marc('080','a',  marc('080','a',
299          rec('675','a')          rec('675','a')
# Line 197  marc('080','a', Line 313  marc('080','a',
313    
314    
315  ### 084 - other classification (R)  ### 084 - other classification (R)
316  # NSK ga koristi za stručnu oznaku NSK iz polja 681  ## NSK ga koristi za stručnu oznaku NSK iz polja 681
317  # NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom  ## NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
318  # polje 686 koristi FFPS. još netko?  ## polje 686 koristi FFPS. još netko?
319    
320  marc('084','a',  marc('084','a',
321          rec('686')          rec('686')
322  );  );
323    
324  ### 100 indikatori  ### 100
325    ## I1 = 0 ako je pseudonim (ima 700a, nema 700b)
 # I1 = 0 ako je pseudonim (ima 700a, nema 700b)  
326    
327  if ( rec('700','a') && ! rec('700','b') ) {  if ( rec('700','a') && ! rec('700','b') ) {
328          marc_indicators('100', 0, ' ');          marc_indicators('100', 0, ' ');
# Line 215  if ( rec('700','a') && ! rec('700','b') Line 330  if ( rec('700','a') && ! rec('700','b')
330          marc_indicators('100', 1, ' ');          marc_indicators('100', 1, ' ');
331  }  }
332    
 ### 100  
   
333  marc('100','a',  marc('100','a',
334          join_with(', ',          join_with(', ',
335                  rec('700', 'a'),                  rec('700', 'a'),
# Line 224  marc('100','a', Line 337  marc('100','a',
337          )          )
338  );  );
339    
340    ### formalna odrednica - iz 503 u 110, i1=0, i2=1
341    
342  ### 111 i 110  ### 111 i 110
343  # provjeriti ispise naslova iz svake baze - moguće su greške.  ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguće su greške.
344    
345  # ovo vrijedi za FFSFB  # ovo vrijedi za FFSFB
346  if ( rec('710','d') || rec('710','e') || rec('710','f') ) {  if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
# Line 283  marc('110','b', Line 397  marc('110','b',
397    
398    
399  ### 245 indikatori  ### 245 indikatori
400  # treba nadopuniti i dati podatke na verifikaciju knjižničarima  ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
401    ## i2 = pretpostavlja se na temelju člana na početku naslova i jezika
402  # i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710  ## treba provjeriti
 # i2 = pretpostavlja se na temelju člana na početku naslova i jezika  
403    
404  my $i1;  my $i1;
405    
# Line 299  if ( rec('700') || rec('710') ) { Line 412  if ( rec('700') || rec('710') ) {
412                    
413  marc_indicators('245', $i1, 0);  marc_indicators('245', $i1, 0);
414    
415  if (    ( rec('200','a') =~ m/^Die /) ||  if ( rec('200','a') =~ m/^Einen / ) {
416          ( rec('200','a') =~ m/^Das /) ||                  marc_indicators('245', $i1, 6);
417          ( rec('200','a') =~ m/^Der /) ||  }
418          ( rec('200','a') =~ m/^The /) ) {  
419    if ( rec('200','a') =~ m/^Eine / ) {
420                    marc_indicators('245', $i1, 5);
421    }
422    
423    if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
424                  marc_indicators('245', $i1, 4);                  marc_indicators('245', $i1, 4);
425  }  }
426    
427  if (    ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
428                    marc_indicators('245', $i1, 3);
429    }
430    
431    if ( rec('200','a') =~ m/^(A|L) / ) {
432                  marc_indicators('245', $i1, 2);                  marc_indicators('245', $i1, 2);
433  }  }
434    
435  if (    ( rec('200','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {  if ( rec('200','a') =~ m/^L'/ ) {
436                  marc_indicators('245', $i1, 2);                  marc_indicators('245', $i1, 2);
437  }  }
438    
439    
440  ### 245  ### 245
441  # podpolja i interpunkcije pripremljeni u modify  ## potpolja i interpunkcije pripremljeni u modify
442    ## da li treba makivati razmake u inicijalima?
443    
444  #_debug(3);  #_debug(3);
445    
446  marc_compose('245',  marc_compose('245',
447          'a', suffix(          'a', suffix(
448                  ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :                    ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :  
449                  ( rec('200','d') ) ? ' = ' :                  ( rec('200','d') ) ? ' =' :
450                  ( rec('200','e') ) ? ' : ' :                  ( rec('200','e') ) ? ' :' :
451                  ( rec('200','k') ) ? ' ; ' :                  ( rec('200','k') ) ? ' ;' :
452                          '',                          '.',
453                          rec('200','a'),                          rec('200','a'),
454          ),          ),
455          'b', suffix(          'b', suffix(
456                  ( rec('200','d') && rec('200','f') ) ? ' / ' :                  ( rec('200','d') && rec('200','f') ) ? ' /' :
457                  ( rec('200','d') && rec('200','c') ) ? '. '  :                  ( rec('200','d') && rec('200','c') ) ? '.'  :
458                          '',                          '',
459                          rec('200','d'),                          rec('200','d'),
460          ),          ),
461          'b', suffix(          'b', suffix(
462                  ( rec('200','e') && rec('200','f') ) ? ' / ' :                  ( rec('200','e') && rec('200','f') ) ? ' /' :
463                  ( rec('200','e') && rec('200','c') ) ? '. '  :                  ( rec('200','e') && rec('200','c') ) ? '.'  :
464                          '',                          '',
465                          rec('200','e'),                          rec('200','e'),
466          ),          ),
467          'b', suffix(          'b', suffix(
468                  ( rec('200','k') && rec('200','f') ) ? ' / ' :                  ( rec('200','k') && rec('200','f') ) ? ' /' :
469                  ( rec('200','k') && rec('200','c') ) ? '. '  :                  ( rec('200','k') && rec('200','c') ) ? '.'  :
470                          '',                          '',
471                          rec('200','k'),                          rec('200','k'),
472          ),          ),
473          'c', suffix(          'c', suffix(
474                  ( rec('200','f') && rec('200','c') ) ? '. ' :                  ( rec('200','f') && rec('200','c') ) ? '.' :
475                          '',                          '',
476                          rec('200','f'),                          join_with(' ; ',
477                                    regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
478                                            rec('200','f'),
479                                    ),
480                                    regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
481                                            rec('200','g')
482                                    )
483                            )
484            ),
485            ## append to last subfield
486            '+', suffix('.',
487                    rec('200','c'),
488          ),          ),
         '+', rec('200','c'),  
489  );  );
490    
 #marc_compose('245',  
 #       'a', suffix(  
 #               ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :    
 #               ( ! rec('200','p') && rec('200','c') ) ? ' : '  :  
 #                       '',  
 #                       rec('200','a'),  
 #       ),  
 #       'b', suffix(  
 #               ( rec('200','p') && rec('200','f') ) ? ' / ' :  
 #               ( rec('200','p') && rec('200','c') ) ? '. '  :  
 #                       '',  
 #                       rec('200','p'),  
 #       ),  
 #       'c', suffix(  
 #               ( rec('200','f') && rec('200','c') ) ? '. ' :  
 #                       '',  
 #                       rec('200','f'),  
 #       ),  
 #       '+', rec('200','c'),  
 #);  
   
491  #_debug(0);  #_debug(0);
492    
493  #marc_compose('245',  ### 246
494  #       'a', suffix(  ## i1=1 ukoliko pravilo nalaze napomenu, ali napomenu necemo pisati ponovo u 500
495  #               rec('200','b') ? '. '   :  ## i1=3 ako pravlo na nalze napomenu
496  #               rec('200','k') ? ' ; '  :  ## vidi na wiki
497  #               rec('200','d') ? ' = '  :  ## i2 - pogledati za svaku bazu sto su ti naslovi, pa onda oderditi indikatoda oderditi indikatoree
 #               rec('200','e') ? ' : '  :  
 #               rec('200','f') ? ' / '  :  
 #                                '.',  
 #                       rec('200','a')  
 #       ),  
 ##      'h', rec('200','b'),  
 #       'b', suffix(  
 #               ( rec('200','k') && rec('200','f') ) ? ' / ' :  
 #                                    ' ',  
 #                       join_with(' ; ',  
 #                               rec('200','k'),  
 #                       ),  
 #       ),  
 #       'b', suffix(  
 #               ( rec('200','d') && rec('200','f') ) ? ' / ' :  
 #                                                      ' ',  
 #                               rec('200','d'),  
 #       ),  
 #       'b', suffix(  
 #               ( rec('200','e') && rec('200','f') ) ? ' / ' :  
 #                                                      ' ',  
 #                       join_with(' : ',  
 #                               rec('200','e'),  
 #                       ),  
 #       ),  
 #       'c', rec('200','f'),  
 ## append to last subfield  
 #       '+', prefix('. ',  
 #               rec('200','c')  
 #       ),  
 #);  
498    
499    marc_indicators('246', 3, ' ');
500    marc('246','a',
501            rec('532')
502    );
503    
504  ### 250  ### 250
505  # zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti  ## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
506    
507  marc_compose('250',  marc_compose('250',
508          'a',suffix(          'a',suffix(
509                  rec('205','f') ? ' / ' :                  rec('205','f') ? ' / ' :
510                          ' ',                          '',
511                          rec('205','a')                          rec('205','a')
512          ),          ),
513          'b', rec('205','f'),          'b', rec('205','f'),
514  );  );
515    
516  ### 260  ### 260
517  # ponovljiva potpolja u originalnom redosljedu  ## ponovljiva potpolja u originalnom redosljedu - priprema u modify
518    
519  marc_original_order('260', '210');          marc_original_order('260', '210');
520    
521    
522  ### 300  ### 300
523  # urediti interpunkcije za sve kombinacije  ## urediti interpunkcije za sve kombinacije
524    
525  marc('300','a',  marc('300','a',
526          suffix(          suffix(
527                  rec('215','c') ? ' : ' :                  rec('215','c') ? ' : ' :
528                  rec('215','d') ? ' ; ' :                  rec('215','d') ? ' ; ' :
529                  rec('215','e') ? ' + ' :                  rec('215','e') ? ' + ' :
530                                          ' ',                          '',
531                          rec('215','a')                          rec('215','a')
532          )          )
533  );  );
# Line 450  marc('300','b', Line 536  marc('300','b',
536          suffix(          suffix(
537                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :
538                  ( rec('215','c') && rec('215','e') ) ? ' + ' :                  ( rec('215','c') && rec('215','e') ) ? ' + ' :
539                                                         ' ',                          '',
540                          rec('215','c')                          rec('215','c')
541          )          )
542  );  );
# Line 458  marc('300','b', Line 544  marc('300','b',
544  marc('300','c',  marc('300','c',
545          suffix(          suffix(
546                  rec('215','e') ? ' + ' :                  rec('215','e') ? ' + ' :
547                                   ' ',                          '.',
548                          rec('215','d')                          rec('215','d')
549          )          )
550  );  );
# Line 467  marc('300','e', Line 553  marc('300','e',
553          rec('215','e')          rec('215','e')
554  );  );
555    
556  ### 362  ### 362 - brojčani podaci za nakladničku cjelinu - razjasniti upotrebu
557  # brojčani podaci za nakladničku cjelinu  
558  # ???  # if ( ! rec('225','z')  ) {
559    
560    # ako je naslov nakladničke cjeline složen, podatak se zapisuje u 490, s pripadajućim 830
561    
562    #if (  frec('225','a') =~ m/[\/=:]/  ) {
563    #
564    ##_debug(3);
565    #
566    #### 490
567    ### 490: Subfield _p is not allowed.
568    #
569    #marc_indicators('490','0',' ');
570    #
571    #marc_template(
572    #       from => 225, to => 490,
573    #       subfields_rename => [
574    #               'a' => 'a',
575    #               'x' => 'x',
576    #               'v' => 'v',
577    #               'h' => 'n',
578    #               'i' => 'p',
579    #               'w' => 'v',
580    #       ],
581    #       isis_template => [
582    #               'a',
583    #               'a ;|v',
584    #               'a,|x ;|v',
585    #               'a,|x ;|w',
586    #               'a,|x.|h ;|w',
587    #               'a.|h,|i ;|v',
588    #               'a ;|v.|i',
589    #               'a.|i ;|w',
590    #               'a,|x',
591    #               # greske:
592    #               'i ;|v',
593    #               'i'
594    #       ],
595    #);
596    
597    #marc_template(
598    #       from => 225, to => 490,
599    #         from => "{ z => 1 }",
600    #           to => "{ a => 1 }",
601    #
602    #       marc_template => [
603    #               'a',
604    #       ],
605    #);
606    
607    # marc_indicators('830',' ','0');
608    # i2 ovisi članu - popraviti
609    #
610    # marc('830','a',
611    #       regex('s/(^.*)\s\/\s(.*)/$1 ($2)/g',
612    #               rec('225','a')
613    #       )
614    # );
615    
616    
617    #} else {
618    
619    
620  ### 440 - indikatori  ### 440 - indikatori
621  # 2.ind. prema jeziku i članu, provjeriri  ## 2.ind. prema jeziku i članu, provjeriti
622    
623  marc_indicators('440', ' ', '0');  marc_indicators('440', ' ', '0');
624    
625  if (    ( rec('225','a') =~ m/^Die /) ||  if ( rec('200','a') =~ m/^Einen / ) {
626          ( rec('225','a') =~ m/^Das /) ||                  marc_indicators('440', ' ', 6);
627          ( rec('225','a') =~ m/^The /) ) {  }
628    
629    if ( rec('200','a') =~ m/^Eine / ) {
630                    marc_indicators('440', ' ', 5);
631    }
632    
633    if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
634                  marc_indicators('440', ' ', 4);                  marc_indicators('440', ' ', 4);
635  }  }
636    
637  if (    ( rec('225','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
638                  marc_indicators('440', ' ', 2);                  marc_indicators('440', ' ', 3);
639  }  }
640    
641  if (    ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {  if ( rec('200','a') =~ m/^(A|L') / ) {
642                  marc_indicators('440', ' ', 2);                  marc_indicators('440', ' ', 2);
643  }  }
644    
645  #_debug(3);  ## 440v nije ponovljivo
646    
647    
648    marc_template(
649            from => 225, to => 440,
650            subfields_rename => [
651                    'a' => 'a',
652                    'x' => 'x',
653                    'v' => 'v',
654                    'h' => 'n',
655                    'i' => 'p',
656                    'w' => 'v',
657            ],
658            isis_template => [
659                    'a',
660                    'a,|x',
661                    'a,|x ;|v',
662                    'a,|x.|i',
663                    'a,|x.|i ;|w',
664                    'a,|x.|h ;|w',
665                    'a,|x.|h,|i ;|w',
666                    'a,|x ;|v.|h ;|w',
667                    'a,|x ;|v.|h,|i ;|w',
668                    'a ;|v',
669                    'a ;|v.|i',
670                    'a ;|v.|h,|i',
671                    'a ;|w',
672                    'a ;|v.|i ;|w',
673                    'a ;|v.|h,|i ;|w',
674                    'a ;|v.|h ;|w',
675                    'a.|h,|i',
676                    'a.|h,|i ;|w',
677                    'a.|i',
678                    'a.|i ;|w',
679                    # greške
680                    'a ;|v ;|w',
681                    'a.|h',
682                    'a.|h ;|w',
683                    'a.|h ;|v',
684                    'h,|i',
685                    'h ;|v',
686                    'i ;|w',
687                    'v',    
688                    'w',
689    
690            ],
691    );
692    
693    #}
694    
695  ### 440  #marc_template(
696    #       from => 225, to => 490,
697    #       subfields_rename => [
698    #               'a' => 'a',
699    #               'x' => 'x',
700    #               'v' => 'v',
701    #               'h' => 'n',
702    #               'i' => 'p',
703    #               'w' => 'v',
704    #       ],
705    #       isis_template => [
706    #               'a.|h,|i ;|w',
707    #               'a.|h.|w',
708    #               'a.|i ;|w',
709    #               'a ;|v.|i',
710    #               'a ;|v.|i ;|w',
711    #               'a ;|v.|h,|i ;|w',
712    #               'a ;|v.|h ;|w',
713    #               'a ;|v ;|w',
714    #               #mozda greska:
715    #               'a ;|v,|x ;|w',
716    #               'a ;|v,|x.|p',
717    #               'a,|x ;|v',
718    #               'a,|x.|p ;|w',
719    #       ],
720    #         from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }",
721    #           to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }",
722    #
723    #       marc_template => [
724    #               'a',
725    #               'a ;|v',
726    #               'a,|x',
727    #               'a.|n',         # mozda greska
728    #               'a.|n,|p',
729    #               'a.|p',
730    #               'a ;|v.|n',
731    #               'a ;|v.|n,|p',  # mozda greska
732    #               'n,|p',
733    #               'n ;|v',        # mozda greska
734    #               'p ;|v',
735    #               'v',
736    #               'x',
737    #               'x ;|v'         # greska
738    #       ],
739    #);
740    
741  marc_original_order('440','225');  
742    ## 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)
743    
744  #marc_compose('440',  #marc_compose('440',
745  #       'a', suffix(  #       'a', suffix(
746  #               rec('225','i') ? '. ' :  #               ( rec('225','v') ) ? ' ;' :
747    #               ( rec('225','w') ) ? ' ; ' :
748    #               ( rec('225','x') ) ? ',' :
749    #               ( rec('225','h') || rec('225','i') ) ? '.' :
750    #                       '.',
751    #                       frec('225','a')
752    #       ),
753    #       'x',suffix(
754    #               ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
755    #                       '',
756    #                       frec('225','x')
757    #       ),
758    #       'v',suffix(
759    #               ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
760    #               ( rec('225','v') && rec('225','w') ) ? ' ; ' :
761  #                       '',  #                       '',
762  #                       rec('225','a'),  #                       frec('225','v')
763  #       ),  #       ),
764  #       'p', suffix(  #       'n',suffix(
765  #               ( ! rec('225','x') && rec('225','i') && rec('225','v') ) ? ' ; ' :  #               ( rec('225','h') && rec('225','i') ) ? ',' :
766  #               ( rec('225','i') && rec('225','x') ) ? ', '  :  #               ( rec('225','h') && rec('225','w') ) ? ' ; ' :
767  #                       '',  #                       '',
768  #                       rec('225','i'),  #                       frec('225','h')
769  #       ),  #       ),
770  #       'x', suffix(  #       'p',suffix(
771  #               ( rec('225','x') && rec('225','v') ) ? ' ; ' :  #               ( rec('225','i') && rec('225','w') ) ? ' ; ' :
772    #               ( rec('225','i') && rec('225','x') ) ? ',' :
773  #                       '',  #                       '',
774  #                       rec('225','x'),  #                       frec('225','i')
775  #       ),  #       ),
776  #       'v', rec('225','v'),  ## 225w treba ici u 440v, na kraj
777    #       '+', join_with(' ; ',
778    #               rec('225','w'),
779    #       )
780  #);  #);
781    
782  ## ovo radi samo kad 225 nije ponovljivo  #marc_original_order('440','225');
783    
784    
785  #if (  #if (
786  #       count( lookup(  #       count( lookup(
# Line 526  marc_original_order('440','225'); Line 790  marc_original_order('440','225');
790  #       ) ) > 1  #       ) ) > 1
791  #) {  #) {
792    
 #marc_compose('440',  
 #       'a', suffix(  
 #               ( rec('225','x') ) ? ', '  :  
 #               ( rec('225','v') || rec('225','w') ) ? ' ; ' :  
 #               ( rec('225','h') || rec('225','i') ) ? '. '  :  
 #                       '',  
 #                       join_with(' / ',  
 #                               join_with(' : ',  
 #                                       join_with(' = ',  
 #                                               rec('225','a'),  
 #                                               rec('225','d'),  
 #                                       ),  
 #                                       rec('225','e'),  
 #                               ),  
 #                               rec('225','f'),  
 #                       ),  
 #       ),  
 #       'x', suffix(  
 #               ( rec('225','x') && rec('225','v') ) ? ' ; ' :  
 #               ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '. ' :  
 #                       '',  
 #                       rec('225','x'),  
 #       ),  
 #       'v', suffix(  
 #               ( rec('225','v') && rec('225','h') || rec('225','i') ) ? '. ' :  
 #                       '',  
 #                       join_with('; ',  
 #                               rec('225','v'),  
 #                       )  
 #       ),  
 #       'n', suffix(  
 #               ( rec('225','h') && rec('225','p') || rec('225','y') ) ? ', ' :  
 #                       '',  
 #                       rec('225','h'),  
 #       ),  
 #       'p', suffix(  
 #               ( rec('225','i') && rec('225','x') ) ? ', ' :  
 #               ( rec('225','i') && rec('225','v') ) ? ' ; ' :  
 #                       '',  
 #                       rec('225','i'),  
 #       ),  
 #       'x', suffix(  
 #               ( rec('225','y') && rec('225','v') ) ? ' ; ' :  
 #                       '',  
 #                       rec('225','y'),  
 #       ),  
 #       'v', rec('225','w'),  
 # );  
 #  
 # marc_compose('440',  
 #       'a', suffix(  
 #               rec('225','k') ? ' ; ' :  
 #                       '',  
 #                       join_with(' / ',  
 #                               rec('225','b'),  
 #                               rec('225','j')  
 #                       ),  
 #       ),  
 #       'v',  
 #               rec('225','k'),  
 # );  
 #  
 #  
 # marc_compose('440',  
 #       'a', suffix(  
 #               rec('225','s') ? ' ; ' :  
 #                       '',  
 #                       join_with(' / ',  
 #                               rec('225','c'),  
 #                               rec('225','r')  
 #                       ),  
 #       ),  
 #       'v',  
 #               rec('225','s'),  
 # );  
   
 #}  
   
 #if ( rec('225','i') ) {  
 #       marc('440','p',  
 #               prefix('. ',  
 #                       rec('225','i')  
 #               ),  
 #       );  
 #}  
 #  
 #if ( rec('225','v') ) {  
 #       marc('440','v',  
 #               prefix(' ; ',  
 #                       rec('225','v'),  
 #               ),  
 #       );  
 #}  
793    
794  #_debug(0);  #_debug(0);
795    
796    
797  ### 50x  ### 500
798    
799  marc('500','a',  marc('500','a',
800          rec('300')          rec('300')
# Line 642  marc('500','a', Line 813  marc('500','a',
813  );  );
814    
815  ### 502 - bilješka o disertacijama  ### 502 - bilješka o disertacijama
816  # odgovarajućeg polja nema u originalnim podacima. možda se može pretpostaviti?  ## odgovarajućeg polja nema u originalnim podacima. možda se može pretpostaviti?
817    
818  ### 504  ### 504
819    
# Line 650  marc('504','a', Line 821  marc('504','a',
821          rec('320')          rec('320')
822  );  );
823    
824  ## napomene uz konverziju polja 327 (sadrzaj):  ### 505
825  # NSK konvertira 327 (NP) u 501 (R)  ## FFPS 327 - sadrzaj
826  # u LOC konv. tablici stoji 327 (NP) u 505 (NR)  ## NSK konvertira 327 (NP) u 501 (R)
827  # standard i validacije dopuštaju 501 (R) i 505 (R)  ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)
828    ## standard i validacije dopuštaju 501 (R) i 505 (R)
829    
830  ## 505  if ( config() =~ m/ffps|fftu/ ) {
 # FFPS 327 - sadrzaj  
   
 if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {  
831          marc_indicators('505', '0', ' ');          marc_indicators('505', '0', ' ');
832          marc('505','a',          marc('505','a',
833                  regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',                  regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
# Line 677  if ( config() =~ m/ffan/ ) { Line 846  if ( config() =~ m/ffan/ ) {
846  }  }
847    
848    
 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica  
849    
850    
851  ### 520  ### 520
852  # možda i polje 520y - jezik napomene ako je uvijek isti jezik?  ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
853    ## FFPS 330 (NP) - sažetak
854    
 # FFPS 330 (NP) - sažetak  
855  if ( config() =~ m/ffps/ ) {  if ( config() =~ m/ffps/ ) {
856          marc('520','a',          marc('520','a',
857                  regex('s/[\\r\\n]+/. /g',                  regex('s/[\\r\\n]+/. /g',
# Line 693  if ( config() =~ m/ffps/ ) { Line 861  if ( config() =~ m/ffps/ ) {
861  }  }
862    
863  ### 526 - STUDY PROGRAM INFORMATION NOTE  ### 526 - STUDY PROGRAM INFORMATION NOTE
864  # provjeriti za svaku bazu sta je tocno u 996?  ## provjeriti za svaku bazu sta je u 996?
865    
866  marc_indicators('526', 8, ' ');  marc_indicators('526', 8, ' ');
867    
# Line 707  marc('538','a', Line 875  marc('538','a',
875          rec('337','a')          rec('337','a')
876  );  );
877    
   
 ### 246  
   
 marc_indicators('246', 1, 3);  
 marc('246','a',  
         rec('532')  
 );  
   
878  ### 655  ### 655
879    
880  marc_indicators('655', ' ', 4);  marc_indicators('655', ' ', 4);
# Line 723  marc('655','a', Line 883  marc('655','a',
883  );  );
884    
885  ### 653  ### 653
886    ## da li ponovljivo polje ili potpolje, pogledati u Koha tags
887    
888  marc_indicators('653', 0, ' ');  marc_indicators('653', ' ', ' ');
889  marc('653','a',  marc('653','a',
890          rec('610')          rec('610')
891  );  );
# Line 733  marc('653','a', Line 894  marc('653','a',
894    
895    
896  ### 700  ### 700
897    ## ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
898    
899  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
900    
 if ( rec('701') ) {  
 marc('700','4',  
         'aut'  
 );  
 }  
   
901  marc('700','a',  marc('700','a',
902          join_with(', ',          rec('701', 'a'),
                 rec('701', 'a'),  
                 rec('701', 'b')  
         )  
903  );  );
904    
905  marc('700','a',  marc('700','a',
# Line 772  marc('700','a', Line 925  marc('700','a',
925    
926    
927  marc('700','a',  marc('700','a',
         join_with(', ',  
928                  rec('702', 'a'),                  rec('702', 'a'),
                 rec('702', 'b')  
         )  
929  );  );
930    
   
 # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!  
   
   
931  marc('700','a',  marc('700','a',
932          join_with(', ',          join_with(', ',
933                  rec('702','c'),                  rec('702','c'),
# Line 806  marc('700','a', Line 952  marc('700','a',
952  #_debug(0);  #_debug(0);
953    
954    
955  ### 740  ### 740 - nadopuniti
956    
957  marc_indicators('740', 0, ' ');  marc_indicators('740', 0, ' ');
958    
# Line 827  marc('740','a', Line 973  marc('740','a',
973    
974  # };  # };
975    
 # generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim  
   
 if (  
         rec('225','a')  # da li je nakladnička cjelina?  
 ) {  
   
 my $series_key =  
 join_with('',  
         rec('225','a'),  
         rec('210','a'),  
         rec('210','b'),  
 );  
   
 my $series = get( $series_key );  
   
 if ($series) {  
         warn "nije novi";  
 } else {  
   
 $series = join_with('',  
         config(),  
         'LS',  
         rec('000')  
 );  
   
 set( $series_key => $series );  
976    
977  } # $series  ### 760 w
978  } # nakladnička cjelina  ## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim
979    
980  my $series_key = join_with('',  #if (
981          rec('225','a'),  #       rec('225','a')  # da li je nakladnička cjelina?
982          rec('210','a'),  #) {
         rec('210','b'),  
 );  
983    
984  if ($series_key) {  #my $series_key =
985    #join_with('',
986    #       rec('225','a'),
987    #       rec('210','a'),
988    #       rec('210','b'),
989    #);
990    #
991    #my $series = get( $series_key );
992    #
993    #if ($series) {
994    #       warn "nije novi";
995    #} else {
996    #
997    #$series = join_with('',
998    #       uc( config() ),
999    #       ' LS',
1000    #       rec('000')
1001    #);
1002    #
1003    #set( $series_key => $series );
1004    #
1005    #} # $series
1006    #} # nakladnička cjelina
1007    #
1008    #my $series_key = join_with('',
1009    #       rec('225','a'),
1010    #       rec('210','a'),
1011    #       rec('210','b'),
1012    #);
1013    #
1014    #if ($series_key) {
1015    #
1016    #       marc_indicators('760', 0, ' ');
1017    #      
1018    #       marc('760','t',
1019    #               rec('225','a')
1020    #       );
1021    #       marc('760','w',
1022    #               get( $series_key )
1023    #       );
1024    #}
1025    
1026          marc_indicators('760', 0, ' ');  # ## testing
           
         marc('760','w',  
                 get( $series_key )  
         );  
 }  
 ### testing  
1027  #  #
1028  # my $dup_key = join_with('',  # my $dup_key = join_with('',
1029  #       rec('200','a'),  #       rec('200','a'),
# Line 892  if ($series_key) { Line 1044  if ($series_key) {
1044  #  #
1045    
1046    
1047  ### 852 - lokacija  ### 774 - Constituent Item Entry
1048    ### 787 - Nonspecific Relationship Entry
1049    
1050  marc_indicators('852', 4, ' ');  marc_indicators('787','0',' ');
1051    
1052  marc('852','j',  marc_compose('787',
1053          join_with(' ',          'g', rec('230','v'),
1054                  rec('990')          't', rec('230','a'),
1055          )          'b', rec('240','a'),
1056            'd', rec('250','a'),
1057            'd', rec('250','d'),
1058            'h', rec('260','a'),
1059            'k', rec('270','a'),
1060            'n', join_with('. - ',
1061                    rec('280'),
1062            ),
1063            'x', rec('290'),
1064  );  );
1065    
1066    marc_compose('787',
1067            'g', rec('231','v'),
1068            't', rec('231','a'),
1069            'b', rec('241','a'),
1070            'd', rec('251','a'),
1071            'd', rec('251','d'),
1072            'h', rec('261','a'),
1073            'k', rec('271','a'),
1074            'n', join_with('. - ',
1075                    rec('281'),
1076            ),
1077            'x', rec('291'),
1078    );
1079    
1080    marc_compose('787',
1081            'g', rec('232','v'),
1082            't', rec('232','a'),
1083            'b', rec('242','a'),
1084            'd', rec('252','a'),
1085            'd', rec('252','d'),
1086            'h', rec('262','a'),
1087            'k', rec('272','a'),
1088            'n', join_with('. - ',
1089                    rec('282'),
1090            ),
1091            'x', rec('292'),
1092    );
1093    
1094    marc_compose('787',
1095            'g', rec('233','v'),
1096            't', rec('233','a'),
1097            'b', rec('243','a'),
1098            'd', rec('253','a'),
1099            'h', rec('263','a'),
1100            'k', rec('273','a'),
1101            'n', join_with('. - ',
1102                    rec('283'),
1103            ),
1104            'x', rec('293'),
1105    );
1106    
1107    
1108    
1109    ### 852 - lokacija
1110    
1111    
1112    
1113    #marc('852','i',
1114    #      
1115    #);
1116    
1117            
1118    
1119  ### 876 - item information - basic bibliographic unit  ### 876 - item information - basic bibliographic unit
1120    
1121  marc('876','a',  marc('876','a',
1122          rec('991'),          rec('991','t'),
1123  );  );
1124    
1125  ### 886 - former marc  ### 886 - former marc
# Line 934  marc('886','b', Line 1148  marc('886','b',
1148          )          )
1149  );  );
1150    
1151    ### KOHA
1152    
1153    marc('942','b',
1154            'LIB'
1155    );
1156    
1157    marc('942','c',
1158            'KNJ'
1159    );
1160    
1161    marc('942','d',
1162            join_with(' | ',
1163                    rec('990')
1164            )
1165    );      
1166    
1167    if ( config() =~ m/ffiz/ ) {
1168            my $novasig1 =
1169                    lookup(
1170                            sub { rec('C') },
1171                            'ffiz','mapirano',
1172                            sub { rec('B') },
1173                            sub { rec('990') }
1174                    );
1175            my $novasig2 =
1176                    lookup(
1177                            sub { rec('C') . ' ' . rec('D') },
1178                            'ffiz','starasig',
1179                            sub { rec('A') },
1180                            sub { rec('000') },
1181                    );
1182            marc('942','h',
1183                    $novasig1
1184            );
1185            marc('942','i',
1186                    $novasig2
1187            );
1188    }
1189    
1190    
1191    #if ( config() =~ m/ffsf|ffpo/ ) {
1192    #       my $sig1 =
1193    #               lookup(
1194    #                       sub { rec('C') },
1195    #                       'ffiz','signature',
1196    #                       sub { rec('B') },
1197    #                       sub { frec('990') },
1198    #               );
1199    #       if ( rec('700','a') ) {
1200    #               marc('942','h',
1201    #                       $sig1,
1202    #               );
1203    #               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1204    #                       marc('942','i',
1205    #                               join_with(' ',
1206    #                                       regex('s/(^.{3}).*/$1/',
1207    #                                               uc ( rec('700','a') )
1208    #                                       ),
1209    #                                       regex('s/^.{4}(.{1}).*/$1/',
1210    #                                               lc ( rec('200','a') )
1211    #                                       )
1212    #                               )
1213    #                       );
1214    #               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1215    #                       marc('942','i',
1216    #                               join_with(' ',
1217    #                                       regex('s/(^.{3}).*/$1/',
1218    #                                               uc ( rec('700','a') )
1219    #                                       ),
1220    #                                       regex('s/^.{3}(.{1}).*/$1/',
1221    #                                               lc ( rec('200','a') )
1222    #                                       )
1223    #                               )
1224    #                       );
1225    #               } elsif ( rec('200','a') =~ m/^Eine / ) {
1226    #                       marc('942','i',
1227    #                               join_with(' ',
1228    #                                       regex('s/(^.{3}).*/$1/',
1229    #                                               uc ( rec('700','a') )
1230    #                                       ),
1231    #                                       regex('s/^.{5}(.{1}).*/$1/',
1232    #                                               lc ( rec('200','a') )
1233    #                                       )
1234    #                               )
1235    #                       );
1236    #               } elsif ( rec('200','a') =~ m/^Einen / ) {
1237    #                       marc('942','i',
1238    #                               join_with(' ',
1239    #                                       regex('s/(^.{3}).*/$1/',
1240    #                                               uc ( rec('700','a') )
1241    #                                       ),
1242    #                                       regex('s/^.{6}(.{1}).*/$1/',
1243    #                                               lc ( rec('200','a') )
1244    #                                       )
1245    #                               )
1246    #                       );
1247    #               } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1248    #                       marc('942','i',
1249    #                               join_with(' ',
1250    #                                       regex('s/(^.{3}).*/$1/',
1251    #                                               uc ( rec('700','a') )
1252    #                                       ),
1253    #                                       regex('s/^.{2}(.{1}).*/$1/',
1254    #                                               lc ( rec('200','a') )
1255    #                                       )
1256    #                               )
1257    #                       );
1258    #               } else {
1259    #                       marc('942','i',
1260    #                               join_with(' ',
1261    #                                       regex('s/(^.{3}).*/$1/',
1262    #                                               uc ( rec('700','a') )
1263    #                                       ),
1264    #                                       regex('s/(^.{1}).*/$1/',
1265    #                                               lc ( rec('200','a') )
1266    #                                       )
1267    #                               )
1268    #                       );
1269    #               }
1270    #       } elsif ( rec('710','a') ) {
1271    #               marc('942','h',
1272    #                       $sig1,
1273    #               );
1274    #               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1275    #                       marc('942','i',
1276    #                               join_with(' ',
1277    #                                       regex('s/(^.{3}).*/$1/',
1278    #                                               uc ( rec('710','a') )
1279    #                                       ),
1280    #                                       regex('s/^.{4}(.{1}).*/$1/',
1281    #                                               lc ( rec('200','a') )
1282    #                                       )
1283    #                               )
1284    #                       );
1285    #               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1286    #                       marc('942','i',
1287    #                               join_with(' ',
1288    #                                       regex('s/(^.{3}).*/$1/',
1289    #                                               uc ( rec('710','a') )
1290    #                                       ),
1291    #                                       regex('s/^.{3}(.{1}).*/$1/',
1292    #                                               lc ( rec('200','a') )
1293    #                                       )
1294    #                               )
1295    #                       );
1296    #               } elsif ( rec('200','a') =~ m/^Eine / ) {
1297    #                       marc('942','i',
1298    #                               join_with(' ',
1299    #                                       regex('s/(^.{3}).*/$1/',
1300    #                                               uc ( rec('710','a') )
1301    #                                       ),
1302    #                                       regex('s/^.{5}(.{1}).*/$1/',
1303    #                                               lc ( rec('200','a') )
1304    #                                       )
1305    #                               )
1306    #                       );
1307    #               } elsif ( rec('200','a') =~ m/^Einen / ) {
1308    #                       marc('942','i',
1309    #                               join_with(' ',
1310    #                                       regex('s/(^.{3}).*/$1/',
1311    #                                               uc ( rec('710','a') )
1312    #                                       ),
1313    #                                       regex('s/^.{6}(.{1}).*/$1/',
1314    #                                               lc ( rec('200','a') )
1315    #                                       )
1316    #                               )
1317    #                       );
1318    #               } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1319    #                       marc('942','i',
1320    #                               join_with(' ',
1321    #                                       regex('s/(^.{3}).*/$1/',
1322    #                                               uc ( rec('710','a') )
1323    #                                       ),
1324    #                                       regex('s/^.{2}(.{1}).*/$1/',
1325    #                                               lc ( rec('200','a') )
1326    #                                       )
1327    #                               )
1328    #                       );
1329    #               } else {
1330    #                       marc('942','i',
1331    #                               join_with(' ',
1332    #                                       regex('s/(^.{3}).*/$1/',
1333    #                                               uc ( rec('710','a') )
1334    #                                       ),
1335    #                                       regex('s/(^.{1}).*/$1/',
1336    #                                               lc ( rec('200','a') )
1337    #                                       )
1338    #                               )
1339    #                       );
1340    #               }
1341    #       } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1342    #               marc('942','h',
1343    #                       $sig1,
1344    #               );
1345    #               marc('942','i',
1346    #                       regex('s/^.{4}(.{3}).*/$1/',
1347    #                               uc ( rec('200','a') )
1348    #                       ),
1349    #               );
1350    #                      
1351    #       } else {
1352    #               marc('942','h',
1353    #                       $sig1,
1354    #               );
1355    #               marc('942','i',
1356    #                       regex('s/(^\w{3}).*/$1/',
1357    #                               uc ( rec('200','a') )
1358    #                       )
1359    #               )
1360    #       }
1361    #} # if config()
1362    
1363    marc('952','8',
1364            rec('991','8')
1365    );
1366    
1367    marc('952','a',
1368            rec('991','a')
1369    );
1370    
1371    marc('952','b',
1372            rec('991','b')
1373    );
1374    
1375    marc('952','c',
1376            rec('991','c'),
1377    );
1378    
1379    marc('952','i',
1380            rec('991','i')
1381    );
1382    
1383    marc('952','y',
1384            rec('991','y')
1385    );
1386    
1387    
1388    
1389    
1390  } # polje 200a  } # polje 200a
1391    # } sig

Legend:
Removed from v.905  
changed lines
  Added in v.1095

  ViewVC Help
Powered by ViewVC 1.1.26