/[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 569 by dpavlin, Sun Jul 2 21:32:53 2006 UTC revision 622 by dpavlin, Fri Aug 25 19:22:33 2006 UTC
# Line 1  Line 1 
1    if ( rec('200','a') ) {
2    
3  # Leader  # Leader
4  #  #
5  # if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {  # raspraviti 17,18
 #       marc_leader('05','c');  
 # } else {  
 #       marc_leader('05','n');  
 # }  
 #  
 # marc_leader('06','a');  
 #  
 # marc_leader('07','m');  
 #  
 # marc_leader('18','i');  
 #  
 # if ( rec('230') ) {  
 #       marc_leader('19','r');  
 # }  
6    
7    # u nekim knjižnicama koristi se 999a i 999b
8    
9    if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
10            marc_leader('05','c');
11    } else {
12            marc_leader('05','n');
13    }
14    
15            marc_leader('06','a');
16            marc_leader('07','m');
17            marc_leader('18','i');
18    
19    if ( rec('230') ) {
20            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) {
# Line 39  marc_repeatable_subfield('041','a', Line 70  marc_repeatable_subfield('041','a',
70  );  );
71    
72  marc_indicators('245', 0, 0);  marc_indicators('245', 0, 0);
 marc('245','a',  
         rec('200','a')  
 );  
73    
74  marc('245','b',  #_debug(3);
         join_with(' : ',  
                 rec('200','d'),  
                 rec('200','e')  
         )  
 );  
75    
76  marc('245','c',  marc_compose('245',
77          join_with(' ; ',          'a', suffix(
78                  rec('200','f'),                  rec('200','b') ? '. '   :
79                  rec('200','g')                  rec('200','k') ? ' ; '  :
80          )                  rec('200','d') ? ' = '  :
81                    rec('200','e') ? ' : '  :
82                    rec('200','f') ? ' / '  :
83                                     '.',
84                            rec('200','a')
85            ),
86            'h', rec('200','b'),
87            'b', rec('200','k'),
88            'b', rec('200','d'),
89            'b',
90                    join_with(' : ',
91                            rec('200','e'),
92                    ),
93            'c',
94                    join_with(' ; ',
95                            rec('200','f'),
96                    ),
97    # FIXME append to last subfield
98            '+', prefix('. ', rec('200','c') ),
99  );  );
100    
101    
102    #_debug(0);
103    
104    
105    # marc('245','a',
106    #       rec('200','a')
107    # );
108    #
109    # marc('245','b',
110    #       join_with(' : ',
111    #               rec('200','d'),
112    #               rec('200','e')
113    #       )
114    # );
115    #
116    # marc('245','c',
117    #       join_with(' ; ',
118    #               rec('200','f'),
119    #               rec('200','g')
120    #       )
121    # );
122    
123  marc('250','a',  marc('250','a',
124          rec('205','a')          rec('205','a')
125  );  );
126    
127  marc_compose('260',  # FIXME ponovljiva potpolja u originalnom redosljedu
128          'a', split_rec_on('210','a', qr/\s*;\s*/, 1),  #
129          'b', first(rec('210','c')),  marc_original_order('260', '210');
130          'a', split_rec_on('210','a', qr/\s*;\s*/, 2),  
131          'c', first(rec('210','d')),  # marc('260','a',
132  );  #       rec('210','a'),
133    # );
134    #
135    # marc('260','b',
136    #       rec('210','c'),
137    # );
138    
139    # marc('260','c',
140    #       rec('210','d'),
141    # );
142    
143    # marc_compose('260',
144    #       'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
145    #       'b', first(rec('210','c')),
146    #       'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
147    #       'c', first(rec('210','d')),
148    # );
149    
150  marc('300','a',  marc('300','a',
151          rec('215','a')          rec('215','a')
# Line 87  marc('300','e', Line 166  marc('300','e',
166    
167  marc_indicators('490', 1, ' ');  marc_indicators('490', 1, ' ');
168  marc('490','a',  marc('490','a',
169          join_with(' = ',          join_with(' : ',
170                  rec('225','a'),                  rec('225','a'),
171                  join_with(" :  ",                  join_with(" =  ",
172                          rec('225','d'),                          rec('225','d'),
173                          join_with(" / ",                          join_with(" / ",
174                                  rec('225','e'),                                  rec('225','e'),
# Line 100  marc('490','a', Line 179  marc('490','a',
179  );  );
180    
181  marc('490','v',  marc('490','v',
182    #       join2_with(225, 'v', ' , ', 225,'w');
183          join_with(', ',          join_with(', ',
184                  rec('225','v'),                  rec('225','v'),
185                  rec('225','w')                  rec('225','w')
# Line 118  marc('504','a', Line 198  marc('504','a',
198          rec('320')          rec('320')
199  );  );
200    
201  marc('501','a',  # napomene uz konverziju polja sa sadržajem:
202          rec('327')  # NSK konvertira 327 (NP) u 501 (R)
203    # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
204    # standard i validacije dopuštaju 501 (R) i 505 (R)
205    # FFPS koristi 327 (P)
206    # FFIZ koristi 327
207    
208    
209    marc_indicators('505', '0', ' ');
210    marc('505','a',
211            regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
212                    rec('327')
213            )
214  );  );
215    
216    # napomene uz konverziju polja 330:
217    # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
218    # FFIZ koristi 330 (P) - ključne riječi, dijelovi sadržaja, sažeci
219    # FFFO koristi 330 (P) - ključne riječi, dijelovi sadržaja
220    # FFPS koristi 330 (NP) - sažetak
221    
222  marc('520','a',  marc('520','a',
223          rec('330')          regex('s/[\\r\\n]+/. /g',
224                    rec('330')
225            )
226  );  );
227    
228  # 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 138  marc('653','a', Line 237  marc('653','a',
237          rec('610')          rec('610')
238  );  );
239    
240    # 675 podpolja c, d ... - što s njima ???
241    
242  marc('080','a',  marc('080','a',
243          rec('675','a')          rec('675','a')
244  );  );
245    
246  # podpolja c, d ... - što s njima?  # 084 je other classification (R)
247    # NSK ga koristi za stručnu oznaku NSK iz polja 681
248    # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
249    #
250    # polje 686 koristi FFPS
251    
252  marc('084','a',  marc('084','a',
253          rec('686')          rec('686')
# Line 156  marc('100','a', Line 261  marc('100','a',
261          )          )
262  );  );
263    
264    #_debug(2);
265    
266  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
 marc('700','a',  
         join_with(', ',  
                 rec('701', 'a'),  
                 rec('701', 'b')  
         )  
 );  
267    
268  if ( rec('701') ) {  if ( rec('701') ) {
269  marc('700','4',  marc('700','4',
# Line 172  marc('700','4', Line 272  marc('700','4',
272  }  }
273    
274  marc('700','a',  marc('700','a',
275            rec('701', 'a'),
276    );
277    
278    marc('700','a',
279          join_with(', ',          join_with(', ',
280                  rec('702','a'),                  rec('701', 'c'),
281                  rec('702','b')                  rec('701', 'd')
282          )          )
283  );  );
284    
285  # podesiti podpolje 4 na editore nije dobra ideja  marc('700','a',
286  #          join_with(', ',
287  # if ( rec('702') ) {                  rec('701', 'e'),
288  #       marc('700','4',                  rec('701', 'f')
289  #               '340'          )
290  #       );  );
291  # }  
292    marc('700','a',
293            join_with(', ',
294                    rec('701', 'g'),
295                    rec('701', 'h')
296            )
297    );
298    
299    
300    marc('700','a',
301            rec('702','a'),
302    );
303    
304    
305    # ako je u originalu ponovljivo polje treba biti i konvertirano!!
306    
307    
308    marc('700','a',
309            join_with(', ',
310                    rec('702','c'),
311                    rec('702','d')
312            )
313    );
314    
315    marc('700','a',
316            join_with(', ',
317                    rec('702','e'),
318                    rec('702','f')
319            )
320    );
321    
322    marc('700','a',
323            join_with(', ',
324                    rec('702','g'),
325                    rec('702','h')
326            )
327    );
328    
329    #_debug(0);
330    
331    
332  if ( rec('710','f') ) {  if ( rec('710','f') ) {
333    
# Line 193  marc('111','a', Line 336  marc('111','a',
336          rec('710','a')          rec('710','a')
337  );  );
338    
339    marc('111','c',
340            rec('710','e')
341    );
342    
343    marc('111','d',
344            rec('710','f')
345    );
346    
347  marc('111','e',  marc('111','e',
348          rec('710','b')          rec('710','b')
349  );  );
# Line 201  marc('111','n', Line 352  marc('111','n',
352          rec('710','d')          rec('710','d')
353  );  );
354    
 marc('111','c',  
         rec('710','e')  
 );  
   
 marc('111','d',  
         rec('710','f')  
 );  
355    
356  } else {  } else {
357                    
# Line 220  marc('110','c', Line 364  marc('110','c',
364          rec('710','c')          rec('710','c')
365  );  );
366    
367  }  };
368    
369  # zapisi za duplanje  
370  #  marc_indicators('740', 0, ' ');
371    marc('740','a',
372            rec('200','c')
373    );
374    
375    
376    # višerazinci
377    #
378  # if ( rec('230') ) {  # if ( rec('230') ) {
 #  
 # marc('245','a',  
 #       rec('230','a')  
 # );  
379  #  #
380  # marc('245','b',  #       marc_duplicate();
381  #       rec('230','e')  #       marc_remove('245');
 # );  
382  #  #
383  # marc('245','c',  #       marc('245','a',
384  #       rec('230','f')  #               rec('230','a')
385  # );  #       );
386  #  #
387  # marc('245','n',  #       if ( ! rec('230','a') ) {
388  #       rec('230','v')  #
389  # );  #               marc('245','a',
390    #                       rec('200','a')
391    #               );
392    #       }
393    #
394    #       marc('245','b',
395    #               rec('230','e')
396    #       );
397    #
398    #       marc('245','c',
399    #               rec('230','f')
400    #       );
401    #
402    #       marc('245','n',
403    #               rec('230','v')
404    #       );
405    #
406    # }
407    #
408    # if ( rec('231') ) {
409    #
410    #       marc_duplicate();
411    #       marc_remove('245');
412    #
413    #       marc('245','a',
414    #               rec('231','a')
415    #       );
416    #
417    #       if ( ! rec('231','a') ) {
418    #
419    #               marc('245','a',
420    #                       rec('200','a')
421    #               );
422    #       }
423    #
424    #       marc('245','b',
425    #               rec('231','e')
426    #       );
427    #
428    #       marc('245','c',
429    #               rec('231','f')
430    #       );
431    #
432    #       marc('245','n',
433    #               rec('231','v')
434    #       );
435  #  #
436  # }  # }
437    
438    }

Legend:
Removed from v.569  
changed lines
  Added in v.622

  ViewVC Help
Powered by ViewVC 1.1.26