/[webpac2]/trunk/conf/normalize/mapping.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/mapping.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 595 - (hide annotations)
Mon Jul 10 10:16:11 2006 UTC (17 years, 9 months ago) by dpavlin
File MIME type: text/plain
File size: 4974 byte(s)
 r827@llin:  dpavlin | 2006-07-10 12:17:16 +0200
 add config() and id() to WebPAC::Normalize

1 dpavlin 591 if ( rec('200','a') ) {
2    
3 dpavlin 563 # Leader
4 dpavlin 591 #
5     # raspraviti 17,18
6 dpavlin 583
7 dpavlin 591 # u nekim knji¾nicama koristi se 999a i 999b
8 dpavlin 583
9 dpavlin 570 if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
10     marc_leader('05','c');
11     } else {
12     marc_leader('05','n');
13     }
14 dpavlin 563
15 dpavlin 591 marc_leader('06','a');
16     marc_leader('07','m');
17     marc_leader('18','i');
18 dpavlin 563
19 dpavlin 570 if ( rec('230') ) {
20     marc_leader('19','r');
21     }
22    
23    
24 dpavlin 583 # 001 polje dodaje Voyager
25 dpavlin 570
26 dpavlin 583 # polje 035 je u NSK ponovljivo. za¹to ???
27 dpavlin 563
28 dpavlin 591 # privemeno koristimo 0356 umjesto 0359
29 dpavlin 583
30     marc('035','6',
31 dpavlin 591 join_with(' ',
32     # config('input normalize path'),
33 dpavlin 595 config('name'),
34     config('input name'),
35     config(),
36     id(),
37 dpavlin 583 rec('994','a'),
38     rec('000')
39     )
40 dpavlin 537 );
41    
42 dpavlin 583 # u marc 035a treba dodati System Number -
43     # NSK zapisuje Voyagerov ID (001) - kako ???
44    
45 dpavlin 591 # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
46    
47 dpavlin 547 marc('020','a',
48 dpavlin 537 rec('010')
49     );
50    
51 dpavlin 583 # u polje 040a mo¾da jo¹ dodati prefiks HR
52 dpavlin 591 # NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
53 dpavlin 583
54     marc('040','a',
55 dpavlin 591 'FFZG'
56 dpavlin 583 );
57    
58     marc('040','b',
59     'hrv'
60     );
61    
62 dpavlin 549 if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
63     marc_indicators('041', 1, ' ');
64     } else {
65     marc_indicators('041', 0, ' ');
66     }
67    
68 dpavlin 547 marc_repeatable_subfield('041','a',
69 dpavlin 537 rec('101')
70     );
71    
72 dpavlin 547 marc_indicators('245', 0, 0);
73 dpavlin 537
74 dpavlin 591 #_debug(3);
75    
76 dpavlin 583 marc_compose('245',
77     'a', rec('200','a'),
78     'h', rec('200','b'),
79     'b',
80 dpavlin 537 join_with(' : ',
81     rec('200','d'),
82     rec('200','e')
83 dpavlin 583 ),
84     'c',
85 dpavlin 537 join_with(' ; ',
86     rec('200','f'),
87     rec('200','g')
88 dpavlin 583 ),
89 dpavlin 537 );
90    
91 dpavlin 591 #_debug(0);
92    
93 dpavlin 583 # marc('245','a',
94     # rec('200','a')
95     # );
96     #
97     # marc('245','b',
98     # join_with(' : ',
99     # rec('200','d'),
100     # rec('200','e')
101     # )
102     # );
103     #
104     # marc('245','c',
105     # join_with(' ; ',
106     # rec('200','f'),
107     # rec('200','g')
108     # )
109     # );
110    
111 dpavlin 547 marc('250','a',
112 dpavlin 537 rec('205','a')
113     );
114    
115 dpavlin 562 marc_compose('260',
116     'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
117     'b', first(rec('210','c')),
118     'a', split_rec_on('210','a', qr/\s*;\s*/, 2),
119     'c', first(rec('210','d')),
120 dpavlin 537 );
121    
122 dpavlin 547 marc('300','a',
123 dpavlin 537 rec('215','a')
124     );
125    
126 dpavlin 547 marc('300','b',
127 dpavlin 537 rec('215','c')
128     );
129    
130 dpavlin 547 marc('300','c',
131 dpavlin 537 rec('215','d')
132     );
133    
134 dpavlin 547 marc('300','e',
135 dpavlin 537 rec('215','e')
136     );
137    
138 dpavlin 562
139     marc_indicators('490', 1, ' ');
140 dpavlin 547 marc('490','a',
141 dpavlin 537 join_with(' = ',
142     rec('225','a'),
143     join_with(" : ",
144     rec('225','d'),
145     join_with(" / ",
146     rec('225','e'),
147     rec('225','f')
148     )
149     )
150     )
151     );
152    
153 dpavlin 547 marc('490','v',
154 dpavlin 569 join_with(', ',
155     rec('225','v'),
156     rec('225','w')
157     )
158 dpavlin 537 );
159    
160 dpavlin 547 marc('500','a',
161 dpavlin 537 rec('300')
162     );
163    
164 dpavlin 562 marc('500','a',
165     rec('314')
166     );
167    
168 dpavlin 547 marc('504','a',
169 dpavlin 537 rec('320')
170     );
171    
172 dpavlin 583 # napomene uz konverziju polja sa sadr¾ajem:
173     # NSK konvertira 327 (NP) u 501 (R)
174     # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
175     # standard i validacije dopu¹taju 501 (R) i 505 (R)
176     # FFPS koristi 327 (P)
177     # FFIZ koristi 327
178    
179    
180     marc_indicators('505', '0', ' ');
181     marc('505','a',
182 dpavlin 591 regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
183 dpavlin 583 rec('327')
184     )
185 dpavlin 562 );
186    
187 dpavlin 583 # napomene uz konverziju polja 330:
188     # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
189     # FFIZ koristi 330 (P) - kljuène rijeèi, dijelovi sadr¾aja, sa¾eci
190     # FFFO koristi 330 (P) - kljuène rijeèi, dijelovi sadr¾aja
191     # FFPS koristi 330 (NP) - sa¾etak
192    
193 dpavlin 562 marc('520','a',
194 dpavlin 591 regex('s/[\\r\\n]+/. /g',
195 dpavlin 583 rec('330')
196     )
197 dpavlin 562 );
198    
199     # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
200    
201 dpavlin 547 marc_indicators('655', ' ', 4);
202     marc('655','a',
203 dpavlin 562 rec('608')
204     );
205    
206     marc_indicators('653', ' ', ' ');
207     marc('653','a',
208 dpavlin 537 rec('610')
209     );
210    
211 dpavlin 583 # 675 podpolja c, d ... - ¹to s njima ???
212    
213 dpavlin 562 marc('080','a',
214     rec('675','a')
215     );
216    
217 dpavlin 583 # 084 je other classification (R)
218     # NSK ga koristi za struènu oznaku NSK iz polja 681
219     # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
220     #
221     # polje 686 koristi FFPS
222 dpavlin 562
223     marc('084','a',
224     rec('686')
225     );
226    
227 dpavlin 549 marc_indicators('100', 1, ' ');
228 dpavlin 547 marc('100','a',
229 dpavlin 537 join_with(', ',
230     rec('700', 'a'),
231     rec('700', 'b')
232     )
233     );
234    
235 dpavlin 549
236     marc_indicators('700', 1, ' ');
237 dpavlin 583
238     if ( rec('701') ) {
239     marc('700','4',
240     'aut'
241     );
242     }
243    
244 dpavlin 547 marc('700','a',
245 dpavlin 537 join_with(', ',
246     rec('701', 'a'),
247     rec('701', 'b')
248     )
249     );
250    
251 dpavlin 583 marc('700','a',
252     join_with(', ',
253     rec('701', 'c'),
254     rec('701', 'd')
255     )
256     );
257 dpavlin 537
258 dpavlin 547 marc('700','a',
259 dpavlin 537 join_with(', ',
260 dpavlin 583 rec('701', 'e'),
261     rec('701', 'f')
262     )
263     );
264    
265     marc('700','a',
266     join_with(', ',
267     rec('701', 'g'),
268     rec('701', 'h')
269     )
270     );
271    
272     marc('700','a',
273     join_with(', ',
274 dpavlin 537 rec('702','a'),
275     rec('702','b')
276     )
277     );
278    
279 dpavlin 583 marc('700','a',
280     join_with(', ',
281     rec('702','c'),
282     rec('702','d')
283     )
284     );
285 dpavlin 562
286 dpavlin 583 marc('700','a',
287     join_with(', ',
288     rec('702','e'),
289     rec('702','f')
290     )
291     );
292    
293     marc('700','a',
294     join_with(', ',
295     rec('702','g'),
296     rec('702','h')
297     )
298     );
299    
300    
301 dpavlin 562 if ( rec('710','f') ) {
302    
303     marc_indicators('111', 2, ' ');
304     marc('111','a',
305     rec('710','a')
306     );
307    
308 dpavlin 570 marc('111','c',
309     rec('710','e')
310     );
311    
312     marc('111','d',
313     rec('710','f')
314     );
315    
316 dpavlin 562 marc('111','e',
317     rec('710','b')
318     );
319    
320     marc('111','n',
321     rec('710','d')
322     );
323    
324    
325     } else {
326    
327     marc_indicators('110', 2, ' ');
328     marc('110','a',
329     rec('710','a')
330     );
331    
332     marc('110','c',
333     rec('710','c')
334     );
335    
336 dpavlin 537 }
337    
338 dpavlin 562 # zapisi za duplanje
339 dpavlin 574
340     if ( rec('230') ) {
341    
342     marc_duplicate();
343    
344 dpavlin 580 marc_remove('245');
345 dpavlin 591 marc_remove('035','6');
346 dpavlin 580
347 dpavlin 574 marc('245','a',
348     rec('230','a')
349     );
350    
351 dpavlin 583 if ( ! rec('230','a') ) {
352    
353     marc('245','a',
354     rec('200','a')
355     );
356    
357     }
358    
359 dpavlin 574 marc('245','b',
360     rec('230','e')
361     );
362    
363     marc('245','c',
364     rec('230','f')
365     );
366    
367     marc('245','n',
368     rec('230','v')
369     );
370    
371     }
372 dpavlin 583
373     }

  ViewVC Help
Powered by ViewVC 1.1.26