/[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

Annotation of /trunk/conf/normalize/mapping.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 629 - (hide annotations)
Tue Sep 5 21:02:39 2006 UTC (17 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 6326 byte(s)
local

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

  ViewVC Help
Powered by ViewVC 1.1.26