/[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 595 - (show 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 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 marc('035','6',
31 join_with(' ',
32 # config('input normalize path'),
33 config('name'),
34 config('input name'),
35 config(),
36 id(),
37 rec('994','a'),
38 rec('000')
39 )
40 );
41
42 # u marc 035a treba dodati System Number -
43 # NSK zapisuje Voyagerov ID (001) - kako ???
44
45 # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
46
47 marc('020','a',
48 rec('010')
49 );
50
51 # u polje 040a mo¾da jo¹ dodati prefiks HR
52 # NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
53
54 marc('040','a',
55 'FFZG'
56 );
57
58 marc('040','b',
59 'hrv'
60 );
61
62 if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
63 marc_indicators('041', 1, ' ');
64 } else {
65 marc_indicators('041', 0, ' ');
66 }
67
68 marc_repeatable_subfield('041','a',
69 rec('101')
70 );
71
72 marc_indicators('245', 0, 0);
73
74 #_debug(3);
75
76 marc_compose('245',
77 'a', rec('200','a'),
78 'h', rec('200','b'),
79 'b',
80 join_with(' : ',
81 rec('200','d'),
82 rec('200','e')
83 ),
84 'c',
85 join_with(' ; ',
86 rec('200','f'),
87 rec('200','g')
88 ),
89 );
90
91 #_debug(0);
92
93 # 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 marc('250','a',
112 rec('205','a')
113 );
114
115 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 );
121
122 marc('300','a',
123 rec('215','a')
124 );
125
126 marc('300','b',
127 rec('215','c')
128 );
129
130 marc('300','c',
131 rec('215','d')
132 );
133
134 marc('300','e',
135 rec('215','e')
136 );
137
138
139 marc_indicators('490', 1, ' ');
140 marc('490','a',
141 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 marc('490','v',
154 join_with(', ',
155 rec('225','v'),
156 rec('225','w')
157 )
158 );
159
160 marc('500','a',
161 rec('300')
162 );
163
164 marc('500','a',
165 rec('314')
166 );
167
168 marc('504','a',
169 rec('320')
170 );
171
172 # 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 regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
183 rec('327')
184 )
185 );
186
187 # 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 marc('520','a',
194 regex('s/[\\r\\n]+/. /g',
195 rec('330')
196 )
197 );
198
199 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
200
201 marc_indicators('655', ' ', 4);
202 marc('655','a',
203 rec('608')
204 );
205
206 marc_indicators('653', ' ', ' ');
207 marc('653','a',
208 rec('610')
209 );
210
211 # 675 podpolja c, d ... - ¹to s njima ???
212
213 marc('080','a',
214 rec('675','a')
215 );
216
217 # 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
223 marc('084','a',
224 rec('686')
225 );
226
227 marc_indicators('100', 1, ' ');
228 marc('100','a',
229 join_with(', ',
230 rec('700', 'a'),
231 rec('700', 'b')
232 )
233 );
234
235
236 marc_indicators('700', 1, ' ');
237
238 if ( rec('701') ) {
239 marc('700','4',
240 'aut'
241 );
242 }
243
244 marc('700','a',
245 join_with(', ',
246 rec('701', 'a'),
247 rec('701', 'b')
248 )
249 );
250
251 marc('700','a',
252 join_with(', ',
253 rec('701', 'c'),
254 rec('701', 'd')
255 )
256 );
257
258 marc('700','a',
259 join_with(', ',
260 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 rec('702','a'),
275 rec('702','b')
276 )
277 );
278
279 marc('700','a',
280 join_with(', ',
281 rec('702','c'),
282 rec('702','d')
283 )
284 );
285
286 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 if ( rec('710','f') ) {
302
303 marc_indicators('111', 2, ' ');
304 marc('111','a',
305 rec('710','a')
306 );
307
308 marc('111','c',
309 rec('710','e')
310 );
311
312 marc('111','d',
313 rec('710','f')
314 );
315
316 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 }
337
338 # zapisi za duplanje
339
340 if ( rec('230') ) {
341
342 marc_duplicate();
343
344 marc_remove('245');
345 marc_remove('035','6');
346
347 marc('245','a',
348 rec('230','a')
349 );
350
351 if ( ! rec('230','a') ) {
352
353 marc('245','a',
354 rec('200','a')
355 );
356
357 }
358
359 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
373 }

  ViewVC Help
Powered by ViewVC 1.1.26