/[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 773 - (hide 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 dpavlin 758 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 dpavlin 773 marc_leader('07','s');
19 dpavlin 758 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 dpavlin 773 ' ',
106 dpavlin 758 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 dpavlin 773
131 dpavlin 758 );
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 dpavlin 773 rec('215','c') ? ' : ' :
159     rec('215','d') ? ' ; ' :
160     rec('215','e') ? ' + ' :
161     ' ',
162 dpavlin 758 rec('215','a')
163     )
164     );
165    
166     marc('300','b',
167     suffix(
168 dpavlin 773 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
169     ( rec('215','c') && rec('215','e') ) ? ' + ' :
170     ' ',
171 dpavlin 758 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 dpavlin 773 'nsk','baza',
449 dpavlin 758 sub { rec('200','a') },
450     )
451     );
452    
453 dpavlin 773 marc('500','a',
454     lookup(
455     sub { rec('306','a') },
456     'nsk','baza',
457     sub { rec('200','a') },
458     )
459     );
460 dpavlin 758
461 dpavlin 773 marc('500','a',
462     lookup(
463     sub { rec('314','a') },
464     'nsk','baza',
465     sub { rec('200','a') },
466     )
467     );
468 dpavlin 758
469 dpavlin 773 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 dpavlin 758 }

  ViewVC Help
Powered by ViewVC 1.1.26