/[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 583 by dpavlin, Wed Jul 5 00:12:08 2006 UTC revision 604 by dpavlin, Sun Jul 30 14:19:54 2006 UTC
# Line 1  Line 1 
1    if ( rec('200','a') ) {
2    
3  # Leader  # Leader
4    #
5    # raspraviti 17,18
6    
7  if ( rec('200','a') ) {  # 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 8  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');
# Line 23  if ( rec('230') ) { Line 25  if ( rec('230') ) {
25    
26  # polje 035 je u NSK ponovljivo. zašto ???  # polje 035 je u NSK ponovljivo. zašto ???
27    
28    # privemeno koristimo 0356 umjesto 0359
29    
30  marc('035','6',  marc('035','6',
31          prefix(  join_with('',
32                  rec('994','a'),  #               config('input normalize path'),
33    #               config('name'),
34    #               config('input name'),
35                    config(),
36    #               id(),
37    #               rec('994','a'),
38                  rec('000')                  rec('000')
39          )          )
40  );  );
# Line 34  marc('035','6', Line 42  marc('035','6',
42  # u marc 035a treba dodati System Number -  # u marc 035a treba dodati System Number -
43  # NSK zapisuje Voyagerov ID (001) - kako ???  # 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('010')
49  );  );
50    
51  # u polje 040a možda još dodati prefiks HR  # u polje 040a možda još dodati prefiks HR
52  # NSK ima HR NSB (možda u novijim zapisima ima NSK)  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)
53    
54  marc('040','a',  marc('040','a',
55          rec('801')          'FFZG'
56  );  );
57    
58  marc('040','b',  marc('040','b',
# Line 61  marc_repeatable_subfield('041','a', Line 71  marc_repeatable_subfield('041','a',
71    
72  marc_indicators('245', 0, 0);  marc_indicators('245', 0, 0);
73    
74    #_debug(3);
75    
76  marc_compose('245',  marc_compose('245',
77          'a', rec('200','a'),          'a', suffix(
78          'h', rec('200','b'),                  rec('200','b') ? '. '   :
79          'b',                  rec('200','k') ? ' ; '  :
80          join_with(' : ',                  rec('200','d') ? ' = '  :
81                  rec('200','d'),                  rec('200','e') ? ' : '  :
82                  rec('200','e')                  rec('200','f') ? ' / '  :
83          ),                                   '.',
84          'c',                          rec('200','a')
         join_with(' ; ',  
                 rec('200','f'),  
                 rec('200','g')  
85          ),          ),
86            'h', rec('200','b'),
87            'b', rec('200','k'),
88            'b', rec('200','d'),
89            'b', rec('200','e'),
90            'c', rec('200','f'),
91    # FIXME append to last subfield
92            '+', prefix('. ', rec('200','c') ),
93  );  );
94    
95    
96    #_debug(0);
97    
98    
99  # marc('245','a',  # marc('245','a',
100  #       rec('200','a')  #       rec('200','a')
101  # );  # );
# Line 98  marc('250','a', Line 118  marc('250','a',
118          rec('205','a')          rec('205','a')
119  );  );
120    
121  marc_compose('260',  # FIXME ponovljiva potpolja u originalnom redosljedu
122          'a', split_rec_on('210','a', qr/\s*;\s*/, 1),  #
123          'b', first(rec('210','c')),  marc_original_order('260', '210');
124          'a', split_rec_on('210','a', qr/\s*;\s*/, 2),  
125          'c', first(rec('210','d')),  marc('260','a',
126            rec('210','a'),
127    );
128    
129    marc('260','b',
130            rec('210','c'),
131    );
132    
133    marc('260','c',
134            rec('210','d'),
135  );  );
136    
137    # marc_compose('260',
138    #       'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
139    #       'b', first(rec('210','c')),
140    #       'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
141    #       'c', first(rec('210','d')),
142    # );
143    
144  marc('300','a',  marc('300','a',
145          rec('215','a')          rec('215','a')
146  );  );
# Line 124  marc('300','e', Line 160  marc('300','e',
160    
161  marc_indicators('490', 1, ' ');  marc_indicators('490', 1, ' ');
162  marc('490','a',  marc('490','a',
163          join_with(' = ',          join_with(' : ',
164                  rec('225','a'),                  rec('225','a'),
165                  join_with(" :  ",                  join_with(" =  ",
166                          rec('225','d'),                          rec('225','d'),
167                          join_with(" / ",                          join_with(" / ",
168                                  rec('225','e'),                                  rec('225','e'),
# Line 137  marc('490','a', Line 173  marc('490','a',
173  );  );
174    
175  marc('490','v',  marc('490','v',
176    #       join2_with(225, 'v', ' , ', 225,'w');
177          join_with(', ',          join_with(', ',
178                  rec('225','v'),                  rec('225','v'),
179                  rec('225','w')                  rec('225','w')
# Line 165  marc('504','a', Line 202  marc('504','a',
202    
203  marc_indicators('505', '0', ' ');  marc_indicators('505', '0', ' ');
204  marc('505','a',  marc('505','a',
205          regex('s/\\r\\n\\r\\n|\\r\\n/ ; /g',          regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
206                  rec('327')                  rec('327')
207          )          )
208  );  );
# Line 177  marc('505','a', Line 214  marc('505','a',
214  # FFPS koristi 330 (NP) - sažetak  # FFPS koristi 330 (NP) - sažetak
215    
216  marc('520','a',  marc('520','a',
217          regex('s/\\r\\n\\r\\n|\\r\\n/. /g',          regex('s/[\\r\\n]+/. /g',
218                  rec('330')                  rec('330')
219          )          )
220  );  );
# Line 218  marc('100','a', Line 255  marc('100','a',
255          )          )
256  );  );
257    
258    #_debug(2);
259    
260  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
261    
# Line 228  marc('700','4', Line 266  marc('700','4',
266  }  }
267    
268  marc('700','a',  marc('700','a',
269          join_with(', ',          rec('701', 'a'),
                 rec('701', 'a'),  
                 rec('701', 'b')  
         )  
270  );  );
271    
272  marc('700','a',  marc('700','a',
# Line 255  marc('700','a', Line 290  marc('700','a',
290          )          )
291  );  );
292    
293    
294  marc('700','a',  marc('700','a',
295          join_with(', ',          rec('702','a'),
                 rec('702','a'),  
                 rec('702','b')  
         )  
296  );  );
297    
298    
299    # ako je u originalu ponovljivo polje treba biti i konvertirano!!
300    
301    
302  marc('700','a',  marc('700','a',
303          join_with(', ',          join_with(', ',
304                  rec('702','c'),                  rec('702','c'),
# Line 283  marc('700','a', Line 320  marc('700','a',
320          )          )
321  );  );
322    
323    #_debug(0);
324    
325    
326  if ( rec('710','f') ) {  if ( rec('710','f') ) {
327    
# Line 319  marc('110','c', Line 358  marc('110','c',
358          rec('710','c')          rec('710','c')
359  );  );
360    
361  }  };
362    
 # zapisi za duplanje  
363    
364  if ( rec('230') ) {  marc_indicators('740', 0, ' ');
365    marc('740','a',
366            rec('200','c')
367    );
368    
 marc_duplicate();  
369    
370  marc_remove('245');  # višerazinci
371    
372  marc('245','a',  if ( rec('230') ) {
         rec('230','a')  
 );  
373    
374  if ( ! rec('230','a') ) {          marc_duplicate();
375            marc_remove('245');
376    
377  marc('245','a',          marc('245','a',
378          rec('200','a')                  rec('230','a')
379  );          );
380    
381            if ( ! rec('230','a') ) {
382    
383                    marc('245','a',
384                            rec('200','a')
385                    );
386            }
387    
388            marc('245','b',
389                    rec('230','e')
390            );
391    
392            marc('245','c',
393                    rec('230','f')
394            );
395    
396            marc('245','n',
397                    rec('230','v')
398            );
399    
400  }  }
401    
402  marc('245','b',  if ( rec('231') ) {
         rec('230','e')  
 );  
403    
404  marc('245','c',          marc_duplicate();
405          rec('230','f')          marc_remove('245');
 );  
406    
407  marc('245','n',          marc('245','a',
408          rec('230','v')                  rec('231','a')
409  );          );
410    
411  }          if ( ! rec('231','a') ) {
412    
413                    marc('245','a',
414                            rec('200','a')
415                    );
416            }
417    
418            marc('245','b',
419                    rec('231','e')
420            );
421    
422            marc('245','c',
423                    rec('231','f')
424            );
425    
426            marc('245','n',
427                    rec('231','v')
428            );
429    
430    }
431  }  }

Legend:
Removed from v.583  
changed lines
  Added in v.604

  ViewVC Help
Powered by ViewVC 1.1.26