/[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 758 - (hide 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 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     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