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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 722 - (show 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 if ( rec('200','a') ) {
2
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, zato ¹to marclint 9 prijavljuje kao gre¹ku
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',
48 rec('10')
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) {
63 marc_indicators('041', 1, ' ');
64 } else {
65 marc_indicators('041', 0, ' ');
66 };
67
68 marc_repeatable_subfield('041','a',
69 rec('101')
70 );
71
72 # marc_indicators('245', 0, 0);
73
74 if ( rec('700') ) {
75 marc_indicators('245', 1, 0);
76 } else {
77 marc_indicators('245', 0, 0);
78 };
79
80 #_debug(3);
81
82 marc_compose('245',
83 '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 'h', rec('200','b'),
93 'b',
94 join_with(' ; ',
95 rec('200','k'),
96 ),
97 '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 # FIXME append to last subfield
107 '+', prefix('. ', rec('200','c') ),
108 );
109
110
111 #_debug(0);
112
113
114 # 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 marc('250','a',
133 rec('205','a')
134 );
135
136 # FIXME ponovljiva potpolja u originalnom redosljedu
137 #
138 marc_original_order('260', '210');
139
140 # marc('260','a',
141 # rec('210','a'),
142 # );
143 #
144 # marc('260','b',
145 # rec('210','c'),
146 # );
147
148 # marc('260','c',
149 # rec('210','d'),
150 # );
151
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 marc('300','a',
160 rec('215','a')
161 );
162
163 marc('300','b',
164 rec('215','c')
165 );
166
167 marc('300','c',
168 rec('215','d')
169 );
170
171 marc('300','e',
172 rec('215','e')
173 );
174
175
176 marc_indicators('490', 1, ' ');
177 marc('490','a',
178 join_with(' : ',
179 rec('225','a'),
180 join_with(" = ",
181 rec('225','d'),
182 join_with(" / ",
183 rec('225','e'),
184 rec('225','f')
185 )
186 )
187 )
188 );
189
190 marc('490','v',
191 # join2_with(225, 'v', ' , ', 225,'w');
192 join_with(', ',
193 rec('225','v'),
194 rec('225','w')
195 )
196 );
197
198 marc('500','a',
199 rec('300')
200 );
201
202 marc('500','a',
203 rec('314')
204 );
205
206 marc('504','a',
207 rec('320')
208 );
209
210 # 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 regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
221 rec('327')
222 )
223 );
224
225 # 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 marc('520','a',
232 regex('s/[\\r\\n]+/. /g',
233 rec('330')
234 )
235 );
236
237 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
238
239 marc_indicators('655', ' ', 4);
240 marc('655','a',
241 rec('608')
242 );
243
244 marc_indicators('653', ' ', ' ');
245 marc('653','a',
246 rec('610')
247 );
248
249 # 675 podpolja c, d ... - ¹to s njima ???
250
251 marc('080','a',
252 rec('675','a')
253 );
254
255 # 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
261 marc('084','a',
262 rec('686')
263 );
264
265 marc_indicators('100', 1, ' ');
266 marc('100','a',
267 join_with(', ',
268 rec('700', 'a'),
269 rec('700', 'b')
270 )
271 );
272
273 #_debug(2);
274
275 marc_indicators('700', 1, ' ');
276
277 if ( rec('701') ) {
278 marc('700','4',
279 'aut'
280 );
281 }
282
283 marc('700','a',
284 rec('701', 'a'),
285 );
286
287 marc('700','a',
288 join_with(', ',
289 rec('701', 'c'),
290 rec('701', 'd')
291 )
292 );
293
294 marc('700','a',
295 join_with(', ',
296 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
309 marc('700','a',
310 rec('702','a'),
311 );
312
313
314 # ako je u originalu ponovljivo polje treba biti i konvertirano!!
315
316
317 marc('700','a',
318 join_with(', ',
319 rec('702','c'),
320 rec('702','d')
321 )
322 );
323
324 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 #_debug(0);
339
340
341 if ( rec('710','f') ) {
342
343 marc_indicators('111', 2, ' ');
344 marc('111','a',
345 rec('710','a')
346 );
347
348 marc('111','c',
349 rec('710','e')
350 );
351
352 marc('111','d',
353 rec('710','f')
354 );
355
356 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 };
377
378
379 marc_indicators('740', 0, ' ');
380
381 if ( ! rec('464') ) {
382 marc('740','a',
383 rec('200','c')
384 );
385
386 marc('740','a',
387 rec('200','k')
388 );
389
390 } else {
391 marc('740','a',
392 rec('464','a')
393 );
394 };
395
396
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 }

  ViewVC Help
Powered by ViewVC 1.1.26