/[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 549 by dpavlin, Fri Jun 30 10:16:05 2006 UTC revision 591 by dpavlin, Sun Jul 9 14:07:10 2006 UTC
# Line 1  Line 1 
1  marc('001',  if ( rec('200','a') ) {
2          rec('000')  
3    # 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) {
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    
23    
24    # 001 polje dodaje Voyager
25    
26    # polje 035 je u NSK ponovljivo. zašto ???
27    
28    # privemeno koristimo 0356 umjesto 0359
29    
30    
31    marc('035','6',
32            join_with(' ',
33    #               config('input normalize path'),
34    #               config('name'),
35    #               config('input name'),
36    #               config(),
37    #               id(),
38                    rec('994','a'),
39                    rec('000')
40            )
41  );  );
42    
43    
44    # u marc 035a treba dodati System Number -
45    # NSK zapisuje Voyagerov ID (001) - kako ???
46    
47    # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
48    
49  marc('020','a',  marc('020','a',
50          rec('010')          rec('010')
51  );  );
52    
53    # u polje 040a možda još dodati prefiks HR
54    # NSK ima HR NSB (možda u novijim zapisima ima NSK?)
55    
56    marc('040','a',
57            'FFZG'
58    );
59    
60    marc('040','b',
61            'hrv'
62    );
63    
64  if (rec('300') && first(rec('300')) =~ m/prijevod/i) {  if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
65          marc_indicators('041', 1, ' ');          marc_indicators('041', 1, ' ');
66  } else {  } else {
# Line 18  marc_repeatable_subfield('041','a', Line 73  marc_repeatable_subfield('041','a',
73    
74  marc_indicators('245', 0, 0);  marc_indicators('245', 0, 0);
75    
76  marc('245','a',  #_debug(3);
         rec('200','a')  
 );  
77    
78  marc('245','b',  marc_compose('245',
79            'a', rec('200','a'),
80            'h', rec('200','b'),
81            'b',
82          join_with(' : ',          join_with(' : ',
83                  rec('200','d'),                  rec('200','d'),
84                  rec('200','e')                  rec('200','e')
85          )          ),
86  );          'c',
   
 marc('245','c',  
87          join_with(' ; ',          join_with(' ; ',
88                  rec('200','f'),                  rec('200','f'),
89                  rec('200','g')                  rec('200','g')
90          )          ),
91  );  );
92    
93  marc('250','a',  #_debug(0);
         rec('205','a')  
 );  
94    
95  marc('260','a',  # marc('245','a',
96          rec('210','a')  #       rec('200','a')
97  );  # );
98    #
99    # marc('245','b',
100    #       join_with(' : ',
101    #               rec('200','d'),
102    #               rec('200','e')
103    #       )
104    # );
105    #
106    # marc('245','c',
107    #       join_with(' ; ',
108    #               rec('200','f'),
109    #               rec('200','g')
110    #       )
111    # );
112    
113  marc('260','b',  marc('250','a',
114          rec('210','c')          rec('205','a')
115  );  );
116    
117  marc('260','c',  marc_compose('260',
118          rec('210','d')          'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
119            'b', first(rec('210','c')),
120            'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
121            'c', first(rec('210','d')),
122  );  );
123    
124  marc('300','a',  marc('300','a',
# Line 68  marc('300','e', Line 137  marc('300','e',
137          rec('215','e')          rec('215','e')
138  );  );
139    
140    
141    marc_indicators('490', 1, ' ');
142  marc('490','a',  marc('490','a',
143          join_with(' = ',          join_with(' = ',
144                  rec('225','a'),                  rec('225','a'),
# Line 82  marc('490','a', Line 153  marc('490','a',
153  );  );
154    
155  marc('490','v',  marc('490','v',
156          rec('225','v')          join_with(', ',
157                    rec('225','v'),
158                    rec('225','w')
159            )
160  );  );
161    
162  marc('500','a',  marc('500','a',
163          rec('300')          rec('300')
164  );  );
165    
166    marc('500','a',
167            rec('314')
168    );
169    
170  marc('504','a',  marc('504','a',
171          rec('320')          rec('320')
172  );  );
173    
174    # napomene uz konverziju polja sa sadržajem:
175    # NSK konvertira 327 (NP) u 501 (R)
176    # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
177    # standard i validacije dopuštaju 501 (R) i 505 (R)
178    # FFPS koristi 327 (P)
179    # FFIZ koristi 327
180    
181    
182    marc_indicators('505', '0', ' ');
183    marc('505','a',
184            regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
185                    rec('327')
186            )
187    );
188    
189    # napomene uz konverziju polja 330:
190    # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
191    # FFIZ koristi 330 (P) - ključne riječi, dijelovi sadržaja, sažeci
192    # FFFO koristi 330 (P) - ključne riječi, dijelovi sadržaja
193    # FFPS koristi 330 (NP) - sažetak
194    
195    marc('520','a',
196            regex('s/[\\r\\n]+/. /g',
197                    rec('330')
198            )
199    );
200    
201    # možda i polje 520y - jezik napomene ako je uvijek isti jezik
202    
203  marc_indicators('655', ' ', 4);  marc_indicators('655', ' ', 4);
204  marc('655','a',  marc('655','a',
205            rec('608')
206    );
207    
208    marc_indicators('653', ' ', ' ');
209    marc('653','a',
210          rec('610')          rec('610')
211  );  );
212    
213    # 675 podpolja c, d ... - što s njima ???
214    
215    marc('080','a',
216            rec('675','a')
217    );
218    
219    # 084 je other classification (R)
220    # NSK ga koristi za stručnu oznaku NSK iz polja 681
221    # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
222    #
223    # polje 686 koristi FFPS
224    
225    marc('084','a',
226            rec('686')
227    );
228    
229  marc_indicators('100', 1, ' ');  marc_indicators('100', 1, ' ');
230  marc('100','a',  marc('100','a',
231          join_with(', ',          join_with(', ',
# Line 108  marc('100','a', Line 236  marc('100','a',
236    
237    
238  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
239    
240    if ( rec('701') ) {
241    marc('700','4',
242            'aut'
243    );
244    }
245    
246  marc('700','a',  marc('700','a',
247          join_with(', ',          join_with(', ',
248                  rec('701', 'a'),                  rec('701', 'a'),
# Line 115  marc('700','a', Line 250  marc('700','a',
250          )          )
251  );  );
252    
253  if ( rec('701') ) {  marc('700','a',
254          marc('700','4',          join_with(', ',
255                  '070'                  rec('701', 'c'),
256          );                  rec('701', 'd')
257  }          )
258    );
259    
260    marc('700','a',
261            join_with(', ',
262                    rec('701', 'e'),
263                    rec('701', 'f')
264            )
265    );
266    
267    marc('700','a',
268            join_with(', ',
269                    rec('701', 'g'),
270                    rec('701', 'h')
271            )
272    );
273    
274  marc('700','a',  marc('700','a',
275          join_with(', ',          join_with(', ',
# Line 128  marc('700','a', Line 278  marc('700','a',
278          )          )
279  );  );
280    
281  if ( rec('702') ) {  marc('700','a',
282          marc('700','4',          join_with(', ',
283                  '340'                  rec('702','c'),
284          );                  rec('702','d')
285            )
286    );
287    
288    marc('700','a',
289            join_with(', ',
290                    rec('702','e'),
291                    rec('702','f')
292            )
293    );
294    
295    marc('700','a',
296            join_with(', ',
297                    rec('702','g'),
298                    rec('702','h')
299            )
300    );
301    
302    
303    if ( rec('710','f') ) {
304    
305    marc_indicators('111', 2, ' ');
306    marc('111','a',
307            rec('710','a')
308    );
309    
310    marc('111','c',
311            rec('710','e')
312    );
313    
314    marc('111','d',
315            rec('710','f')
316    );
317    
318    marc('111','e',
319            rec('710','b')
320    );
321    
322    marc('111','n',
323            rec('710','d')
324    );
325    
326    
327    } else {
328            
329    marc_indicators('110', 2, ' ');
330    marc('110','a',
331            rec('710','a')
332    );
333    
334    marc('110','c',
335            rec('710','c')
336    );
337    
338    }
339    
340    # zapisi za duplanje
341    
342    if ( rec('230') ) {
343    
344    marc_duplicate();
345    
346    marc_remove('245');
347    marc_remove('035','6');
348    
349    marc('245','a',
350            rec('230','a')
351    );
352    
353    if ( ! rec('230','a') ) {
354    
355    marc('245','a',
356            rec('200','a')
357    );
358    
359  }  }
360    
361    marc('245','b',
362            rec('230','e')
363    );
364    
365    marc('245','c',
366            rec('230','f')
367    );
368    
369    marc('245','n',
370            rec('230','v')
371    );
372    
373    }
374    
375    }

Legend:
Removed from v.549  
changed lines
  Added in v.591

  ViewVC Help
Powered by ViewVC 1.1.26