/[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 751 by dpavlin, Sun Oct 8 13:25:11 2006 UTC revision 773 by dpavlin, Fri Nov 3 20:41:12 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    #
 # polje 035 je u NSK ponovljivo. zašto ???  
   
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('',
35  #               config('input normalize path'),  #               config('input normalize path'),
36  #               config('name'),  #               config('name'),
 #               config('input name'),  
37                  config(),                  config(),
38                    'L',
39    #               config('input name'),
40  #               id(),  #               id(),
41  #               rec('994','a'),  #               rec('994','a'),
42                  rec('000')                  rec('000')
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 '. - '  # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
48    
# Line 50  marc('020','a', Line 50  marc('020','a',
50          rec('10')          rec('10')
51  );  );
52    
53  # u polje 040a možda još dodati prefiks HR  
54    # u polje 040a - prefiks HR ?
55  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)
56    
57  marc('040','a',  marc('040','a',
# Line 61  marc('040','b', Line 62  marc('040','b',
62          'hrv'          'hrv'
63  );  );
64    
65  if (rec('300') && first(rec('300')) =~ m/prijevod/i) {  marc('040','e',
66            'HR PPIAK'
67    );
68    
69    if ( rec('300') && first(rec('300')) =~ m/Prijevod/) {
70          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
71  } else {  } else {
72          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
73  }  }
74    
75    ## naći primjer u NSK
76    
77  marc_repeatable_subfield('041','a',  marc_repeatable_subfield('041','a',
78          rec('101')          rec('101')
79  );  );
80    
81    # indikatori za članove. treba uvjetovati prema jezicima !!
82    
83  ## pitati dobricu  if (    ( rec('200','a') =~ m/^Die /) ||
84            ( rec('200','a') =~ m/^Das /) ||
85  if ( rec('200') && first(rec('200')) =~ m/Die /i) {          ( rec('200','a') =~ m/^The /) ) {
86          marc_indicators('245', 0, 4);                  marc_indicators('245', 0, 4);
87  } else {  } else {
88          marc_indicators('245', 0, 0);          marc_indicators('245', 0, 0);
89  }  }
# Line 138  marc('250','b', Line 146  marc('250','b',
146  );  );
147    
148  # ponovljiva potpolja u originalnom redosljedu  # ponovljiva potpolja u originalnom redosljedu
149  #  
150  marc_original_order('260', '210');  marc_original_order('260', '210');
151    
152    
153  # provjeriti interpunkcije !!  # provjeriti interpunkcije !!
154    # u NSK nesto ne stima
155    
156  marc('300','a',  marc('300','a',
157          suffix(          suffix(
158                  rec('215','c')  ?       ' : ' :                  rec('215','c')  ?       ' : ' :
# Line 155  marc('300','a', Line 165  marc('300','a',
165    
166  marc('300','b',  marc('300','b',
167          suffix(          suffix(
168                  ( rec('215','c') && rec('215','d') )    ?       ' : ' :                  ( rec('215','c') && rec('215','d') )    ?       ' ; ' :
169                  ( rec('215','c') && rec('215','e') )    ?       ' + ' :                  ( rec('215','c') && rec('215','e') )    ?       ' + ' :
170                                                                  ' ',                                                                  ' ',
171                          rec('215','c')                          rec('215','c')
# Line 175  marc('300','e', Line 185  marc('300','e',
185  );  );
186    
187    
188    # provjeriti
189    
190  marc_indicators('490', 0, ' ');  marc_indicators('490', 0, ' ');
191    
192  marc('490','a',  marc('490','a',
193          rec('225','a')          rec('225','a')
194  );  );
195    
196    marc('490','v',
197            join_with(', ',
198                    rec('225','v'),
199                    rec('225','w')
200            ),
201    );
202    
203    marc('490','x',
204            rec('225','x')
205    );
206    
207  #marc('490','a',  #marc('490','a',
208  #       join_with(' : ',  #       join_with(' : ',
209  #               rec('225','a'),  #               rec('225','a'),
# Line 207  marc('500','a', Line 230  marc('500','a',
230  );  );
231    
232  marc('500','a',  marc('500','a',
233            rec('305')
234    );
235    
236    marc('500','a',
237            rec('307')
238    );
239    
240    marc('500','a',
241          rec('314')          rec('314')
242  );  );
243    
# Line 214  marc('504','a', Line 245  marc('504','a',
245          rec('320')          rec('320')
246  );  );
247    
248  # napomene uz konverziju polja sa sadržajem:  ## napomene uz konverziju polja 327 (sadrzaj):
249  # NSK konvertira 327 (NP) u 501 (R)  # NSK konvertira 327 (NP) u 501 (R)
250  # u LOC konv. tablici stoji 327 (NP) u 505 (NR)  # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
251  # standard i validacije dopuštaju 501 (R) i 505 (R)  # standard i validacije dopuštaju 501 (R) i 505 (R)
 # FFPS koristi 327 (P)  
 # FFIZ koristi 327  
   
   
 marc_indicators('505', '0', ' ');  
252    
253  marc('505','a',  ## FFPS 327 - sadrzaj
254          regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',  if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
255                  rec('327')          marc_indicators('505', '0', ' ');
256          )          marc('505','a',
257                    regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
258                            rec('327')
259                    )      
260  );  );
261    }
262    
263  # napomene uz konverziju polja 330:  
264    ## napomene uz konverziju polja 330:
265  # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica  # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
266    
 # FFAN - (NP) - sadržaj, pitati Milu da li je to cijeli sadraj ili nije  
 #  
 # FFIZ koristi 330 (P) - ključne riječi, dijelovi sadržaja, sažeci  
 # FFFO koristi 330 (P) - ključne riječi, dijelovi sadržaja  
 # FFPS koristi 330 (NP) - sažetak  
267    
268  if ( config() =~ m/ffan/i || config() =~ m/fflo/i ) {  # FFPS 330 (NP) - sažetak
269    if ( config() =~ m/ffps/ ) {
270            marc('520','a',
271                    regex('s/[\\r\\n]+/. /g',
272                            rec('330')
273                    )      
274            );
275    }
276    
277  marc('520','a',  # FFTU 330 - ???
278          regex('s/[\\r\\n]+/. /g',  if ( config() =~ m/fftu/ ) {
279            marc('520','a',
280                  rec('330')                  rec('330')
281          )          );
282    }
283    
284    marc('538','a',
285            rec('337','a')
286  );  );
287    
 }  
288    
289  # možda i polje 520y - jezik napomene ako je uvijek isti jezik  # možda i polje 520y - jezik napomene ako je uvijek isti jezik
290    
291    marc_indicators('246', 1, 3);
292    marc('246','a',
293            rec('532')
294    );
295    
296  marc_indicators('655', ' ', 4);  marc_indicators('655', ' ', 4);
297  marc('655','a',  marc('655','a',
298          rec('608')          rec('608')
299  );  );
300    
301  marc_indicators('653', ' ', ' ');  marc_indicators('653', 0, ' ');
302  marc('653','a',  marc('653','a',
303          rec('610')          rec('610')
304  );  );
# Line 296  marc('700','4', Line 338  marc('700','4',
338  }  }
339    
340  marc('700','a',  marc('700','a',
341          rec('701', 'a'),          join_with(', ',
342                    rec('701', 'a'),
343                    rec('701', 'b')
344            )
345  );  );
346    
347  marc('700','a',  marc('700','a',
# Line 326  marc('700','a', Line 371  marc('700','a',
371  );  );
372    
373    
374  # ako je u originalu ponovljivo polje treba biti i konvertirano!!  # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
375    
376    
377  marc('700','a',  marc('700','a',
# Line 350  marc('700','a', Line 395  marc('700','a',
395          )          )
396  );  );
397    
398  ## treba provjeriti da li polje 330 sadrzi jos neke podatke koji mogu biti u <> ili su tu iskljucivo autori? da li samo autori ili neke drugeosobe?  ## treba provjeriti da li polje 330 sadrzi jos neke podatke koji mogu biti u <> ili su tu iskljucivo autori? da li samo autori ili neke druge osobe?
399  #  
400    
401  # marc('700','a',  # marc('700','a',
402  #       rec('330','a')  #       rec('330','a')
403  # );  # );
# Line 442  marc('740','a', Line 488  marc('740','a',
488    
489  if ( rec('230') ) {  if ( rec('230') ) {
490    
         marc('900','a',  
                 id()  
         );  
   
491          marc_duplicate();          marc_duplicate();
492    
493          marc_remove('035');          marc_remove('035');
# Line 453  if ( rec('230') ) { Line 495  if ( rec('230') ) {
495                  join_with('',                  join_with('',
496                          config(),                          config(),
497                          rec('000'),                          rec('000'),
498                            '-',
499                          id(),                          id(),
500                  )                  )
501          );          );
# Line 517  if ( rec('230') ) { Line 560  if ( rec('230') ) {
560          }          }
561    
562          marc_remove('260');          marc_remove('260');
563    
564    #       marc_original_order('260', '250');
565    
566          marc('260','c',          marc('260','c',
567                  rec('250')                  rec1('251')
568          );          );
569    
570    
571    #       marc('260','a',
572    #               rec('251','a')
573    #       );
574    #       marc('260','b',
575    #               rec('251','c')
576    #       );
577    #       marc('260','c',
578    #               rec('251','d'),
579    #               rec1('251')
580    #       );
581    
582          marc_remove('300');          marc_remove('300');
583          marc('300','a',          marc('300','a',
584                  rec('260')                  rec('260')
# Line 560  if ( rec('230') ) { Line 618  if ( rec('230') ) {
618    
619  };  };
620    
621    marc_indicators('776', 0, ' ');
622    
623    marc('776','a',
624            rec('452','1')
625    );
626    
627    marc('900','a',
628            lookup(
629                    sub { rec('000') },
630                    'ffps','libri',
631                    sub { rec('200','a') },
632            )
633    );
634    
635    marc('901','a',
636            lookup(
637                    sub { 'NSK' },
638                    'nsk','baza',
639                    sub { rec('200','a') },
640            )
641    );
642    
643  }  }

Legend:
Removed from v.751  
changed lines
  Added in v.773

  ViewVC Help
Powered by ViewVC 1.1.26