/[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 758 by dpavlin, Wed Oct 25 11:02:36 2006 UTC revision 783 by dpavlin, Wed Dec 6 23:42:20 2006 UTC
# Line 1  Line 1 
1    # ne konvertira se ako nema polje 200^a
2    
3  if ( rec('200','a') ) {  if ( rec('200','a') ) {
4    
5  # Leader  # Leader
6  # raspraviti 17,18  # raspraviti 17,18
7    #
8  # u nekim knjižnicama koristi se 999a i 999b  # u nekim knjižnicama koristi se 999a i 999b
9    #
   
10  # vrijedi za ffan...  # vrijedi za ffan...
11    
12  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
# Line 22  if ( rec('230') ) { Line 23  if ( rec('230') ) {
23          marc_leader('19','r');          marc_leader('19','r');
24  }  }
25    
   
26  # 001 polje - Voyager  # 001 polje - Voyager
27    #
28  # privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku  # privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku
29    # u marc 035a - System Number - ??
30    # NSK zapisuje Voyagerov ID (001) - kako ???
31    
32    
33  marc('035','6',  marc('035','6',
34  join_with('',  join_with('',
# Line 40  join_with('', Line 43  join_with('',
43          )          )
44  );  );
45    
 # u marc 035a treba dodati System Number -  
 # NSK zapisuje Voyagerov ID (001) - kako ???  
46    
47  # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '  # FFSF - nekoliko zaredanih ISBN, odvojenih s '. - '
48    # drugi ISBN počinje prefixom ISBN
49    
50  marc('020','a',  marc('020','a',
51          rec('10')          regex('s/ ISBN //g',
52                    rec('10')
53            )
54  );  );
55    
56  # u polje 040a možda još dodati prefiks HR  # u polje 040a - prefiks HR ?
57  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)
58    
59  marc('040','a',  marc('040','a',
# Line 64  marc('040','e', Line 68  marc('040','e',
68          'HR PPIAK'          'HR PPIAK'
69  );  );
70    
71  if (rec('300') && first(rec('300')) =~ m/Prijevod/) {  if ( rec('300') && first(rec('300')) =~ m/Prijevod/) {
72          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
73  } else {  } else {
74          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
75  }  }
76    
77  ## naci primjer u NSK  ## naći primjer u NSK
78    
79    #_debug(2);
80  marc_repeatable_subfield('041','a',  marc_repeatable_subfield('041','a',
81          rec('101')          rec('101')
82  );  );
83    #_debug(0);
84    
85    # indikatori za članove. treba uvjetovati prema jezicima !!
86    
87    marc_indicators('245', 0, 0);
88    
89  if (    ( rec('200','a') =~ m/^Die /) ||  if (    ( rec('200','a') =~ m/^Die /) ||
90          ( rec('200','a') =~ m/^Das /) ||          ( rec('200','a') =~ m/^Das /) ||
91          ( rec('200','a') =~ m/^The /) ) {          ( rec('200','a') =~ m/^The /) ) {
92                  marc_indicators('245', 0, 4);                  marc_indicators('245', 0, 4);
93  } else {  }
94          marc_indicators('245', 0, 0);  
95  }  if (    ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) )
96            {
97                    marc_indicators('245', 0, 2);
98    }
99    
100    
101    
102    
103  #_debug(3);  #_debug(3);
104    
# Line 97  marc_compose('245', Line 112  marc_compose('245',
112                                   '.',                                   '.',
113                          rec('200','a')                          rec('200','a')
114          ),          ),
115          'h', rec('200','b'),  #       'h', rec('200','b'),
116          'b', suffix(          'b', suffix(
117                  ( rec('200','k') && rec('200','f') ) ? ' / ' :                  ( rec('200','k') && rec('200','f') ) ? ' / ' :
118                                       ' ',                                       ' ',
# Line 118  marc_compose('245', Line 133  marc_compose('245',
133                          ),                          ),
134          ),          ),
135    
136  # ovo trenutno radi za slučaj kad f nije ponovljivo i kad uvijek postoje c i f u paru !!!          'c', rec('200','f'),
137          'c', join_with('. ',  
138                  rec('200','f'),  # append to last subfield
139                  rec('200','c'),          '+', prefix('. ', rec('200','c') ),
         ),  
 # FIXME append to last subfield  
 #       '+', prefix('. ', rec('200','c') ),  
140  );  );
141    
142    
143    #marc('440','a',
144    #       suffix(
145    #               rec('225','e') ?  ' : ' :
146    #               rec('225','v') ?  ' ; ' :
147    #                                 '. ',
148    #                       rec('225','a'),
149    #       )
150    #);
151    
152    
153    
154    
155    
156    
157  #_debug(0);  #_debug(0);
158    
159  marc('250','a',  marc('250','a',
# Line 143  marc('250','b', Line 169  marc('250','b',
169  );  );
170    
171  # ponovljiva potpolja u originalnom redosljedu  # ponovljiva potpolja u originalnom redosljedu
172  #  
173  marc_original_order('260', '210');  marc_original_order('260', '210');
174    
175    
# Line 152  marc_original_order('260', '210'); Line 178  marc_original_order('260', '210');
178    
179  marc('300','a',  marc('300','a',
180          suffix(          suffix(
181                  rec('215','c')  ?       ' : ' :                  rec('215','c') ? ' : ' :
182                  rec('215','d')  ?       ' ; ' :                  rec('215','d') ? ' ; ' :
183                  rec('215','e')  ?       ' + ' :                  rec('215','e') ? ' + ' :
184                                          ' ',                                          ' ',
185                          rec('215','a')                          rec('215','a')
186          )          )
# Line 162  marc('300','a', Line 188  marc('300','a',
188    
189  marc('300','b',  marc('300','b',
190          suffix(          suffix(
191                  ( rec('215','c') && rec('215','d') )    ?       ' ; ' :                  ( rec('215','c') && rec('215','d') ) ? ' ; ' :
192                  ( rec('215','c') && rec('215','e') )    ?       ' + ' :                  ( rec('215','c') && rec('215','e') ) ? ' + ' :
193                                                                  ' ',                                                                  ' ',
194                          rec('215','c')                          rec('215','c')
195          )          )
# Line 184  marc('300','e', Line 210  marc('300','e',
210    
211  # provjeriti  # provjeriti
212    
213  marc_indicators('490', 0, ' ');  marc_indicators('440', ' ', '0');
   
 marc('490','a',  
         rec('225','a')  
 );  
214    
215  marc('490','v',  marc('440','a',
216          join_with(', ',          join_with(' / ',
217                  rec('225','v'),                  rec('225','a'),
218                  rec('225','w')                  rec('225','f')
219          ),          )
 );  
   
 marc('490','x',  
         rec('225','x')  
220  );  );
221    
222  #marc('490','a',  #marc('440','a',
223  #       join_with(' : ',  #       join_with(' : ',
224  #               rec('225','a'),  #               rec('225','a'),
225  #               join_with(" =  ",  #               join_with(" =  ",
# Line 214  marc('490','x', Line 232  marc('490','x',
232  #       )  #       )
233  #);  #);
234    
235    marc('440','h',
236            rec('225','h')
237    );
238    
239    marc('440','p',
240            rec('225','i')
241    );
242    
243    marc('440','v',
244            join_with(', ',
245                    rec('225','v'),
246                    rec('225','w')
247            ),
248    );
249    
250    marc('440','x',
251            rec('225','x')
252    );
253    
254  #marc('490','v',  #marc('490','v',
255  #       join2_with(225, 'v', ' , ', 225,'w');  #       join2_with(225, 'v', ' , ', 225,'w');
256  #       join_with(', ',  #       join_with(', ',
# Line 227  marc('500','a', Line 264  marc('500','a',
264  );  );
265    
266  marc('500','a',  marc('500','a',
267            rec('305')
268    );
269    
270    marc('500','a',
271            rec('307')
272    );
273    
274    marc('500','a',
275          rec('314')          rec('314')
276  );  );
277    
# Line 241  marc('504','a', Line 286  marc('504','a',
286    
287  ## FFPS 327 - sadrzaj  ## FFPS 327 - sadrzaj
288  if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {  if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
289          marc_indicators('505', '1', ' ');          marc_indicators('505', '0', ' ');
290          marc('505','a',          marc('505','a',
291                  regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',                  regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
292                          rec('327')                          rec('327')
# Line 270  if ( config() =~ m/fftu/ ) { Line 315  if ( config() =~ m/fftu/ ) {
315          );          );
316  }  }
317    
318    marc('538','a',
319            rec('337','a')
320    );
321    
322    
323  # možda i polje 520y - jezik napomene ako je uvijek isti jezik  # možda i polje 520y - jezik napomene ako je uvijek isti jezik
324    
# Line 452  marc('110','c', Line 501  marc('110','c',
501    
502  marc_indicators('740', 0, ' ');  marc_indicators('740', 0, ' ');
503    
504  if ( ! rec('464') ) {  # if ( ! rec('464') ) {
505  marc('740','a',  # marc('740','a',
506          rec('200','c')  #       rec('200','c')
507  );  # );
508    
509  marc('740','a',  # marc('740','a',
510          rec('200','k')  #       rec('200','k')
511  );  # );
512    
513  } else {  # } else {
514  marc('740','a',  
515          rec('464','a')          marc('740','a',
516  );                  rec('464','a')
517  };          );
518    
519    # };
520    
521    
522    
# Line 569  if ( rec('230') ) { Line 620  if ( rec('230') ) {
620                  rec('260')                  rec('260')
621          );          );
622    
623          marc_remove('490');          marc_remove('440');
624          marc('490','a',          marc('440','a',
625                  rec('270')                  rec('270')
626          );          );
627    
# Line 603  if ( rec('230') ) { Line 654  if ( rec('230') ) {
654    
655  };  };
656    
657    my $nak_cj = get( rec('225','a') );
658    
659    if ($nak_cj) {
660    
661    marc('760','w',
662            $nak_cj
663    );
664    
665    }
666    
667    marc_indicators('776', 0, ' ');
668    
669    marc('776','a',
670            rec('452','1')
671    );
672    
673    #marc('900','a',
674    #       lookup(
675    #               sub { rec('000') },
676    #               'ffps','libri',
677    #               sub { rec('200','a') . rec('200','f') . rec('205') },
678    #       )
679    #);
680    
681    #marc('901','a',
682    #       lookup(
683    #               sub { 'NSK: ' . rec('200','a') },
684    #               'nsk','baza',
685    #               sub { rec('200','a') },
686    #               sub { rec('10') }
687    #       )
688    #);
689    
690    if ( ! rec('464') && rec('200','c') ) {
691            marc('003','a',
692                    'ima-200c-nema-464'
693            );
694    }
695    
696    if ( ! rec('464') && rec('200','k') ) {
697            marc('005','a',
698                    'ima-200k-nema-464'
699            );
700    }
701    
702    if ( ! ( rec('200','c') || rec('200','k') ) && rec('464') ) {
703            marc('006','a',
704                    'ima-464-nema-200c-ili-200k'
705            );
706    }
707    
708    
709    
710  }  }

Legend:
Removed from v.758  
changed lines
  Added in v.783

  ViewVC Help
Powered by ViewVC 1.1.26