/[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 583 - (hide annotations)
Wed Jul 5 00:12:08 2006 UTC (17 years, 9 months ago) by dpavlin
File MIME type: text/plain
File size: 4655 byte(s)
rec and join_with now return '' if there are no results, so they are safe to
use inside marc_compose

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

  ViewVC Help
Powered by ViewVC 1.1.26