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

Annotation of /trunk/conf/normalize/ff-peri.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 890 - (hide annotations)
Thu Sep 6 19:12:31 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 7726 byte(s)
local

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

  ViewVC Help
Powered by ViewVC 1.1.26