/[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 792 by dpavlin, Tue Jan 30 18:23:53 2007 UTC revision 807 by dpavlin, Sun Apr 1 12:26:25 2007 UTC
# Line 1  Line 1 
1    #########################################################################
2    ##                                                                      ##
3    ## Ova datoteka sadrži pravila za generiranje MARC21 ISO 2709 izlazne   ##
4    ## datoteke. Ulazni format je CDS/ISIS sa zapisima u UNIMARC-u.         ##
5    ##                                                                      ##      
6    ##########################################################################
7    
8  # konvertira se ako postoji polje 200^a  # konvertira se ako postoji polje 200^a
9    
10  if ( rec('200','a') ) {  if ( rec('200','a') ) {
11    
12  ### LEADER  ### LEADER
13  # raspraviti 17,18  # raspraviti 17,18
14  # u nekim knjižnicama koristi se 999a i 999b  # u nekim knjižnicama koristi se 999a i 999b, a u nekima samo 999
15    
16  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {  if ( rec('999') && first(rec('999')) =~ 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');
# Line 84  marc('040','e', Line 91  marc('040','e',
91  # to ima samo za književna djela, eseje....  # to ima samo za književna djela, eseje....
92    
93    
94  if ( rec('675') =~ m/\d=\d/ ) {  #if ( rec('675') =~ m/\d=\d/ ) {
95  #if ( first(rec('300')) =~ m/Prijevod/ || first(rec('300')) =~ m/Izv. stv. nasl./ ) {  if ( first(rec('300')) =~ m/Prijevod/ || first(rec('300')) =~ m/Izv. stv. nasl./ ) {
96          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
97  } else {  } else {
98          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
# Line 103  marc_repeatable_subfield('041','a', Line 110  marc_repeatable_subfield('041','a',
110    
111    
112  ### 080  ### 080
113  # 675 podpolja c, d ... - što s njima ???  # 675 podpolja b, c, d ... - što s njima ???
114    
115  marc('080','a',  marc('080','a',
116          rec('675','a')          rec('675','a')
# Line 123  marc('084','a', Line 130  marc('084','a',
130  ### 100  ### 100
131  # I1 = 0 ako je pseudonim (ima 700a, nema 700b)  # I1 = 0 ako je pseudonim (ima 700a, nema 700b)
132    
133  marc_indicators('100', 1, ' ');  if ( rec('700','a') && ! rec('700','b') ) {
134            marc_indicators('100', 0, ' ');
135    } else {
136            marc_indicators('100', 1, ' ');
137    }
138    
139  marc('100','a',  marc('100','a',
140          join_with(', ',          join_with(', ',
141                  rec('700', 'a'),                  rec('700', 'a'),
# Line 134  marc('100','a', Line 146  marc('100','a',
146    
147  ### 111 i 110  ### 111 i 110
148  # provjeriti ispise naslova iz svake baze - moguće su greške.  # provjeriti ispise naslova iz svake baze - moguće su greške.
149    # ovo vrijedi za FFSFB
150    
151  if ( rec('710','f') ) {  if ( rec('710','f') ) {
152    
153  marc_indicators('111', 2, ' ');  marc_indicators('111', 2, ' ');
 marc('111','a',  
         rec('710','a')  
 );  
154    
155  marc('111','c',  marc_compose('111',
156          rec('710','e')          'a', rec('710','a'),
157  );          'e', rec('710','b'),
158            'n', rec('710','d'),
159  marc('111','d',          'd', rec('710','f'),
160          rec('710','f')          'c', rec('710','e'),
 );  
   
 marc('111','e',  
         rec('710','b')  
 );  
   
 marc('111','n',  
         rec('710','d')  
161  );  );
162    
163    
# Line 170  marc('110','c', Line 172  marc('110','c',
172          rec('710','c')          rec('710','c')
173  );  );
174    
175  };  }
176    
177    
178  ### 245 indikatori  ### 245 indikatori
# Line 186  if (   ( rec('200','a') =~ m/^Die /) || Line 188  if (   ( rec('200','a') =~ m/^Die /) ||
188                  marc_indicators('245', 1, 4);                  marc_indicators('245', 1, 4);
189  }  }
190    
191  if (    ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) )  if (    ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {
192          {                  marc_indicators('245', 1, 2);
193    }
194    
195    if (    ( rec('200','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
196                  marc_indicators('245', 1, 2);                  marc_indicators('245', 1, 2);
197  }  }
198    
# Line 303  marc_indicators('440', ' ', '0'); Line 308  marc_indicators('440', ' ', '0');
308  marc('440','a',  marc('440','a',
309          join_with(' : ',          join_with(' : ',
310                  rec('225','a'),                  rec('225','a'),
311                  rec('225','e')                  join_with(' / ',
312                            rec('225','e'),
313                            rec('225','f')
314                    )
315          )          )
316  ) ;  ) ;
317    
# Line 356  marc('500','a', Line 364  marc('500','a',
364          rec('314')          rec('314')
365  );  );
366    
367    ### 502 - bilješka o disertacijama
368    # odgovarajućeg polja nema u originalnim podacima. možda se može pretpostaviti?
369    
370  ### 504  ### 504
371    
372  marc('504','a',  marc('504','a',
# Line 546  marc_indicators('740', 0, ' '); Line 557  marc_indicators('740', 0, ' ');
557  #       rec('200','c')  #       rec('200','c')
558  # );  # );
559    
560   marc('740','a',  marc('740','a',
561          rec('200','k')          rec('200','k')
562   );  );
563    
564  # } else {  # } else {
565    
# Line 574  if ($series_key) { Line 585  if ($series_key) {
585          marc('760','w',          marc('760','w',
586                  get( $series_key )                  get( $series_key )
587          );          );
   
588  }  }
589    
590  ### testing  ### testing
# Line 598  if ($series_key) { Line 608  if ($series_key) {
608  #  #
609    
610    
 ### višerazinci  
 # odvojiti u posebnu datoteku i dokumentirati  
   
   
 if ( rec('230') ) {  
   
         marc_duplicate();  
   
         marc_remove('035');  
         marc('035','6',  
                 join_with('',  
                         config(),  
                         rec('000'),  
                         '-',  
                         id(),  
                 )  
         );  
   
   
         marc_remove('245');  
           
         if ( rec('230','a') ) {  
                 marc_compose('245',  
                 'a', suffix(  
                         rec('230','b') ? '. '   :  
                         rec('230','k') ? ' ; '  :  
                         rec('230','d') ? ' = '  :  
                         rec('230','e') ? ' : '  :  
                         rec('230','f') ? ' / '  :  
                                          '.',  
                                 rec('230','a')  
                 ),  
                 'b',  
                         join_with(' ; ',  
                                 rec('230','k'),  
                         ),  
                 'b', rec('230','d'),  
                 'b',  
                         join_with(' : ',  
                                 rec('230','e'),  
                         ),  
                 'c',  
                         join_with(' ; ',  
                                 rec('230','f'),  
                         ),  
         );  
           
         } else {  
           
                 marc_compose('245',  
                 'a', suffix(  
                         rec('230','b') ? '. '   :  
                         rec('230','k') ? ' ; '  :  
                         rec('230','d') ? ' = '  :  
                         rec('230','e') ? ' : '  :  
                         rec('230','f') ? ' / '  :  
                                          '.',  
                                 rec('200','a')  
                 ),  
                 'b',  
                         join_with(' ; ',  
                                 rec('230','k'),  
                         ),  
                 'b', rec('230','d'),  
                 'b',  
                         join_with(' : ',  
                                 rec('230','e'),  
                         ),  
                 'c',  
                         join_with(' ; ',  
                                 rec('230','f'),  
                         ),  
                 'n', rec('230','v'),  
         );  
           
         }  
   
         marc_remove('260');  
   
 #       marc_original_order('260', '250');  
   
         marc('260','c',  
                 rec1('251')  
         );  
   
   
 #       marc('260','a',  
 #               rec('251','a')  
 #       );  
 #       marc('260','b',  
 #               rec('251','c')  
 #       );  
 #       marc('260','c',  
 #               rec('251','d'),  
 #               rec1('251')  
 #       );  
   
         marc_remove('300');  
         marc('300','a',  
                 rec('260')  
         );  
   
         marc_remove('440');  
         marc('440','a',  
                 rec('270')  
         );  
   
         marc_remove('500');  
         marc('500','a',  
                 rec('280')  
         );  
   
         marc_remove('020');  
         marc('020','a',  
                 rec('290')  
         );  
   
         marc_indicators('774', 0, ' ');  
         marc('774','g',  
                 rec('230','v')  
         );  
   
         marc('774','t',  
                 rec('200','a')  
         );  
           
         marc('774','w',  
                 join_with('',  
                         config(),  
                         rec('000')  
                 )  
         );  
   
   
 }  
611    
612  ##################################  ##################################
613  ##                              ##  ##                              ##
# Line 772  if ( rec('200') =~ m/prev/ ) { Line 647  if ( rec('200') =~ m/prev/ ) {
647    
648    
649    
650  }  } # polje 200a

Legend:
Removed from v.792  
changed lines
  Added in v.807

  ViewVC Help
Powered by ViewVC 1.1.26