/[webpac2]/trunk/conf/normalize/mapping.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/mapping.pl

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

revision 563 by dpavlin, Sun Jul 2 18:36:22 2006 UTC revision 722 by dpavlin, Fri Sep 29 12:48:07 2006 UTC
# Line 1  Line 1 
1    if ( rec('200','a') ) {
2    
3  # Leader  # Leader
4    #
5    # raspraviti 17,18
6    
7    # u nekim knjižnicama koristi se 999a i 999b
8    
9  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
10          marc_leader('05','c');          marc_leader('05','c');
# Line 6  if ( rec('999') && first(rec('999')) =~ Line 12  if ( rec('999') && first(rec('999')) =~
12          marc_leader('05','n');          marc_leader('05','n');
13  }  }
14    
15  marc_leader('06','a');          marc_leader('06','a');
16            marc_leader('07','m');
17  marc_leader('07','m');          marc_leader('18','i');
   
 marc_leader('18','i');  
18    
19  if ( rec('230') ) {  if ( rec('230') ) {
20          marc_leader('19','r');          marc_leader('19','r');
21  }  }
22    
 # greška - 000 se ne zapisuje u marc:  
23    
24  marc('001',  # 001 polje dodaje Voyager
25          rec('000')  
26    # polje 035 je u NSK ponovljivo. zašto ???
27    
28    # privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku
29    
30    marc('035','6',
31    join_with('',
32    #               config('input normalize path'),
33    #               config('name'),
34    #               config('input name'),
35                    config(),
36    #               id(),
37    #               rec('994','a'),
38                    rec('000')
39            )
40  );  );
41    
42    # u marc 035a treba dodati System Number -
43    # NSK zapisuje Voyagerov ID (001) - kako ???
44    
45    # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
46    
47  marc('020','a',  marc('020','a',
48          rec('010')          rec('10')
49    );
50    
51    # u polje 040a možda još dodati prefiks HR
52    # NSK ima HR NSB (možda u novijim zapisima ima NSK?)
53    
54    marc('040','a',
55            'FFZG'
56    );
57    
58    marc('040','b',
59            'hrv'
60  );  );
61    
62  if (rec('300') && first(rec('300')) =~ m/prijevod/i) {  if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
63          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
64  } else {  } else {
65          marc_indicators('041', 0, ' ');          marc_indicators('041', 0, ' ');
66  }  };
67    
68  marc_repeatable_subfield('041','a',  marc_repeatable_subfield('041','a',
69          rec('101')          rec('101')
70  );  );
71    
72  marc_indicators('245', 0, 0);  # marc_indicators('245', 0, 0);
 marc('245','a',  
         rec('200','a')  
 );  
73    
74  marc('245','b',  if ( rec('700') ) {
75          join_with(' : ',          marc_indicators('245', 1, 0);
76                  rec('200','d'),  } else {
77                  rec('200','e')          marc_indicators('245', 0, 0);
78          )  };
 );  
79    
80  marc('245','c',  #_debug(3);
81          join_with(' ; ',  
82                  rec('200','f'),  marc_compose('245',
83                  rec('200','g')          'a', suffix(
84          )                  rec('200','b') ? '. '   :
85                    rec('200','k') ? ' ; '  :
86                    rec('200','d') ? ' = '  :
87                    rec('200','e') ? ' : '  :
88                    rec('200','f') ? ' / '  :
89                                     '.',
90                            rec('200','a')
91            ),
92            'h', rec('200','b'),
93            'b',
94                    join_with(' ; ',
95                            rec('200','k'),
96                    ),
97            'b', rec('200','d'),
98            'b',
99                    join_with(' : ',
100                            rec('200','e'),
101                    ),
102            'c',
103                    join_with(' ; ',
104                            rec('200','f'),
105                    ),
106    # FIXME append to last subfield
107            '+', prefix('. ', rec('200','c') ),
108  );  );
109    
110    
111    #_debug(0);
112    
113    
114    # marc('245','a',
115    #       rec('200','a')
116    # );
117    #
118    # marc('245','b',
119    #       join_with(' : ',
120    #               rec('200','d'),
121    #               rec('200','e')
122    #       )
123    # );
124    #
125    # marc('245','c',
126    #       join_with(' ; ',
127    #               rec('200','f'),
128    #               rec('200','g')
129    #       )
130    # );
131    
132  marc('250','a',  marc('250','a',
133          rec('205','a')          rec('205','a')
134  );  );
135    
136  _debug( 2 );  # FIXME ponovljiva potpolja u originalnom redosljedu
137  warn "210a: ",dump( first(rec('210','a' )) );  #
138    marc_original_order('260', '210');
139    
140  marc_compose('260',  # marc('260','a',
141          'a', split_rec_on('210','a', qr/\s*;\s*/, 1),  #       rec('210','a'),
142          'b', first(rec('210','c')),  # );
143          'a', split_rec_on('210','a', qr/\s*;\s*/, 2),  #
144          'c', first(rec('210','d')),  # marc('260','b',
145  );  #       rec('210','c'),
146    # );
147    
148    # marc('260','c',
149    #       rec('210','d'),
150    # );
151    
152  _debug( 0 );  # marc_compose('260',
153    #       'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
154    #       'b', first(rec('210','c')),
155    #       'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
156    #       'c', first(rec('210','d')),
157    # );
158    
159  marc('300','a',  marc('300','a',
160          rec('215','a')          rec('215','a')
# Line 91  marc('300','e', Line 175  marc('300','e',
175    
176  marc_indicators('490', 1, ' ');  marc_indicators('490', 1, ' ');
177  marc('490','a',  marc('490','a',
178          join_with(' = ',          join_with(' : ',
179                  rec('225','a'),                  rec('225','a'),
180                  join_with(" :  ",                  join_with(" =  ",
181                          rec('225','d'),                          rec('225','d'),
182                          join_with(" / ",                          join_with(" / ",
183                                  rec('225','e'),                                  rec('225','e'),
# Line 104  marc('490','a', Line 188  marc('490','a',
188  );  );
189    
190  marc('490','v',  marc('490','v',
191          rec('225','v')  #       join2_with(225, 'v', ' , ', 225,'w');
192            join_with(', ',
193                    rec('225','v'),
194                    rec('225','w')
195            )
196  );  );
197    
198  marc('500','a',  marc('500','a',
# Line 119  marc('504','a', Line 207  marc('504','a',
207          rec('320')          rec('320')
208  );  );
209    
210  marc('501','a',  # napomene uz konverziju polja sa sadržajem:
211          rec('327')  # NSK konvertira 327 (NP) u 501 (R)
212    # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
213    # standard i validacije dopuštaju 501 (R) i 505 (R)
214    # FFPS koristi 327 (P)
215    # FFIZ koristi 327
216    
217    
218    marc_indicators('505', '0', ' ');
219    marc('505','a',
220            regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
221                    rec('327')
222            )
223  );  );
224    
225    # napomene uz konverziju polja 330:
226    # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
227    # FFIZ koristi 330 (P) - ključne riječi, dijelovi sadržaja, sažeci
228    # FFFO koristi 330 (P) - ključne riječi, dijelovi sadržaja
229    # FFPS koristi 330 (NP) - sažetak
230    
231  marc('520','a',  marc('520','a',
232          rec('330')          regex('s/[\\r\\n]+/. /g',
233                    rec('330')
234            )
235  );  );
236    
237  # možda i polje 520y - jezik napomene ako je uvijek isti jezik  # možda i polje 520y - jezik napomene ako je uvijek isti jezik
# Line 139  marc('653','a', Line 246  marc('653','a',
246          rec('610')          rec('610')
247  );  );
248    
249    # 675 podpolja c, d ... - što s njima ???
250    
251  marc('080','a',  marc('080','a',
252          rec('675','a')          rec('675','a')
253  );  );
254    
255  # podpolja c, d ... - što s njima?  # 084 je other classification (R)
256    # NSK ga koristi za stručnu oznaku NSK iz polja 681
257    # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
258    #
259    # polje 686 koristi FFPS
260    
261  marc('084','a',  marc('084','a',
262          rec('686')          rec('686')
# Line 157  marc('100','a', Line 270  marc('100','a',
270          )          )
271  );  );
272    
273    #_debug(2);
274    
275  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
 marc('700','a',  
         join_with(', ',  
                 rec('701', 'a'),  
                 rec('701', 'b')  
         )  
 );  
276    
277  if ( rec('701') ) {  if ( rec('701') ) {
278  marc('700','4',  marc('700','4',
# Line 173  marc('700','4', Line 281  marc('700','4',
281  }  }
282    
283  marc('700','a',  marc('700','a',
284            rec('701', 'a'),
285    );
286    
287    marc('700','a',
288          join_with(', ',          join_with(', ',
289                  rec('702','a'),                  rec('701', 'c'),
290                  rec('702','b')                  rec('701', 'd')
291            )
292    );
293    
294    marc('700','a',
295            join_with(', ',
296                    rec('701', 'e'),
297                    rec('701', 'f')
298            )
299    );
300    
301    marc('700','a',
302            join_with(', ',
303                    rec('701', 'g'),
304                    rec('701', 'h')
305          )          )
306  );  );
307    
308  # podesiti podpolje 4 na editore nije dobra ideja  
309  #  marc('700','a',
310  # if ( rec('702') ) {          rec('702','a'),
311  #       marc('700','4',  );
312  #               '340'  
313  #       );  
314  # }  # ako je u originalu ponovljivo polje treba biti i konvertirano!!
315    
316    
317    marc('700','a',
318            join_with(', ',
319                    rec('702','c'),
320                    rec('702','d')
321            )
322    );
323    
324    marc('700','a',
325            join_with(', ',
326                    rec('702','e'),
327                    rec('702','f')
328            )
329    );
330    
331    marc('700','a',
332            join_with(', ',
333                    rec('702','g'),
334                    rec('702','h')
335            )
336    );
337    
338    #_debug(0);
339    
340    
341  if ( rec('710','f') ) {  if ( rec('710','f') ) {
342    
# Line 194  marc('111','a', Line 345  marc('111','a',
345          rec('710','a')          rec('710','a')
346  );  );
347    
348    marc('111','c',
349            rec('710','e')
350    );
351    
352    marc('111','d',
353            rec('710','f')
354    );
355    
356  marc('111','e',  marc('111','e',
357          rec('710','b')          rec('710','b')
358  );  );
# Line 202  marc('111','n', Line 361  marc('111','n',
361          rec('710','d')          rec('710','d')
362  );  );
363    
 marc('111','c',  
         rec('710','e')  
 );  
   
 marc('111','d',  
         rec('710','f')  
 );  
364    
365  } else {  } else {
366                    
# Line 221  marc('110','c', Line 373  marc('110','c',
373          rec('710','c')          rec('710','c')
374  );  );
375    
376  }  };
377    
378  # zapisi za duplanje  
379  #  marc_indicators('740', 0, ' ');
380  # if ( rec('230') ) {  
381  #  if ( ! rec('464') ) {
382  # marc('245','a',  marc('740','a',
383  #       rec('230','a')          rec('200','c')
384  # );  );
385  #  
386  # marc('245','b',  marc('740','a',
387  #       rec('230','e')          rec('200','k')
388  # );  );
389  #  
390  # marc('245','c',  } else {
391  #       rec('230','f')  marc('740','a',
392  # );          rec('464','a')
393  #  );
394  # marc('245','n',  };
395  #       rec('230','v')  
396  # );  
397  #  
398  # }  ## višerazinci
399    
400    if ( rec('230') ) {
401    
402            marc_duplicate();
403            
404            marc_remove('245');
405            marc_compose('245',
406            'a', suffix(
407                    rec('200','b') ? '. '   :
408                    rec('200','k') ? ' ; '  :
409                    rec('200','d') ? ' = '  :
410                    rec('200','e') ? ' : '  :
411                    rec('200','f') ? ' / '  :
412                                     '.',
413                            rec('230','a')
414            ),
415            'b',
416                    join_with(' ; ',
417                            rec('230','k'),
418                    ),
419            'b', rec('230','d'),
420            'b',
421                    join_with(' : ',
422                            rec('230','e'),
423                    ),
424            'c',
425                    join_with(' ; ',
426                            rec('230','f'),
427                    ),
428            );
429    
430            marc_remove('260');
431            marc('260','c',
432                    rec('250')
433            );
434    
435            marc_remove('300');
436            marc('300','a',
437                    rec('260')
438            );
439    
440            marc_remove('490');
441            marc('490','a',
442                    rec('270')
443            );
444    
445            marc_remove('500');
446            marc('500','a',
447                    rec('280')
448            );
449    
450            marc_remove('020');
451            marc('020','a',
452                    rec('290')
453            );
454    
455            marc_indicators('774', 0, ' ');
456            marc('774','6',
457                    join_with('',
458                            config(),
459                            rec('000')
460                    )
461            );
462    
463            marc('774','g',
464                    rec('230','v')
465            );
466    
467    };
468    
469    }

Legend:
Removed from v.563  
changed lines
  Added in v.722

  ViewVC Help
Powered by ViewVC 1.1.26