/[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 903 - (show annotations)
Wed Oct 10 21:00:48 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 7891 byte(s)
local configuration

1 if ( rec('200','a') ) {
2
3
4 # LEADER
5 # raspraviti 17,18
6
7 marc_leader('05','n');
8 marc_leader('06','a');
9
10 if ( rec('225','a') ) {
11 marc_leader('07','b');
12 } else {
13 marc_leader('07','s');
14 }
15
16 marc_leader('18','i');
17
18 if ( rec('225','a') ) {
19 marc_leader('19','r');
20 }
21
22 # 001 polje - Voyager
23
24 # 007
25 marc_fixed('007',00,'ta');
26
27
28 ## 008 - All materials
29 marc_fixed('008','00', '070707'); # Date entered on file
30 marc_fixed('008','06', 't'); # Type of date/Publication status
31 if ( rec('11') ) {
32 if ( my $lookup = lookup(
33 sub { rec('210','d') },
34 'nsk','bbaza',
35 sub { first( rec('011','a') ) },
36 sub { rec('11') },
37 )
38 ) {
39 marc_fixed('008','07', $lookup);
40 } else {
41 marc_fixed('008','07',
42 rec('210','d')
43 );
44 }
45 } # Date 1
46
47 # marc_fixed('008','11', ' '); # Date 2
48 marc_fixed('008','15',
49 lc ( rec('102') )
50 ); # Place of publication, production, or execution
51 #marc_fixed('008','35',
52 # rec('101')
53 #); # Language
54 marc_fixed('008','38', '|'); # Modified record
55 marc_fixed('008','39','d'); # Cataloging source
56
57
58 ## 008 - Continuing resources
59 marc_fixed('008','18', '|'); # Frequency - ovo treba popuniti iz polja 326
60 marc_fixed('008','19', '|'); # Regularity
61 marc_fixed('008','21', 'p'); # Type of continuing resource
62 marc_fixed('008','29', '|'); # Conference publication
63 marc_fixed('008','33', '|'); # Original alphabet or script of title
64 marc_fixed('008','34', '|'); # Entry convention
65
66
67 ## 022
68 # if ( ! rec('225','a') ) {
69 # marc('022','a',
70 # rec('11')
71 # );
72 # }
73 #
74
75 ## 022
76 marc('022','a',
77 rec('11')
78 );
79
80
81 # privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
82
83 marc('035','6',
84 join_with('',
85 uc( config() ),
86 ' P',
87 rec('000')
88 )
89 );
90
91
92 marc('040','a',
93 'HR FFZG'
94 );
95
96 marc('040','b',
97 'hrv'
98 );
99
100 marc('040','e',
101 'HR PPIAK'
102 );
103
104 marc_indicators('041', 0, ' ');
105
106 marc_repeatable_subfield('041','a',
107 rec('101')
108 );
109
110
111 #_debug(3);
112
113 ## 044 - zemlja izdavanja
114
115 if ( rec('11') ) {
116 if ( my $lookup = lookup(
117 sub { rec('102','a') },
118 'nsk','bbaza',
119 sub { first( rec('011','a') ) },
120 sub { rec('11') },
121 )
122 ) {
123 marc('044','a', $lookup );
124 } else {
125 marc('044','a',
126 rec('102')
127 );
128 }
129 }
130
131 marc('080','a',
132 rec('675','a')
133 );
134
135 marc_indicators('210', '1',' ');
136
137 if ( rec('11') ) {
138 marc('210','a',
139 lookup(
140 sub { rec('531','a') },
141 'nsk','bbaza',
142 sub { rec('011','a') },
143 sub { rec('11') },
144 )
145 );
146 }
147
148 marc_indicators('222',' ','0'); # drugi indikator prema èlanu
149 if ( rec('11') ) {
150 marc('222','a',
151 lookup(
152 sub { rec('530','a') },
153 'nsk','bbaza',
154 sub { rec('011','a') },
155 sub { rec('11') },
156 )
157 );
158 }
159
160 ### 245 indikatori
161
162 if ( ( rec('200','a') =~ m/^Die /) ||
163 ( rec('200','a') =~ m/^Das /) ||
164 ( rec('200','a') =~ m/^The /) ) {
165 marc_indicators('245', 0, 4);
166 } else {
167 marc_indicators('245', 0, 0);
168 }
169
170
171 ## 245
172 marc_compose('245',
173 'a', suffix(
174 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :
175 ( rec('200','d') ) ? ' = ' :
176 ( rec('200','e') ) ? ' : ' :
177 ( rec('200','k') ) ? ' ; ' :
178 '',
179 rec('200','a'),
180 ),
181 'b', suffix(
182 ( rec('200','d') && rec('200','f') ) ? ' / ' :
183 ( rec('200','d') && rec('200','c') ) ? '. ' :
184 '',
185 rec('200','d'),
186 ),
187 'b', suffix(
188 ( rec('200','e') && rec('200','f') ) ? ' / ' :
189 ( rec('200','e') && rec('200','c') ) ? '. ' :
190 '',
191 rec('200','e'),
192 ),
193 'b', suffix(
194 ( rec('200','k') && rec('200','f') ) ? ' / ' :
195 ( rec('200','k') && rec('200','c') ) ? '. ' :
196 '',
197 rec('200','k'),
198 ),
199 'c', suffix(
200 ( rec('200','f') && rec('200','c') ) ? '. ' :
201 '',
202 rec('200','f'),
203 ),
204 '+', rec('200','c'),
205 );
206
207 ## 246
208 if ( ( rec('200','a') =~ m/^Die /) ||
209 ( rec('200','a') =~ m/^Das /) ||
210 ( rec('200','a') =~ m/^The /) ) {
211 marc_indicators('246', 0, 4);
212 } else {
213 marc_indicators('246', 0, 0);
214 }
215
216
217 if ( rec('532') ) {
218 marc('246','a',
219 rec('532')
220 );
221 }
222
223 #else {
224 # marc('246','a',
225 # lookup(
226 # sub { rec('532','a') },
227 # 'nsk','bbaza',
228 # sub { rec('011','a') },
229 # sub { rec('11') },
230 # )
231 # );
232 #}
233
234 #_debug(0);
235
236
237 ## 260 - izdavanje
238
239 # if ( rec('11') ) {
240 # marc_repeatable_subfield('260','a',
241 # lookup(
242 # sub { rec('210','a') },
243 # 'nsk','bbaza',
244 # sub { rec('011','a') },
245 # sub { rec('11') },
246 # )
247 # );
248 # marc_repeatable_subfield('260','b',
249 # lookup(
250 # sub { rec('210','c') },
251 # 'nsk','bbaza',
252 # sub { rec('011','a') },
253 # sub { rec('11') },
254 # )
255 # );
256 # marc('260','c',
257 # lookup(
258 # sub { rec('210','d') },
259 # 'nsk','bbaza',
260 # sub { rec('011','a') },
261 # sub { rec('11') },
262 # )
263 # );
264 # } else {
265 # marc_original_order('260', '210');
266 # }
267
268 marc_original_order('260','210');
269
270 # provjeriti interpunkcije !!
271 # u NSK nesto ne stima
272
273 marc('300','a',
274 suffix(
275 ( rec('215','a') && rec('215','c') ) ? ' : ' :
276 ( rec('215','a') && rec('215','d') ) ? ' ; ' :
277 ( rec('215','a') && rec('215','e') ) ? ' + ' :
278 ' ',
279 rec('215','a')
280 )
281 );
282
283 marc('300','b',
284 suffix(
285 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
286 ( rec('215','c') && rec('215','e') ) ? ' + ' :
287 ' ',
288 rec('215','c')
289 )
290 );
291
292 marc('300','c',
293 suffix(
294 rec('215','e') ? ' + ' :
295 ' ',
296 rec('215','d')
297 )
298 );
299
300 marc('300','e',
301 rec('215','e')
302 );
303
304 ## 310 - current stated publication frequency
305 marc('310','a',
306 rec('326')
307 );
308
309 ## 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
310 # marc('321','a',
311 # ovo bi trebalo procitati iz NSK konvertiranih podataka
312 #);
313
314 marc_indicators('362', 0, ' ');
315
316
317 ## 362
318 if ( rec('207','a') ) {
319 marc('362','a',
320 rec('207','a'),
321 );
322 } else {
323 if ( rec('11') ) {
324 marc('362','a',
325 lookup(
326 sub { rec('207','a') },
327 'nsk','bbaza',
328 sub { first( rec('011','a') ) },
329 sub { rec('11') },
330 )
331 );
332 }
333 }
334
335 ## 5xx
336 marc('500','a',
337 rec('300','a'),
338 );
339
340
341 marc('534','a',
342 rec('324')
343 );
344
345 if ( rec('11') ) {
346 marc('546','a',
347 lookup(
348 sub { rec('302','a') },
349 'nsk','bbaza',
350 sub { rec('011','a') },
351 sub { rec('11') },
352 )
353 );
354
355 marc('550','a',
356 lookup(
357 sub { rec('314','a') },
358 'nsk','bbaza',
359 sub { rec('011','a') },
360 sub { rec('11') },
361 )
362 );
363
364 marc('555','a',
365 lookup(
366 sub { rec('320','a') },
367 'nsk','bbaza',
368 sub { rec('011','a') },
369 sub { rec('11') },
370 )
371 );
372
373
374 # marc('562','a',
375 # lookup(
376 # sub { rec('316','a') },
377 # 'nsk','bbaza',
378 # sub { rec('011','a') },
379 # sub { rec('11') },
380 # )
381 # );
382 }
383
384 marc_indicators('653', 0, ' ');
385 marc('653','a',
386 rec('610')
387 );
388
389 # marc_indicators('655', ' ', 4);
390 # marc('655','a',
391 # lookup(
392 # sub { rec('608','a') },
393 # 'nsk','bbaza',
394 # sub { rec('011','a') },
395 # sub { rec('11') },
396 # )
397 # );
398
399
400 #_debug(2);
401
402 marc_indicators('700', 1, ' ');
403
404 marc('700','a',
405 rec('702','a'),
406 );
407
408 marc('700','a',
409 join_with(', ',
410 rec('702','c'),
411 rec('702','d')
412 )
413 );
414
415
416 #_debug(0);
417
418 marc_indicators('710', '2', ' ');
419 marc('710','a',
420 rec('710','a')
421 );
422
423
424 marc_indicators('770', 0, ' ');
425 marc('770','t',
426 rec('421','a'),
427 );
428
429 marc_indicators('772', 0, ' ');
430 marc('772','t',
431 rec('422','a'),
432 );
433
434 marc_indicators('777', 0, ' ');
435 marc('777','t',
436 rec('423','a'),
437 );
438
439 marc_indicators('780', 0, 0);
440 marc('780','t',
441 rec('430','a'),
442 );
443
444 marc_indicators('785', 0, 0);
445 marc('785','t',
446 rec('440','a'),
447 );
448
449 marc('852','j',
450 join_with(' ',
451 rec('990')
452 )
453 );
454
455 marc('876','a',
456 rec('991','a')
457 );
458
459 marc('992','a',
460 join_with(' ; ',
461 rec('992')
462 )
463 );
464
465
466 # marc('997','a',
467 # sort(
468 # lookup(
469 # sub { rec('001') },
470 # 'nsk','bbaza',
471 # sub { rec('011','a') },
472 # sub { rec('11') },
473 # )
474 # )
475 # );
476 #
477 # marc('998','a',
478 # sort(
479 # lookup(
480 # sub { rec('001') },
481 # 'nsk','bbaza',
482 # sub { first(rec('200','a')) . first(rec('200','e')) },
483 # sub { rec('200','a') . rec('200','e') },
484 # )
485 # )
486 # );
487 #
488 # marc('998','a',
489 # sort(
490 # lookup(
491 # sub { rec('001') },
492 # 'nsk','bbaza',
493 # sub { first(rec('200','a')) },
494 # sub { rec('200','a') },
495 # )
496 # )
497 # );
498
499 }

  ViewVC Help
Powered by ViewVC 1.1.26