/[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 583 - (show annotations)
Wed Jul 5 00:12:08 2006 UTC (17 years, 8 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 # Leader
2
3 if ( rec('200','a') ) {
4
5 if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
6 marc_leader('05','c');
7 } else {
8 marc_leader('05','n');
9 }
10
11 marc_leader('06','a');
12
13 marc_leader('07','m');
14
15 marc_leader('18','i');
16
17 if ( rec('230') ) {
18 marc_leader('19','r');
19 }
20
21
22 # 001 polje dodaje Voyager
23
24 # polje 035 je u NSK ponovljivo. za¹to ???
25
26
27 marc('035','6',
28 prefix(
29 rec('994','a'),
30 rec('000')
31 )
32 );
33
34 # u marc 035a treba dodati System Number -
35 # NSK zapisuje Voyagerov ID (001) - kako ???
36
37 marc('020','a',
38 rec('010')
39 );
40
41 # 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 if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
53 marc_indicators('041', 1, ' ');
54 } else {
55 marc_indicators('041', 0, ' ');
56 }
57
58 marc_repeatable_subfield('041','a',
59 rec('101')
60 );
61
62 marc_indicators('245', 0, 0);
63
64 marc_compose('245',
65 'a', rec('200','a'),
66 'h', rec('200','b'),
67 'b',
68 join_with(' : ',
69 rec('200','d'),
70 rec('200','e')
71 ),
72 'c',
73 join_with(' ; ',
74 rec('200','f'),
75 rec('200','g')
76 ),
77 );
78
79 # 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 marc('250','a',
98 rec('205','a')
99 );
100
101 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 );
107
108 marc('300','a',
109 rec('215','a')
110 );
111
112 marc('300','b',
113 rec('215','c')
114 );
115
116 marc('300','c',
117 rec('215','d')
118 );
119
120 marc('300','e',
121 rec('215','e')
122 );
123
124
125 marc_indicators('490', 1, ' ');
126 marc('490','a',
127 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 marc('490','v',
140 join_with(', ',
141 rec('225','v'),
142 rec('225','w')
143 )
144 );
145
146 marc('500','a',
147 rec('300')
148 );
149
150 marc('500','a',
151 rec('314')
152 );
153
154 marc('504','a',
155 rec('320')
156 );
157
158 # 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 );
172
173 # 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 marc('520','a',
180 regex('s/\\r\\n\\r\\n|\\r\\n/. /g',
181 rec('330')
182 )
183 );
184
185 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
186
187 marc_indicators('655', ' ', 4);
188 marc('655','a',
189 rec('608')
190 );
191
192 marc_indicators('653', ' ', ' ');
193 marc('653','a',
194 rec('610')
195 );
196
197 # 675 podpolja c, d ... - ¹to s njima ???
198
199 marc('080','a',
200 rec('675','a')
201 );
202
203 # 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
209 marc('084','a',
210 rec('686')
211 );
212
213 marc_indicators('100', 1, ' ');
214 marc('100','a',
215 join_with(', ',
216 rec('700', 'a'),
217 rec('700', 'b')
218 )
219 );
220
221
222 marc_indicators('700', 1, ' ');
223
224 if ( rec('701') ) {
225 marc('700','4',
226 'aut'
227 );
228 }
229
230 marc('700','a',
231 join_with(', ',
232 rec('701', 'a'),
233 rec('701', 'b')
234 )
235 );
236
237 marc('700','a',
238 join_with(', ',
239 rec('701', 'c'),
240 rec('701', 'd')
241 )
242 );
243
244 marc('700','a',
245 join_with(', ',
246 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 rec('702','a'),
261 rec('702','b')
262 )
263 );
264
265 marc('700','a',
266 join_with(', ',
267 rec('702','c'),
268 rec('702','d')
269 )
270 );
271
272 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 if ( rec('710','f') ) {
288
289 marc_indicators('111', 2, ' ');
290 marc('111','a',
291 rec('710','a')
292 );
293
294 marc('111','c',
295 rec('710','e')
296 );
297
298 marc('111','d',
299 rec('710','f')
300 );
301
302 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 }
323
324 # zapisi za duplanje
325
326 if ( rec('230') ) {
327
328 marc_duplicate();
329
330 marc_remove('245');
331
332 marc('245','a',
333 rec('230','a')
334 );
335
336 if ( ! rec('230','a') ) {
337
338 marc('245','a',
339 rec('200','a')
340 );
341
342 }
343
344 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
358 }

  ViewVC Help
Powered by ViewVC 1.1.26