/[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 880 - (hide annotations)
Thu Aug 23 19:23:53 2007 UTC (16 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 8206 byte(s)
more local changes

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     ## 008
29     marc_fixed('008','00', '070707');
30     marc_fixed('008','06', '|'); # Type of date/Publication status
31     marc_fixed('008','07', '|'); # Date 1
32     marc_fixed('008','08', '|');
33     marc_fixed('008','09', '|');
34     marc_fixed('008','10', '|');
35     marc_fixed('008','11', '|'); # Date 2
36     marc_fixed('008','12', '|');
37     marc_fixed('008','13', '|');
38     marc_fixed('008','14', '|');
39     marc_fixed('008','15', # Place of publication, production, or execution
40     lookup(
41     sub { rec('102','a') },
42     'nsk','bbaza',
43     sub { rec('011','a') },
44     sub { rec('11') },
45     ),
46     );
47     marc_fixed('008','18', '');
48     marc_fixed('008','35', # Language
49     rec('101')
50     );
51     marc_fixed('008','39','|'); # Cataloging source
52    
53     ## 022
54    
55     if ( ! rec('225','a') ) {
56     marc('022','a',
57     rec('11')
58     );
59     }
60    
61 dpavlin 758 # privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
62    
63     marc('035','6',
64 dpavlin 880 join_with('',
65     uc( config() ),
66     ' P',
67 dpavlin 758 rec('000')
68     )
69     );
70    
71     # u marc 035a treba dodati System Number -
72     # NSK zapisuje Voyagerov ID (001) - kako ???
73    
74     # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
75    
76    
77     # u polje 040a mo¾da jo¹ dodati prefiks HR
78     # NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
79    
80     marc('040','a',
81     'HR FFZG'
82     );
83    
84     marc('040','b',
85     'hrv'
86     );
87    
88     marc('040','e',
89     'HR PPIAK'
90     );
91    
92     # if (rec('300') && first(rec('300')) =~ m/Prijevod/) {
93     # marc_indicators('041', 1, ' ');
94     # } else {
95     # marc_indicators('041', 0, ' ');
96     # }
97    
98     ## naci primjer u NSK
99    
100     marc_repeatable_subfield('041','a',
101     rec('101')
102     );
103    
104    
105     if ( ( rec('200','a') =~ m/^Die /) ||
106     ( rec('200','a') =~ m/^Das /) ||
107     ( rec('200','a') =~ m/^The /) ) {
108     marc_indicators('245', 0, 4);
109     } else {
110     marc_indicators('245', 0, 0);
111     }
112    
113     #_debug(3);
114    
115 dpavlin 880 marc('044','a',
116     lookup(
117     sub { rec('102','a') },
118     'nsk','bbaza',
119     sub { rec('011','a') },
120     sub { rec('11') },
121     ),
122     );
123    
124     marc('080','a',
125     rec('675','a')
126     );
127    
128     marc_indicators('100', 1, ' ');
129     marc('100','a',
130     join_with(', ',
131     rec('700', 'a'),
132     rec('700', 'b')
133     )
134     );
135    
136     marc_indicators('110', 2, ' ');
137     marc('110','a',
138     rec('710','a')
139     );
140    
141     marc('110','c',
142     rec('710','c')
143     );
144    
145     marc('222','a',
146     lookup(
147     sub { rec('530','a') },
148     'nsk','bbaza',
149     sub { rec('011','a') },
150     sub { rec('11') },
151     )
152     );
153    
154     ### 245 indikatori
155    
156 dpavlin 758 marc_compose('245',
157     'a', suffix(
158 dpavlin 880 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :
159     ( rec('200','d') ) ? ' = ' :
160     ( rec('200','e') ) ? ' : ' :
161     ( rec('200','k') ) ? ' ; ' :
162     '',
163     rec('200','a'),
164 dpavlin 758 ),
165     'b', suffix(
166 dpavlin 880 ( rec('200','d') && rec('200','f') ) ? ' / ' :
167     ( rec('200','d') && rec('200','c') ) ? '. ' :
168     '',
169     rec('200','d'),
170 dpavlin 758 ),
171     'b', suffix(
172 dpavlin 880 ( rec('200','e') && rec('200','f') ) ? ' / ' :
173     ( rec('200','e') && rec('200','c') ) ? '. ' :
174     '',
175     rec('200','e'),
176 dpavlin 758 ),
177     'b', suffix(
178 dpavlin 880 ( rec('200','k') && rec('200','f') ) ? ' / ' :
179     ( rec('200','k') && rec('200','c') ) ? '. ' :
180     '',
181     rec('200','k'),
182 dpavlin 758 ),
183 dpavlin 880 'c', suffix(
184     ( rec('200','f') && rec('200','c') ) ? '. ' :
185     '',
186     rec('200','f'),
187 dpavlin 758 ),
188 dpavlin 880 '+', rec('200','c'),
189     );
190 dpavlin 773
191 dpavlin 880 ## 246
192    
193     marc_indicators('246', 1, 3);
194    
195     marc('246','a',
196     rec('532')
197 dpavlin 758 );
198    
199     #_debug(0);
200    
201     marc('250','a',
202     suffix(
203     rec('205','f') ? ' / ' :
204     ' '.
205     rec('205','a')
206     )
207     );
208    
209     marc('250','b',
210     rec('205','f')
211     );
212    
213     # ponovljiva potpolja u originalnom redosljedu
214     #
215     marc_original_order('260', '210');
216    
217    
218     # provjeriti interpunkcije !!
219     # u NSK nesto ne stima
220    
221     marc('300','a',
222     suffix(
223 dpavlin 773 rec('215','c') ? ' : ' :
224     rec('215','d') ? ' ; ' :
225     rec('215','e') ? ' + ' :
226     ' ',
227 dpavlin 758 rec('215','a')
228     )
229     );
230    
231     marc('300','b',
232     suffix(
233 dpavlin 773 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
234     ( rec('215','c') && rec('215','e') ) ? ' + ' :
235     ' ',
236 dpavlin 758 rec('215','c')
237     )
238     );
239    
240     marc('300','c',
241     suffix(
242     rec('215','e') ? ' + ' :
243     ' ',
244     rec('215','d')
245     )
246     );
247    
248     marc('300','e',
249     rec('215','e')
250     );
251    
252 dpavlin 880 marc('310','a',
253     lookup(
254     sub { rec('326','a') },
255     'nsk','bbaza',
256     sub { rec('011','a') },
257     sub { rec('11') },
258     )
259     );
260    
261     marc('321','a',
262     rec('326')
263     );
264 dpavlin 758
265 dpavlin 880 marc_indicators('362', 0, ' ');
266 dpavlin 758
267 dpavlin 880 marc('362','a',
268     lookup(
269     sub { rec('207','a') },
270     'nsk','bbaza',
271     sub { rec('011','a') },
272     sub { rec('11') },
273     ),
274 dpavlin 758 );
275    
276 dpavlin 880
277     marc('500','a',
278     lookup(
279     sub { rec('300','a') },
280     'nsk','bbaza',
281     sub { rec('011','a') },
282     sub { rec('11') },
283     )
284 dpavlin 758 );
285 dpavlin 880
286     marc('500','a',
287     lookup(
288     sub { rec('302','a') },
289     'nsk','bbaza',
290     sub { rec('011','a') },
291     sub { rec('11') },
292     )
293     );
294    
295     marc('504','a',
296     lookup(
297     sub { rec('320','a') },
298     'nsk','bbaza',
299     sub { rec('011','a') },
300     sub { rec('11') },
301     )
302     );
303 dpavlin 758
304 dpavlin 880 marc('562','a',
305     lookup(
306     sub { rec('316','a') },
307     'nsk','bbaza',
308     sub { rec('011','a') },
309     sub { rec('11') },
310     )
311 dpavlin 758 );
312 dpavlin 880
313 dpavlin 758
314     #marc('500','a',
315     # rec('300')
316     #);
317     #
318     #marc('500','a',
319     # rec('314')
320     #);
321     #
322     #marc('504','a',
323     # rec('320')
324     #);
325    
326     ## napomene uz konverziju polja 327 (sadrzaj):
327     # NSK konvertira 327 (NP) u 501 (R)
328     # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
329     # standard i validacije dopu¹taju 501 (R) i 505 (R)
330    
331     ## FFPS 327 - sadrzaj
332     if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
333     marc_indicators('505', '1', ' ');
334     marc('505','a',
335     regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
336     rec('327')
337     )
338     );
339     }
340    
341    
342     ## napomene uz konverziju polja 330:
343     # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
344    
345    
346     # FFPS 330 (NP) - sa¾etak
347     if ( config() =~ m/ffps/ ) {
348     marc('520','a',
349     regex('s/[\\r\\n]+/. /g',
350     rec('330')
351     )
352     );
353     }
354    
355     # FFTU 330 - ???
356     if ( config() =~ m/fftu/ ) {
357     marc('520','a',
358     rec('330')
359     );
360     }
361    
362    
363     # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
364    
365 dpavlin 880
366     ### 534
367    
368     marc('534','a',
369     rec('324')
370 dpavlin 758 );
371    
372 dpavlin 880
373 dpavlin 758 marc_indicators('655', ' ', 4);
374     marc('655','a',
375     rec('608')
376     );
377    
378     marc_indicators('653', 0, ' ');
379     marc('653','a',
380     rec('610')
381     );
382    
383     # 675 podpolja c, d ... - ¹to s njima ???
384    
385     # 084 je other classification (R)
386     # NSK ga koristi za struènu oznaku NSK iz polja 681
387     # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
388     #
389    
390    
391    
392     #_debug(2);
393    
394     marc_indicators('700', 1, ' ');
395    
396     if ( rec('701') ) {
397     marc('700','4',
398     'aut'
399     );
400     }
401    
402     marc('700','a',
403     join_with(', ',
404     rec('701', 'a'),
405     rec('701', 'b')
406     )
407     );
408    
409     marc('700','a',
410     join_with(', ',
411     rec('701', 'c'),
412     rec('701', 'd')
413     )
414     );
415    
416     marc('700','a',
417     join_with(', ',
418     rec('701', 'e'),
419     rec('701', 'f')
420     )
421     );
422    
423     marc('700','a',
424     join_with(', ',
425     rec('701', 'g'),
426     rec('701', 'h')
427     )
428     );
429    
430    
431     marc('700','a',
432     rec('702','a'),
433     );
434    
435    
436     # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
437    
438    
439     marc('700','a',
440     join_with(', ',
441     rec('702','c'),
442     rec('702','d')
443     )
444     );
445    
446     marc('700','a',
447     join_with(', ',
448     rec('702','e'),
449     rec('702','f')
450     )
451     );
452    
453     marc('700','a',
454     join_with(', ',
455     rec('702','g'),
456     rec('702','h')
457     )
458     );
459    
460    
461     #_debug(0);
462    
463    
464    
465     marc_indicators('740', 0, ' ');
466    
467     if ( ! rec('464') ) {
468     marc('740','a',
469     rec('200','c')
470     );
471    
472     marc('740','a',
473     rec('200','k')
474     );
475    
476     } else {
477     marc('740','a',
478     rec('464','a')
479     );
480     };
481    
482 dpavlin 880 marc_indicators('770', 0, ' ');
483     marc('770','t',
484     rec('430','a'),
485 dpavlin 758 );
486    
487 dpavlin 880 marc('770','x',
488     rec('430','b'),
489 dpavlin 773 );
490 dpavlin 758
491 dpavlin 880 if ( rec('225','a') ) {
492    
493     marc_indicators('773', 0, ' ');
494     marc('773','g',
495     rec('207','a')
496 dpavlin 773 );
497 dpavlin 758
498 dpavlin 880 marc('773','t',
499     join_with(' : ',
500     rec('225','a'),
501     rec('225','e')
502     ),
503 dpavlin 773 );
504    
505 dpavlin 880 marc('773','w',
506 dpavlin 773 lookup(
507 dpavlin 880 sub {
508     join_with('',
509     uc( config() ),
510     ' P',
511     rec('000')
512     ),
513     },
514     'ffsf','peri',
515 dpavlin 773 sub { rec('200','a') },
516 dpavlin 880 sub { rec('225','a') },
517     )
518 dpavlin 773 );
519    
520 dpavlin 880 }
521    
522     marc('852','j',
523     join_with(' ',
524     rec('990')
525 dpavlin 773 )
526     );
527    
528 dpavlin 880 marc('876','a',
529     rec('991','a')
530     );
531    
532     marc('992','a',
533     join_with(' ; ',
534     rec('992')
535     )
536     );
537    
538    
539    
540     marc('997','a',
541     sort(
542     lookup(
543     sub { rec('001') },
544     'nsk','bbaza',
545     sub { rec('011','a') },
546     sub { rec('11') },
547     )
548     )
549     );
550    
551     marc('998','a',
552     sort(
553     lookup(
554     sub { rec('001') },
555     'nsk','bbaza',
556     sub { first(rec('200','a')) . first(rec('200','e')) },
557     sub { rec('200','a') . rec('200','e') },
558     )
559     )
560     );
561    
562     marc('998','a',
563     sort(
564     lookup(
565     sub { rec('001') },
566     'nsk','bbaza',
567     sub { first(rec('200','a')) },
568     sub { rec('200','a') },
569     )
570     )
571     );
572    
573 dpavlin 758 }

  ViewVC Help
Powered by ViewVC 1.1.26