/[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 758 - (show annotations)
Wed Oct 25 11:02:36 2006 UTC (17 years, 6 months ago) by dpavlin
File MIME type: text/plain
File size: 6767 byte(s)
local config

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

  ViewVC Help
Powered by ViewVC 1.1.26