/[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 1111 by dpavlin, Mon Aug 4 19:35:18 2008 UTC revision 1112 by dpavlin, Sat Sep 6 10:54:35 2008 UTC
# Line 4  Line 4 
4  # UNIMARC formatu, sa višestrukim odstupanjima od standarda.  # UNIMARC formatu, sa višestrukim odstupanjima od standarda.
5    
6    
7  ## konvertira se ako postoji polje 200^a  ## lookup rezultat za sabrana djela
8    my $sabrana;
9    
10    
11    ## konvertira se ako postoji polje 200^a
12  if ( rec('200','a') ) {  if ( rec('200','a') ) {
13    
14  ### LEADER  ### LEADER
15    
16  ## LDR 05 - c = pregledan ; n = new  ## LDR 05 - c = pregledan ; n = new
17    ## provjeriti za svaku bazu koje polje koristi
18  ## 999^aP - SFM  ## 999^aP - SFM
19    
20  if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {  if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {
# Line 25  if ( rec('999','a') && rec('999','a') =~ Line 29  if ( rec('999','a') && rec('999','a') =~
29    
30  ## LDR 07 - m - Monograph/item  ## LDR 07 - m - Monograph/item
31    
32    if ( config() =~ m/fffi/ ) {
33            $sabrana =
34                    lookup(
35                            sub{ rec('A') },
36                            'fffi','sabrana',
37                            sub { rec('B') },
38                            sub { rec('000') }
39                    );
40    }
41    
42    if ( ! $sabrana ) {
43          marc_leader('07','m');          marc_leader('07','m');
44    } else {
45            marc_leader('07','c');
46    }
47    
48  ## LDR 17 - 3  ## LDR 17 - Encoding level ; 7 - minimal level
49          marc_leader('17','7');          marc_leader('17','7');
50    
51  ## LDR 18  ## LDR 18 - i - isbd
52          marc_leader('18','i');          marc_leader('18','i');
53    
54  ## LDR 19 - razjasniti  ## LDR 19
55  # nema više r, ima #, a, b ili c  # # - Not specified or not applicable; a - Set; b - Part with independent title; c - Part with dependent title
56    
57    #if ( ( ! $sabrana ) && ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
58    #       marc_leader('19','a');
59    #}
60    
61  if ( rec('230') | rec('231') | rec('232') | rec('233') ) {  if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
62          marc_leader('19','a');          marc_leader('19','a');
63  }  }
64    
65  ### 008 - All materials  ### 008 - All materials
66  ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje  ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
67  ## ostaviti prazno tamo gdje nema ništa  ## provjereno: fi
68    
69  if ( rec('994','c') =~ m/\d{8}/ ) {  if ( rec('994','c') =~ m/\d{8}/ ) {
70          marc_fixed('008','00',          marc_fixed('008','00',
# Line 78  if ( rec('994','c') =~ m/\d{8}/ ) { Line 100  if ( rec('994','c') =~ m/\d{8}/ ) {
100  #);  #);
101    
102  ## 008 06 - Type of date/Publication status  ## 008 06 - Type of date/Publication status
103  ## dodati i ostale mogućnosti  
104  ## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c  ## 008 07-10 - Date 1 -
105  ## srediti sve moguće upitne godine  ## srediti sve moguće oznake za godine (06)
106    ## 210d kroz modify postaje 210c
107    
108  if ( rec('210','c') ) {  if ( rec('210','c') ) {
109          my $d1;          my $d1 = '';
110          my $d2;          my $d2 = '';
111          if ( rec('210','c') =~ m/\?/ ) {          if ( rec('210','c') =~ m/(\?)/ ) {
112                  marc_fixed('008','06','q');                  marc_fixed('008','06','q');
113                    if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
114                            $d1 = $1.'uu';
115                    }
116                    if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
117                            $d1 = $1.'u';
118                    }
119                    if ( rec('210','c') =~ m/(\d{4})/ ) {
120                            $d1 = $1;
121                    }
122            } elsif ( rec('210','c') =~ m/(\d{4})-/ ) {
123                    if ( $sabrana ) {
124                            marc_fixed('008','06','i');
125                    } else {
126                            marc_fixed('008','06','m');
127                    }
128                    if ( rec('210','c') =~ m/(\d{4})-/ ) {
129                            $d1 = $1;
130                            $d2 = '9999';
131                    }
132                    if ( rec('210','c') =~ m/-(\d{4})/ ) {
133                            $d2 = $1;
134                    }
135          } else {          } else {
136                  marc_fixed('008','06','s');                  marc_fixed('008','06','s');
137          }                  if ( rec('210','c') =~ m/(\d{4})/ ) {
138          if ( rec('210','c') =~ m/(\d{4})/ ) {                          $d1 = $1;
139                  $d1 = $1;                  }
         } else {  
                 $d1 = '';  
         }  
         if ( rec('210','c') =~ m/^.*-(\d{4})/ ) {  
                 $d2 = $1;  
         } else {  
                 $d2 = '',  
         }  
         if ( rec('210','c') =~ m/(\d{2})--/ ) {  
                 $d1 = $1.'uu';  
                 marc_fixed('008','06','u');  
140          }          }
141    
142          marc_fixed('008','07',$d1);             # 07-10 - Date 1          marc_fixed('008','07',$d1);             # 07-10 - Date 1
# Line 207  if ( frec('10') ne ( frec('290') ) ) { Line 241  if ( frec('10') ne ( frec('290') ) ) {
241          marc('020','z',          marc('020','z',
242                  rec('10','z')                  rec('10','z')
243          );          );
                           
244  }  }
245    
246  #warn(  #warn(
# Line 217  if ( frec('10') ne ( frec('290') ) ) { Line 250  if ( frec('10') ne ( frec('290') ) ) {
250  #);  #);
251    
252  ### 035$  ### 035$
253  ## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku.  ## marc 035a - System Number
254  ## marc 035a - System Number - Voyagerov ID (001)  ## polje može sadržavati slova i razmake, problem u pretraživanju ako ima zagrade, kako bi trebalo po standardu
 ## polje 035$9 može sadržavati slova i razmake  
255    
256  marc('035','a',  marc('035','a',
257  join_with('',  join_with('',
# Line 241  join_with('', Line 273  join_with('',
273  marc('040','a',  marc('040','a',
274          'HR-ZaFF'          'HR-ZaFF'
275  );  );
   
276  marc('040','b',  marc('040','b',
277          'hrv'          'hrv'
278  );  );
   
279  marc('040','c',  marc('040','c',
280          'HR-ZaFF'          'HR-ZaFF'
281  );  );
   
282  marc('040','e',  marc('040','e',
283          'ppiak'          'ppiak'
284  );  );
285    
   
286  ### 041 - indikatori  ### 041 - indikatori
287  ## pretpostavke o indikatorima  ## pretpostavke o indikatorima
288  ## 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1  ## 1. Ako postoji polje 300 i ono sadrži /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
# Line 264  marc('040','e', Line 292  marc('040','e',
292  ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)  ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)
293  ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.  ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.
294  ## to ima samo za književna djela, eseje....  ## to ima samo za književna djela, eseje....
 ## ????  
295    
296  #if ( rec('675') =~ m/\d=\d/ ) ?  #if ( rec('675') =~ m/\d=\d/ ) ?
297    
298  if (  if (
299          grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) ||          grep( m/prijevod/i, rec('300') )
300          grep( m/[preve|prijevod]/i, rec('200','f')) ||          || grep( m/nasl.*izv/i, rec('300') )
301          grep( m/[preve|prijevod]/i, rec('200','g'))    #       ( frec('300') =~ m/Prijevod/ )
302    #       || ( rec('300') =~ m/izvorni stvarni naslov/i )
303    #       || ( rec('300') =~ m/naslov izvornika/i )
304    #       grep( m/[prijevod|stvarni\snaslov]/i, rec('300') )
305  ) {  ) {
306          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
307  } else {          marc_repeatable_subfield('041','a',
308                    map { lc($_) } rec('101')
309            );
310    } elsif (
311            count( rec('101') ) > 1
312    ) {
313          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
314            marc_repeatable_subfield('041','a',
315                    map { lc($_) } rec('101')
316            );
317  }  }
318    
319  ### 041          ### 041
320  ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)          ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
321            ## polje se koristi kad ima više od jednog jezika, ili kad se radi o prijevodu
322  #_debug(2);          #_debug(2);
   
 marc_repeatable_subfield('041','a',  
         map { lc($_) } rec('101')  
 );  
323    
324  #_debug(0);  #_debug(0);
325    
# Line 294  marc_repeatable_subfield('041','a', Line 328  marc_repeatable_subfield('041','a',
328    
329  ### 080  ### 080
330  ## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu  ## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu
331    ## fi: abcd
332    
333  marc('080','a',  marc('080','a',
334          rec('675','a')          rec('675','a')
# Line 341  marc('100','a', Line 376  marc('100','a',
376    
377  ### 111 i 110  ### 111 i 110
378  ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - 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.
379    ## popraviti interpunkciju
380    
381  # ovo vrijedi za FFSFB  # ovo vrijedi za FFSFB
382  if ( rec('710','d') || rec('710','e') || rec('710','f') ) {  if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
# Line 373  marc_compose('111', Line 409  marc_compose('111',
409          ),          ),
410          '+',')',          '+',')',
411  );  );
   
   
412  } else {  } else {
413                    marc_indicators('110', 2, ' ');
414  marc_indicators('110', 2, ' ');          marc('110','a',
415                    rec('710','a')
 marc('110','a',  
         rec('710','a')  
 );  
   
 marc('110','b',  
         rec('710','b')  
 );  
   
         if ( rec('710','c') ) {  
         marc('110','c',  
                 surround('(', ')', rec('710','c'))  
416          );          );
417            marc('110','b',
418                    rec('710','b')
419            );
420            if ( rec('710','c') ) {
421                    marc('110','c',
422                            surround('(', ')', rec('710','c'))
423                    );
424          }          }
   
425  }  }
426    
   
427  ### 245 indikatori  ### 245 indikatori
428  ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710  ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
429  ## i2 = pretpostavlja se na temelju člana na početku naslova i jezika  ## i2 = pretpostavlja se na temelju člana na početku naslova i jezika
# Line 405  my $i1; Line 433  my $i1;
433    
434  if ( rec('700') || rec('710') ) {  if ( rec('700') || rec('710') ) {
435          $i1 = 1;          $i1 = 1;
   
436  } else {  } else {
437          $i1 = 0;          $i1 = 0;
438  }  }
# Line 415  marc_indicators('245', $i1, 0); Line 442  marc_indicators('245', $i1, 0);
442  if ( rec('200','a') =~ m/^Einen / ) {  if ( rec('200','a') =~ m/^Einen / ) {
443                  marc_indicators('245', $i1, 6);                  marc_indicators('245', $i1, 6);
444  }  }
   
445  if ( rec('200','a') =~ m/^Eine / ) {  if ( rec('200','a') =~ m/^Eine / ) {
446                  marc_indicators('245', $i1, 5);                  marc_indicators('245', $i1, 5);
447  }  }
448    if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|Los|The) / ) {
 if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {  
449                  marc_indicators('245', $i1, 4);                  marc_indicators('245', $i1, 4);
450  }  }
451    if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Lo|Il) / ) {
 if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {  
452                  marc_indicators('245', $i1, 3);                  marc_indicators('245', $i1, 3);
453  }  }
454    if ( ( rec('101') =~ m/ENG/ ) && ( rec('200','a') =~ m/^A / ) ) {
455  if ( rec('200','a') =~ m/^(A|L) / ) {                  marc_indicators('245', $i1, 2);
456    }
457    if ( rec('200','a') =~ m/^L / ) {
458                  marc_indicators('245', $i1, 2);                  marc_indicators('245', $i1, 2);
459  }  }
   
460  if ( rec('200','a') =~ m/^L'/ ) {  if ( rec('200','a') =~ m/^L'/ ) {
461                  marc_indicators('245', $i1, 2);                  marc_indicators('245', $i1, 2);
462  }  }
463    
464    
465  ### 245  ### 245
466  ## potpolja i interpunkcije pripremljeni u modify  ## postoji modify
467  ## da li treba makivati razmake u inicijalima?  ## da li treba makivati razmake u inicijalima?
468    
469  #_debug(3);  #_debug(3);
# Line 471  marc_compose('245', Line 496  marc_compose('245',
496                          rec('200','k'),                          rec('200','k'),
497          ),          ),
498          'c', suffix(          'c', suffix(
499                  ( rec('200','f') && rec('200','c') ) ? '.' :                  ( rec('200','f') && rec('200','c') ) ? '. ' :
500                          '',                          '',
501                          join_with(' ; ',                          join_with(' ; ',
502                                  regex('s/(\S\.)\s(\S\.\s)/$1$2/g',                                  regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
# Line 484  marc_compose('245', Line 509  marc_compose('245',
509          ),          ),
510          ## append to last subfield          ## append to last subfield
511          '+', suffix('.',          '+', suffix('.',
512                  rec('200','c'),                  join_with(' / ',
513                            rec('200','c'),
514                            rec('200','x')
515                    )
516          ),          ),
517  );  );
518    
# Line 531  marc('300','a', Line 559  marc('300','a',
559                          rec('215','a')                          rec('215','a')
560          )          )
561  );  );
   
562  marc('300','b',  marc('300','b',
563          suffix(          suffix(
564                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :
# Line 540  marc('300','b', Line 567  marc('300','b',
567                          rec('215','c')                          rec('215','c')
568          )          )
569  );  );
   
570  marc('300','c',  marc('300','c',
571          suffix(          suffix(
572                  rec('215','e') ? ' + ' :                  rec('215','e') ? ' + ' :
573                          '.',                          '',
574                          rec('215','d')                          rec('215','d')
575          )          )
576  );  );
   
577  marc('300','e',  marc('300','e',
578          rec('215','e')          rec('215','e')
579  );  );
580    
581  ### 362 - brojčani podaci za nakladničku cjelinu - razjasniti upotrebu  ### 362 - brojčani podaci za nakladničku cjelinu - to mi nemamo, polje se koristi samo za časopise
582    
583    
584  # if ( ! rec('225','z')  ) {  # if ( ! rec('225','z')  ) {
585    
# Line 616  marc('300','e', Line 642  marc('300','e',
642    
643  #} else {  #} else {
644    
   
645  ### 440 - indikatori  ### 440 - indikatori
646  ## 2.ind. prema jeziku i članu, provjeriti  ## 2.ind. prema jeziku i članu, uskladiti s 245
647    
648  marc_indicators('440', ' ', '0');  marc_indicators('440', ' ', '0');
649    
650  if ( rec('200','a') =~ m/^Einen / ) {  if ( rec('225','a') =~ m/^Einen / ) {
651                  marc_indicators('440', ' ', 6);                  marc_indicators('440', ' ', 6);
652  }  }
653    
654  if ( rec('200','a') =~ m/^Eine / ) {  if ( rec('225','a') =~ m/^Eine / ) {
655                  marc_indicators('440', ' ', 5);                  marc_indicators('440', ' ', 5);
656  }  }
657    
658  if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {  if ( rec('225','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
659                  marc_indicators('440', ' ', 4);                  marc_indicators('440', ' ', 4);
660  }  }
661    
662  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {  if ( rec('225','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
663                  marc_indicators('440', ' ', 3);                  marc_indicators('440', ' ', 3);
664  }  }
665    
666  if ( rec('200','a') =~ m/^(A|L') / ) {  if ( rec('225','a') =~ m/^(A|L') / ) {
667                  marc_indicators('440', ' ', 2);                  marc_indicators('440', ' ', 2);
668  }  }
669    
670  ## 440v nije ponovljivo  ## 440v nije ponovljivo
671    
   
672  marc_template(  marc_template(
673          from => 225, to => 440,          from => 225, to => 440,
674          subfields_rename => [          subfields_rename => [
# Line 676  marc_template( Line 700  marc_template(
700                  'a.|h,|i ;|w',                  'a.|h,|i ;|w',
701                  'a.|i',                  'a.|i',
702                  'a.|i ;|w',                  'a.|i ;|w',
703                  # greške                  # greške:
704                  'a ;|v ;|w',                  'a ;|v ;|w',
705                  'a.|h',                  'a.|h',
706                  'a.|h ;|w',                  'a.|h ;|w',
# Line 686  marc_template( Line 710  marc_template(
710                  'i ;|w',                  'i ;|w',
711                  'v',                      'v',    
712                  'w',                  'w',
   
713          ],          ],
714  );  );
715    
# Line 826  marc('504','a', Line 849  marc('504','a',
849  ## NSK konvertira 327 (NP) u 501 (R)  ## NSK konvertira 327 (NP) u 501 (R)
850  ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)  ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)
851  ## standard i validacije dopuštaju 501 (R) i 505 (R)  ## standard i validacije dopuštaju 501 (R) i 505 (R)
852    ## za svaku bazu posebno provjeriti sta je u poljima 327 i 330
853  if ( config() =~ m/ffps|fftu/ ) {  if ( config() =~ m/ffps|fftu/ ) {
854          marc_indicators('505', '0', ' ');          marc_indicators('505', '0', ' ');
855          marc('505','a',          marc('505','a',
# Line 845  if ( config() =~ m/ffan/ ) { Line 868  if ( config() =~ m/ffan/ ) {
868  );  );
869  }  }
870    
   
   
   
871  ### 520  ### 520
872  ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica  ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
 ## FFPS 330 (NP) - sažetak  
   
873  if ( config() =~ m/ffps/ ) {  if ( config() =~ m/ffps/ ) {
874          marc('520','a',          marc('520','a',
875                  regex('s/[\\r\\n]+/. /g',                  regex('s/[\\r\\n]+/. /g',
# Line 894  marc('653','a', Line 912  marc('653','a',
912    
913    
914  ### 700  ### 700
915  ## ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!  ## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!
916    ## ako ima samo podpolje a onda je pseudonim - popraviti indikator
917    
918  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
919    
920  marc('700','a',  marc('700','a',
921          rec('701', 'a'),          rec('701', 'a'),
922  );  );
   
923  marc('700','a',  marc('700','a',
924          join_with(', ',          join_with(', ',
925                  rec('701', 'c'),                  rec('701', 'c'),
926                  rec('701', 'd')                  rec('701', 'd')
927          )          )
928  );  );
   
929  marc('700','a',  marc('700','a',
930          join_with(', ',          join_with(', ',
931                  rec('701', 'e'),                  rec('701', 'e'),
932                  rec('701', 'f')                  rec('701', 'f')
933          )          )
934  );  );
   
935  marc('700','a',  marc('700','a',
936          join_with(', ',          join_with(', ',
937                  rec('701', 'g'),                  rec('701', 'g'),
938                  rec('701', 'h')                  rec('701', 'h')
939          )          )
940  );  );
   
   
941  marc('700','a',  marc('700','a',
942                  rec('702', 'a'),                  rec('702', 'a'),
943  );  );
   
944  marc('700','a',  marc('700','a',
945          join_with(', ',          join_with(', ',
946                  rec('702','c'),                  rec('702','c'),
947                  rec('702','d')                  rec('702','d')
948          )          )
949  );  );
   
950  marc('700','a',  marc('700','a',
951          join_with(', ',          join_with(', ',
952                  rec('702','e'),                  rec('702','e'),
953                  rec('702','f')                  rec('702','f')
954          )          )
955  );  );
   
956  marc('700','a',  marc('700','a',
957          join_with(', ',          join_with(', ',
958                  rec('702','g'),                  rec('702','g'),
# Line 952  marc('700','a', Line 963  marc('700','a',
963  #_debug(0);  #_debug(0);
964    
965    
966  ### 740 - nadopuniti  ### 740 - sta s tim?
967    
968  marc_indicators('740', 0, ' ');  marc_indicators('740', 0, ' ');
969    
# Line 973  marc('740','a', Line 984  marc('740','a',
984    
985  # };  # };
986    
987    # -------------------------------------------------------------------
988  ### 760 w  ### 760 w
989  ## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim  ## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim
990    
# Line 1042  marc('740','a', Line 1053  marc('740','a',
1053  #       rec('452','1')  #       rec('452','1')
1054  # );  # );
1055  #  #
1056    # -------------------------------------------------------------------
1057    
1058    ### 774 - Constituent Item Entry - to bi trebali koristiti ali ne koristimo jer NSK to koristi za nešto drugo
 ### 774 - Constituent Item Entry  
1059  ### 787 - Nonspecific Relationship Entry  ### 787 - Nonspecific Relationship Entry
1060    
1061  marc_indicators('787','0',' ');  #marc_indicators('787','0',' ');
1062    #
1063  marc_compose('787',  #marc_compose('787',
1064          'g', rec('230','v'),  #       'g', rec('230','v'),
1065          't', rec('230','a'),  #       't', rec('230','a'),
1066          'b', rec('240','a'),  #       'b', rec('240','a'),
1067          'd', rec('250','a'),  #       'd', rec('250','a'),
1068          'd', rec('250','d'),  #       'd', rec('250','d'),
1069          'h', rec('260','a'),  #       'h', rec('260','a'),
1070          'k', rec('270','a'),  #       'k', rec('270','a'),
1071          'n', join_with('. - ',  #       'n', join_with('. - ',
1072                  rec('280'),  #               rec('280'),
1073          ),  #       ),
1074          'x', rec('290'),  #       'x', join_with(', ',
1075  );  #               rec('290'),
1076    #       )
 marc_compose('787',  
         'g', rec('231','v'),  
         't', rec('231','a'),  
         'b', rec('241','a'),  
         'd', rec('251','a'),  
         'd', rec('251','d'),  
         'h', rec('261','a'),  
         'k', rec('271','a'),  
         'n', join_with('. - ',  
                 rec('281'),  
         ),  
         'x', rec('291'),  
 );  
   
 marc_compose('787',  
         'g', rec('232','v'),  
         't', rec('232','a'),  
         'b', rec('242','a'),  
         'd', rec('252','a'),  
         'd', rec('252','d'),  
         'h', rec('262','a'),  
         'k', rec('272','a'),  
         'n', join_with('. - ',  
                 rec('282'),  
         ),  
         'x', rec('292'),  
 );  
   
 marc_compose('787',  
         'g', rec('233','v'),  
         't', rec('233','a'),  
         'b', rec('243','a'),  
         'd', rec('253','a'),  
         'h', rec('263','a'),  
         'k', rec('273','a'),  
         'n', join_with('. - ',  
                 rec('283'),  
         ),  
         'x', rec('293'),  
 );  
   
   
   
 ### 852 - lokacija  
   
   
   
 #marc('852','i',  
 #        
1077  #);  #);
1078    #marc_compose('787',
1079            #       'g', rec('231','v'),
1080    #       't', rec('231','a'),
1081    #       'b', rec('241','a'),
1082    #       'd', rec('251','a'),
1083    #       'd', rec('251','d'),
1084    #       'h', rec('261','a'),
1085    #       'k', rec('271','a'),
1086    #       'n', join_with('. - ',
1087    #               rec('281'),
1088    #       ),
1089    #       'x', join_with(', ',
1090    #               rec('291'),
1091    #       )
1092    #);
1093    #marc_compose('787',
1094    #       'g', rec('232','v'),
1095    #       't', rec('232','a'),
1096    #       'b', rec('242','a'),
1097    #       'd', rec('252','a'),
1098    #       'd', rec('252','d'),
1099    #       'h', rec('262','a'),
1100    #       'k', rec('272','a'),
1101    #       'n', join_with('. - ',
1102    #               rec('282'),
1103    #       ),
1104    #       'x', join_with(', ',
1105    #               rec('292'),
1106    #       )
1107    #);
1108    #marc_compose('787',
1109    #       'g', rec('233','v'),
1110    #       't', rec('233','a'),
1111    #       'b', rec('243','a'),
1112    #       'd', rec('253','a'),
1113    #       'h', rec('263','a'),
1114    #       'k', rec('273','a'),
1115    #       'n', join_with('. - ',
1116    #               rec('283'),
1117    #       ),
1118    #       'x', join_with(', ',
1119    #               rec('293'),
1120    #       )
1121    #);
1122    #
1123    ### 852 - ne koristimo, koristimo  942 i 952
1124    
1125  ### 876 - item information - basic bibliographic unit  ### 876 - item information - basic bibliographic unit
1126    #marc('876','a',
1127  marc('876','a',  #       rec('991','t'),
1128          rec('991','t'),  #);
 );  
1129    
1130  ### 886 - former marc  ### 886 - former marc
1131    # inicijale treba prebaciti u neko lokalno polje, a ovo polje nam ne treba
1132    
1133  marc_indicators('886', 2, ' ');  marc_indicators('886', 2, ' ');
   
1134  marc('886','2',  marc('886','2',
1135          'ffmarc'          'ffmarc'
1136  );  );
   
1137  marc('886','a',  marc('886','a',
1138          '994'          '994'
1139  );  );
   
1140  marc('886','b',  marc('886','b',
1141          join_with(''.          join_with(''.
1142                  '##^a',                  '##^a',
# Line 1148  marc('886','b', Line 1151  marc('886','b',
1151          )          )
1152  );  );
1153    
1154  ### KOHA  ### KOHA items
1155    
1156  marc('942','b',  marc('942','b',
1157          'LIB'          'LIB'
1158  );  );
1159    
1160  marc('942','c',  
1161          'KNJ'  if ( grep( m/Posebni otisak/, rec('300') ) ) {
1162  );          marc('942','c',
1163                    'SEP'
1164            );
1165    } else {
1166            marc('942','c',
1167                    'KNJ'
1168            );
1169    }
1170    
1171  marc('942','d',  marc('942','d',
1172          join_with(' | ',          join_with(' | ',
# Line 1164  marc('942','d', Line 1174  marc('942','d',
1174          )          )
1175  );        );      
1176    
1177  if ( config() =~ m/ffiz/ ) {  if ( config() =~ m/ffan/ ) {
1178          my $novasig1 =          my $novasig1 =
1179                  lookup(                  lookup(
1180                          sub { rec('C') },                          sub { rec('C') },
1181                          'ffiz','mapirano',                          'ffan','mapirano',
1182                          sub { rec('B') },                          sub { rec('B') },
1183                          sub { rec('990') }                          sub { rec('990') }
1184                  );                  );
1185          my $novasig2 =          my $novasig2 =
1186                  lookup(                  lookup(
1187                          sub { rec('C') . ' ' . rec('D') },                          sub { rec('C') . ' ' . rec('D') },
1188                          'ffiz','starasig',                          'ffan','starasig',
1189                          sub { rec('A') },                          sub { rec('A') },
1190                          sub { rec('000') },                          sub { rec('000') },
1191                  );                  );
# Line 1188  if ( config() =~ m/ffiz/ ) { Line 1198  if ( config() =~ m/ffiz/ ) {
1198  }  }
1199    
1200    
1201  #if ( config() =~ m/ffsf|ffpo/ ) {  if ( config() =~ m/ffsf|ffpo|fffi/ ) {
1202  #       my $sig1 =          my $sig1 =
1203  #               lookup(                  lookup(
1204  #                       sub { rec('C') },                          sub { rec('C') },
1205  #                       'ffiz','signature',                          'fffi','signature',
1206  #                       sub { rec('B') },                          sub { rec('B') },
1207  #                       sub { frec('990') },                          sub { frec('990') },
1208  #               );                  );
1209  #       if ( rec('700','a') ) {          if ( rec('700','a') ) {
1210  #               marc('942','h',                  marc('942','h',
1211  #                       $sig1,                          $sig1,
1212  #               );                  );
1213  #               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {                  if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1214  #                       marc('942','i',                          marc('942','i',
1215  #                               join_with(' ',                                  join_with(' ',
1216  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1217  #                                               uc ( rec('700','a') )                                                  uc ( rec('700','a') )
1218  #                                       ),                                          ),
1219  #                                       regex('s/^.{4}(.{1}).*/$1/',                                          regex('s/^.{4}(.{1}).*/$1/',
1220  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1221  #                                       )                                          )
1222  #                               )                                  )
1223  #                       );                          );
1224  #               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {                  } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1225  #                       marc('942','i',                          marc('942','i',
1226  #                               join_with(' ',                                  join_with(' ',
1227  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1228  #                                               uc ( rec('700','a') )                                                  uc ( rec('700','a') )
1229  #                                       ),                                          ),
1230  #                                       regex('s/^.{3}(.{1}).*/$1/',                                          regex('s/^.{3}(.{1}).*/$1/',
1231  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1232  #                                       )                                          )
1233  #                               )                                  )
1234  #                       );                          );
1235  #               } elsif ( rec('200','a') =~ m/^Eine / ) {                  } elsif ( rec('200','a') =~ m/^Eine / ) {
1236  #                       marc('942','i',                          marc('942','i',
1237  #                               join_with(' ',                                  join_with(' ',
1238  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1239  #                                               uc ( rec('700','a') )                                                  uc ( rec('700','a') )
1240  #                                       ),                                          ),
1241  #                                       regex('s/^.{5}(.{1}).*/$1/',                                          regex('s/^.{5}(.{1}).*/$1/',
1242  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1243  #                                       )                                          )
1244  #                               )                                  )
1245  #                       );                          );
1246  #               } elsif ( rec('200','a') =~ m/^Einen / ) {                  } elsif ( rec('200','a') =~ m/^Einen / ) {
1247  #                       marc('942','i',                          marc('942','i',
1248  #                               join_with(' ',                                  join_with(' ',
1249  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1250  #                                               uc ( rec('700','a') )                                                  uc ( rec('700','a') )
1251  #                                       ),                                          ),
1252  #                                       regex('s/^.{6}(.{1}).*/$1/',                                          regex('s/^.{6}(.{1}).*/$1/',
1253  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1254  #                                       )                                          )
1255  #                               )                                  )
1256  #                       );                          );
1257  #               } elsif ( rec('200','a') =~ m/^(A|L) / ) {                  } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1258  #                       marc('942','i',                          marc('942','i',
1259  #                               join_with(' ',                                  join_with(' ',
1260  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1261  #                                               uc ( rec('700','a') )                                                  uc ( rec('700','a') )
1262  #                                       ),                                          ),
1263  #                                       regex('s/^.{2}(.{1}).*/$1/',                                          regex('s/^.{2}(.{1}).*/$1/',
1264  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1265  #                                       )                                          )
1266  #                               )                                  )
1267  #                       );                          );
1268  #               } else {                  } else {
1269  #                       marc('942','i',                          marc('942','i',
1270  #                               join_with(' ',                                  join_with(' ',
1271  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1272  #                                               uc ( rec('700','a') )                                                  uc ( rec('700','a') )
1273  #                                       ),                                          ),
1274  #                                       regex('s/(^.{1}).*/$1/',                                          regex('s/(^.{1}).*/$1/',
1275  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1276  #                                       )                                          )
1277  #                               )                                  )
1278  #                       );                          );
1279  #               }                  }
1280  #       } elsif ( rec('710','a') ) {          } elsif ( rec('710','a') ) {
1281  #               marc('942','h',                  marc('942','h',
1282  #                       $sig1,                          $sig1,
1283  #               );                  );
1284  #               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {                  if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1285  #                       marc('942','i',                          marc('942','i',
1286  #                               join_with(' ',                                  join_with(' ',
1287  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1288  #                                               uc ( rec('710','a') )                                                  uc ( rec('710','a') )
1289  #                                       ),                                          ),
1290  #                                       regex('s/^.{4}(.{1}).*/$1/',                                          regex('s/^.{4}(.{1}).*/$1/',
1291  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1292  #                                       )                                          )
1293  #                               )                                  )
1294  #                       );                          );
1295  #               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {                  } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1296  #                       marc('942','i',                          marc('942','i',
1297  #                               join_with(' ',                                  join_with(' ',
1298  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1299  #                                               uc ( rec('710','a') )                                                  uc ( rec('710','a') )
1300  #                                       ),                                          ),
1301  #                                       regex('s/^.{3}(.{1}).*/$1/',                                          regex('s/^.{3}(.{1}).*/$1/',
1302  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1303  #                                       )                                          )
1304  #                               )                                  )
1305  #                       );                          );
1306  #               } elsif ( rec('200','a') =~ m/^Eine / ) {                  } elsif ( rec('200','a') =~ m/^Eine / ) {
1307  #                       marc('942','i',                          marc('942','i',
1308  #                               join_with(' ',                                  join_with(' ',
1309  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1310  #                                               uc ( rec('710','a') )                                                  uc ( rec('710','a') )
1311  #                                       ),                                          ),
1312  #                                       regex('s/^.{5}(.{1}).*/$1/',                                          regex('s/^.{5}(.{1}).*/$1/',
1313  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1314  #                                       )                                          )
1315  #                               )                                  )
1316  #                       );                          );
1317  #               } elsif ( rec('200','a') =~ m/^Einen / ) {                  } elsif ( rec('200','a') =~ m/^Einen / ) {
1318  #                       marc('942','i',                          marc('942','i',
1319  #                               join_with(' ',                                  join_with(' ',
1320  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1321  #                                               uc ( rec('710','a') )                                                  uc ( rec('710','a') )
1322  #                                       ),                                          ),
1323  #                                       regex('s/^.{6}(.{1}).*/$1/',                                          regex('s/^.{6}(.{1}).*/$1/',
1324  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1325  #                                       )                                          )
1326  #                               )                                  )
1327  #                       );                          );
1328  #               } elsif ( rec('200','a') =~ m/^(A|L) / ) {                  } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1329  #                       marc('942','i',                          marc('942','i',
1330  #                               join_with(' ',                                  join_with(' ',
1331  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1332  #                                               uc ( rec('710','a') )                                                  uc ( rec('710','a') )
1333  #                                       ),                                          ),
1334  #                                       regex('s/^.{2}(.{1}).*/$1/',                                          regex('s/^.{2}(.{1}).*/$1/',
1335  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1336  #                                       )                                          )
1337  #                               )                                  )
1338  #                       );                          );
1339  #               } else {                  } else {
1340  #                       marc('942','i',                          marc('942','i',
1341  #                               join_with(' ',                                  join_with(' ',
1342  #                                       regex('s/(^.{3}).*/$1/',                                          regex('s/(^.{3}).*/$1/',
1343  #                                               uc ( rec('710','a') )                                                  uc ( rec('710','a') )
1344  #                                       ),                                          ),
1345  #                                       regex('s/(^.{1}).*/$1/',                                          regex('s/(^.{1}).*/$1/',
1346  #                                               lc ( rec('200','a') )                                                  lc ( rec('200','a') )
1347  #                                       )                                          )
1348  #                               )                                  )
1349  #                       );                          );
1350  #               }                  }
1351  #       } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {          } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1352  #               marc('942','h',                  marc('942','h',
1353  #                       $sig1,                          $sig1,
1354  #               );                  );
1355  #               marc('942','i',                  marc('942','i',
1356  #                       regex('s/^.{4}(.{3}).*/$1/',                          regex('s/^.{4}(.{3}).*/$1/',
1357  #                               uc ( rec('200','a') )                                  uc ( rec('200','a') )
1358  #                       ),                          ),
1359  #               );                  );
1360  #                                                
1361  #       } else {          } else {
1362  #               marc('942','h',                  marc('942','h',
1363  #                       $sig1,                          $sig1,
1364  #               );                  );
1365  #               marc('942','i',                  marc('942','i',
1366  #                       regex('s/(^\w{3}).*/$1/',                          regex('s/(^\w{3}).*/$1/',
1367  #                               uc ( rec('200','a') )                                  uc ( rec('200','a') )
1368  #                       )                          )
1369  #               )                  )
1370  #       }          }
1371  #} # if config()  } # if config()
   
 marc('952','8',  
         rec('991','8')  
 );  
   
 marc('952','a',  
         rec('991','a')  
 );  
   
 marc('952','b',  
         rec('991','b')  
 );  
   
 marc('952','c',  
         rec('991','c'),  
 );  
   
 marc('952','i',  
         rec('991','i')  
 );  
   
 marc('952','y',  
         rec('991','y')  
 );  
   
   
   
1372    
1373    if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
1374            warn "nema primjeraka";
1375    } else {
1376            marc('952','8',
1377                    rec('991','8')
1378            );
1379            marc('952','a',
1380                    rec('991','a')
1381            );
1382            marc('952','b',
1383                    rec('991','b')
1384            );
1385            marc('952','c',
1386                    rec('991','c'),
1387            );
1388            marc('952','i',
1389                    rec('991','i')
1390            );
1391            marc('952','y',
1392                    rec('991','y')
1393            );
1394    }
1395  } # polje 200a  } # polje 200a
1396  # } sig  # } sig

Legend:
Removed from v.1111  
changed lines
  Added in v.1112

  ViewVC Help
Powered by ViewVC 1.1.26