/[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 722 - (hide annotations)
Fri Sep 29 12:48:07 2006 UTC (17 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 6424 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 dpavlin 722 };
67 dpavlin 549
68 dpavlin 547 marc_repeatable_subfield('041','a',
69 dpavlin 537 rec('101')
70     );
71    
72 dpavlin 722 # marc_indicators('245', 0, 0);
73 dpavlin 537
74 dpavlin 722 if ( rec('700') ) {
75     marc_indicators('245', 1, 0);
76     } else {
77     marc_indicators('245', 0, 0);
78     };
79    
80 dpavlin 591 #_debug(3);
81    
82 dpavlin 583 marc_compose('245',
83 dpavlin 602 'a', suffix(
84     rec('200','b') ? '. ' :
85     rec('200','k') ? ' ; ' :
86     rec('200','d') ? ' = ' :
87     rec('200','e') ? ' : ' :
88     rec('200','f') ? ' / ' :
89     '.',
90     rec('200','a')
91     ),
92 dpavlin 583 'h', rec('200','b'),
93 dpavlin 629 'b',
94     join_with(' ; ',
95     rec('200','k'),
96     ),
97 dpavlin 622 'b', rec('200','d'),
98     'b',
99     join_with(' : ',
100     rec('200','e'),
101     ),
102     'c',
103     join_with(' ; ',
104     rec('200','f'),
105     ),
106 dpavlin 602 # FIXME append to last subfield
107 dpavlin 603 '+', prefix('. ', rec('200','c') ),
108 dpavlin 537 );
109    
110 dpavlin 602
111 dpavlin 591 #_debug(0);
112    
113 dpavlin 602
114 dpavlin 583 # marc('245','a',
115     # rec('200','a')
116     # );
117     #
118     # marc('245','b',
119     # join_with(' : ',
120     # rec('200','d'),
121     # rec('200','e')
122     # )
123     # );
124     #
125     # marc('245','c',
126     # join_with(' ; ',
127     # rec('200','f'),
128     # rec('200','g')
129     # )
130     # );
131    
132 dpavlin 547 marc('250','a',
133 dpavlin 537 rec('205','a')
134     );
135    
136 dpavlin 602 # FIXME ponovljiva potpolja u originalnom redosljedu
137     #
138 dpavlin 604 marc_original_order('260', '210');
139 dpavlin 602
140 dpavlin 612 # marc('260','a',
141     # rec('210','a'),
142     # );
143     #
144     # marc('260','b',
145     # rec('210','c'),
146     # );
147 dpavlin 537
148 dpavlin 612 # marc('260','c',
149     # rec('210','d'),
150     # );
151 dpavlin 602
152     # marc_compose('260',
153     # 'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
154     # 'b', first(rec('210','c')),
155     # 'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
156     # 'c', first(rec('210','d')),
157     # );
158    
159 dpavlin 547 marc('300','a',
160 dpavlin 537 rec('215','a')
161     );
162    
163 dpavlin 547 marc('300','b',
164 dpavlin 537 rec('215','c')
165     );
166    
167 dpavlin 547 marc('300','c',
168 dpavlin 537 rec('215','d')
169     );
170    
171 dpavlin 547 marc('300','e',
172 dpavlin 537 rec('215','e')
173     );
174    
175 dpavlin 562
176     marc_indicators('490', 1, ' ');
177 dpavlin 547 marc('490','a',
178 dpavlin 602 join_with(' : ',
179 dpavlin 537 rec('225','a'),
180 dpavlin 602 join_with(" = ",
181 dpavlin 537 rec('225','d'),
182     join_with(" / ",
183     rec('225','e'),
184     rec('225','f')
185     )
186     )
187     )
188     );
189    
190 dpavlin 547 marc('490','v',
191 dpavlin 602 # join2_with(225, 'v', ' , ', 225,'w');
192 dpavlin 569 join_with(', ',
193     rec('225','v'),
194     rec('225','w')
195     )
196 dpavlin 537 );
197    
198 dpavlin 547 marc('500','a',
199 dpavlin 537 rec('300')
200     );
201    
202 dpavlin 562 marc('500','a',
203     rec('314')
204     );
205    
206 dpavlin 547 marc('504','a',
207 dpavlin 537 rec('320')
208     );
209    
210 dpavlin 583 # napomene uz konverziju polja sa sadr¾ajem:
211     # NSK konvertira 327 (NP) u 501 (R)
212     # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
213     # standard i validacije dopu¹taju 501 (R) i 505 (R)
214     # FFPS koristi 327 (P)
215     # FFIZ koristi 327
216    
217    
218     marc_indicators('505', '0', ' ');
219     marc('505','a',
220 dpavlin 591 regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
221 dpavlin 583 rec('327')
222     )
223 dpavlin 562 );
224    
225 dpavlin 583 # napomene uz konverziju polja 330:
226     # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
227     # FFIZ koristi 330 (P) - kljuène rijeèi, dijelovi sadr¾aja, sa¾eci
228     # FFFO koristi 330 (P) - kljuène rijeèi, dijelovi sadr¾aja
229     # FFPS koristi 330 (NP) - sa¾etak
230    
231 dpavlin 562 marc('520','a',
232 dpavlin 591 regex('s/[\\r\\n]+/. /g',
233 dpavlin 583 rec('330')
234     )
235 dpavlin 562 );
236    
237     # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
238    
239 dpavlin 547 marc_indicators('655', ' ', 4);
240     marc('655','a',
241 dpavlin 562 rec('608')
242     );
243    
244     marc_indicators('653', ' ', ' ');
245     marc('653','a',
246 dpavlin 537 rec('610')
247     );
248    
249 dpavlin 583 # 675 podpolja c, d ... - ¹to s njima ???
250    
251 dpavlin 562 marc('080','a',
252     rec('675','a')
253     );
254    
255 dpavlin 583 # 084 je other classification (R)
256     # NSK ga koristi za struènu oznaku NSK iz polja 681
257     # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
258     #
259     # polje 686 koristi FFPS
260 dpavlin 562
261     marc('084','a',
262     rec('686')
263     );
264    
265 dpavlin 549 marc_indicators('100', 1, ' ');
266 dpavlin 547 marc('100','a',
267 dpavlin 537 join_with(', ',
268     rec('700', 'a'),
269     rec('700', 'b')
270     )
271     );
272    
273 dpavlin 603 #_debug(2);
274 dpavlin 549
275     marc_indicators('700', 1, ' ');
276 dpavlin 583
277     if ( rec('701') ) {
278     marc('700','4',
279     'aut'
280     );
281     }
282    
283 dpavlin 547 marc('700','a',
284 dpavlin 602 rec('701', 'a'),
285 dpavlin 537 );
286    
287 dpavlin 583 marc('700','a',
288     join_with(', ',
289     rec('701', 'c'),
290     rec('701', 'd')
291     )
292     );
293 dpavlin 537
294 dpavlin 547 marc('700','a',
295 dpavlin 537 join_with(', ',
296 dpavlin 583 rec('701', 'e'),
297     rec('701', 'f')
298     )
299     );
300    
301     marc('700','a',
302     join_with(', ',
303     rec('701', 'g'),
304     rec('701', 'h')
305     )
306     );
307    
308 dpavlin 602
309 dpavlin 583 marc('700','a',
310 dpavlin 602 rec('702','a'),
311 dpavlin 537 );
312    
313 dpavlin 602
314     # ako je u originalu ponovljivo polje treba biti i konvertirano!!
315    
316    
317 dpavlin 583 marc('700','a',
318     join_with(', ',
319     rec('702','c'),
320     rec('702','d')
321     )
322     );
323 dpavlin 562
324 dpavlin 583 marc('700','a',
325     join_with(', ',
326     rec('702','e'),
327     rec('702','f')
328     )
329     );
330    
331     marc('700','a',
332     join_with(', ',
333     rec('702','g'),
334     rec('702','h')
335     )
336     );
337    
338 dpavlin 603 #_debug(0);
339 dpavlin 583
340 dpavlin 602
341 dpavlin 562 if ( rec('710','f') ) {
342    
343     marc_indicators('111', 2, ' ');
344     marc('111','a',
345     rec('710','a')
346     );
347    
348 dpavlin 570 marc('111','c',
349     rec('710','e')
350     );
351    
352     marc('111','d',
353     rec('710','f')
354     );
355    
356 dpavlin 562 marc('111','e',
357     rec('710','b')
358     );
359    
360     marc('111','n',
361     rec('710','d')
362     );
363    
364    
365     } else {
366    
367     marc_indicators('110', 2, ' ');
368     marc('110','a',
369     rec('710','a')
370     );
371    
372     marc('110','c',
373     rec('710','c')
374     );
375    
376 dpavlin 602 };
377 dpavlin 537
378 dpavlin 574
379 dpavlin 602 marc_indicators('740', 0, ' ');
380 dpavlin 629
381     if ( ! rec('464') ) {
382 dpavlin 602 marc('740','a',
383     rec('200','c')
384     );
385    
386 dpavlin 629 marc('740','a',
387     rec('200','k')
388     );
389 dpavlin 602
390 dpavlin 629 } else {
391     marc('740','a',
392     rec('464','a')
393     );
394     };
395 dpavlin 602
396 dpavlin 629
397    
398     ## vi¹erazinci
399    
400     if ( rec('230') ) {
401    
402     marc_duplicate();
403    
404     marc_remove('245');
405     marc_compose('245',
406     'a', suffix(
407     rec('200','b') ? '. ' :
408     rec('200','k') ? ' ; ' :
409     rec('200','d') ? ' = ' :
410     rec('200','e') ? ' : ' :
411     rec('200','f') ? ' / ' :
412     '.',
413     rec('230','a')
414     ),
415     'b',
416     join_with(' ; ',
417     rec('230','k'),
418     ),
419     'b', rec('230','d'),
420     'b',
421     join_with(' : ',
422     rec('230','e'),
423     ),
424     'c',
425     join_with(' ; ',
426     rec('230','f'),
427     ),
428     );
429    
430     marc_remove('260');
431     marc('260','c',
432     rec('250')
433     );
434    
435     marc_remove('300');
436     marc('300','a',
437     rec('260')
438     );
439    
440     marc_remove('490');
441     marc('490','a',
442     rec('270')
443     );
444    
445     marc_remove('500');
446     marc('500','a',
447     rec('280')
448     );
449    
450     marc_remove('020');
451     marc('020','a',
452     rec('290')
453     );
454    
455     marc_indicators('774', 0, ' ');
456     marc('774','6',
457     join_with('',
458     config(),
459     rec('000')
460     )
461     );
462    
463     marc('774','g',
464     rec('230','v')
465     );
466    
467     };
468    
469 dpavlin 583 }

  ViewVC Help
Powered by ViewVC 1.1.26