/[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 595 by dpavlin, Mon Jul 10 10:16:11 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    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('010')
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 {
# Line 18  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  marc('245','a',  #_debug(3);
         rec('200','a')  
 );  
75    
76  marc('245','b',  marc_compose('245',
77            'a', rec('200','a'),
78            'h', rec('200','b'),
79            'b',
80          join_with(' : ',          join_with(' : ',
81                  rec('200','d'),                  rec('200','d'),
82                  rec('200','e')                  rec('200','e')
83          )          ),
84  );          'c',
   
 marc('245','c',  
85          join_with(' ; ',          join_with(' ; ',
86                  rec('200','f'),                  rec('200','f'),
87                  rec('200','g')                  rec('200','g')
88          )          ),
89  );  );
90    
91  marc('250','a',  #_debug(0);
         rec('205','a')  
 );  
92    
93  marc('260','a',  # marc('245','a',
94          rec('210','a')  #       rec('200','a')
95  );  # );
96    #
97    # marc('245','b',
98    #       join_with(' : ',
99    #               rec('200','d'),
100    #               rec('200','e')
101    #       )
102    # );
103    #
104    # marc('245','c',
105    #       join_with(' ; ',
106    #               rec('200','f'),
107    #               rec('200','g')
108    #       )
109    # );
110    
111  marc('260','b',  marc('250','a',
112          rec('210','c')          rec('205','a')
113  );  );
114    
115  marc('260','c',  marc_compose('260',
116          rec('210','d')          'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
117            'b', first(rec('210','c')),
118            'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
119            'c', first(rec('210','d')),
120  );  );
121    
122  marc('300','a',  marc('300','a',
# Line 68  marc('300','e', Line 135  marc('300','e',
135          rec('215','e')          rec('215','e')
136  );  );
137    
138    
139    marc_indicators('490', 1, ' ');
140  marc('490','a',  marc('490','a',
141          join_with(' = ',          join_with(' = ',
142                  rec('225','a'),                  rec('225','a'),
# Line 82  marc('490','a', Line 151  marc('490','a',
151  );  );
152    
153  marc('490','v',  marc('490','v',
154          rec('225','v')          join_with(', ',
155                    rec('225','v'),
156                    rec('225','w')
157            )
158  );  );
159    
160  marc('500','a',  marc('500','a',
161          rec('300')          rec('300')
162  );  );
163    
164    marc('500','a',
165            rec('314')
166    );
167    
168  marc('504','a',  marc('504','a',
169          rec('320')          rec('320')
170  );  );
171    
172    # napomene uz konverziju polja sa sadržajem:
173    # NSK konvertira 327 (NP) u 501 (R)
174    # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
175    # standard i validacije dopuštaju 501 (R) i 505 (R)
176    # FFPS koristi 327 (P)
177    # FFIZ koristi 327
178    
179    
180    marc_indicators('505', '0', ' ');
181    marc('505','a',
182            regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
183                    rec('327')
184            )
185    );
186    
187    # napomene uz konverziju polja 330:
188    # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
189    # FFIZ koristi 330 (P) - ključne riječi, dijelovi sadržaja, sažeci
190    # FFFO koristi 330 (P) - ključne riječi, dijelovi sadržaja
191    # FFPS koristi 330 (NP) - sažetak
192    
193    marc('520','a',
194            regex('s/[\\r\\n]+/. /g',
195                    rec('330')
196            )
197    );
198    
199    # možda i polje 520y - jezik napomene ako je uvijek isti jezik
200    
201  marc_indicators('655', ' ', 4);  marc_indicators('655', ' ', 4);
202  marc('655','a',  marc('655','a',
203            rec('608')
204    );
205    
206    marc_indicators('653', ' ', ' ');
207    marc('653','a',
208          rec('610')          rec('610')
209  );  );
210    
211    # 675 podpolja c, d ... - što s njima ???
212    
213    marc('080','a',
214            rec('675','a')
215    );
216    
217    # 084 je other classification (R)
218    # NSK ga koristi za stručnu oznaku NSK iz polja 681
219    # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
220    #
221    # polje 686 koristi FFPS
222    
223    marc('084','a',
224            rec('686')
225    );
226    
227  marc_indicators('100', 1, ' ');  marc_indicators('100', 1, ' ');
228  marc('100','a',  marc('100','a',
229          join_with(', ',          join_with(', ',
# Line 108  marc('100','a', Line 234  marc('100','a',
234    
235    
236  marc_indicators('700', 1, ' ');  marc_indicators('700', 1, ' ');
237    
238    if ( rec('701') ) {
239    marc('700','4',
240            'aut'
241    );
242    }
243    
244  marc('700','a',  marc('700','a',
245          join_with(', ',          join_with(', ',
246                  rec('701', 'a'),                  rec('701', 'a'),
# Line 115  marc('700','a', Line 248  marc('700','a',
248          )          )
249  );  );
250    
251  if ( rec('701') ) {  marc('700','a',
252          marc('700','4',          join_with(', ',
253                  '070'                  rec('701', 'c'),
254          );                  rec('701', 'd')
255  }          )
256    );
257    
258    marc('700','a',
259            join_with(', ',
260                    rec('701', 'e'),
261                    rec('701', 'f')
262            )
263    );
264    
265    marc('700','a',
266            join_with(', ',
267                    rec('701', 'g'),
268                    rec('701', 'h')
269            )
270    );
271    
272  marc('700','a',  marc('700','a',
273          join_with(', ',          join_with(', ',
# Line 128  marc('700','a', Line 276  marc('700','a',
276          )          )
277  );  );
278    
279  if ( rec('702') ) {  marc('700','a',
280          marc('700','4',          join_with(', ',
281                  '340'                  rec('702','c'),
282          );                  rec('702','d')
283            )
284    );
285    
286    marc('700','a',
287            join_with(', ',
288                    rec('702','e'),
289                    rec('702','f')
290            )
291    );
292    
293    marc('700','a',
294            join_with(', ',
295                    rec('702','g'),
296                    rec('702','h')
297            )
298    );
299    
300    
301    if ( rec('710','f') ) {
302    
303    marc_indicators('111', 2, ' ');
304    marc('111','a',
305            rec('710','a')
306    );
307    
308    marc('111','c',
309            rec('710','e')
310    );
311    
312    marc('111','d',
313            rec('710','f')
314    );
315    
316    marc('111','e',
317            rec('710','b')
318    );
319    
320    marc('111','n',
321            rec('710','d')
322    );
323    
324    
325    } else {
326            
327    marc_indicators('110', 2, ' ');
328    marc('110','a',
329            rec('710','a')
330    );
331    
332    marc('110','c',
333            rec('710','c')
334    );
335    
336  }  }
337    
338    # zapisi za duplanje
339    
340    if ( rec('230') ) {
341    
342    marc_duplicate();
343    
344    marc_remove('245');
345    marc_remove('035','6');
346    
347    marc('245','a',
348            rec('230','a')
349    );
350    
351    if ( ! rec('230','a') ) {
352    
353    marc('245','a',
354            rec('200','a')
355    );
356    
357    }
358    
359    marc('245','b',
360            rec('230','e')
361    );
362    
363    marc('245','c',
364            rec('230','f')
365    );
366    
367    marc('245','n',
368            rec('230','v')
369    );
370    
371    }
372    
373    }

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

  ViewVC Help
Powered by ViewVC 1.1.26