/[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

Contents of /trunk/conf/normalize/mapping.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 591 - (show annotations)
Sun Jul 9 14:07:10 2006 UTC (17 years, 9 months ago) by dpavlin
File MIME type: text/plain
File size: 4980 byte(s)
local

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

  ViewVC Help
Powered by ViewVC 1.1.26