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

  ViewVC Help
Powered by ViewVC 1.1.26