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

  ViewVC Help
Powered by ViewVC 1.1.26