/[webpac2]/trunk/conf/normalize/ff-peri.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/ff-peri.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 773 - (show annotations)
Fri Nov 3 20:41:12 2006 UTC (17 years, 5 months ago) by dpavlin
File MIME type: text/plain
File size: 6856 byte(s)
local

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

  ViewVC Help
Powered by ViewVC 1.1.26