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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 537 by dpavlin, Thu Jun 29 10:26:12 2006 UTC revision 583 by dpavlin, Wed Jul 5 00:12:08 2006 UTC
# Line 1  Line 1 
1  marc21('001',  # Leader
2          rec('000')  
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  marc21('020','a',  # u marc 035a treba dodati System Number -
35    # NSK zapisuje Voyagerov ID (001) - kako ???
36    
37    marc('020','a',
38          rec('010')          rec('010')
39  );  );
40    
41  marc21('101','a',  # u polje 040a možda još dodati prefiks HR
42          rec('101')  # NSK ima HR NSB (možda u novijim zapisima ima NSK)
43    
44    marc('040','a',
45            rec('801')
46  );  );
47    
48  marc21('245','a',  marc('040','b',
49          rec('200','a')          '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  marc21('245','b',  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(' : ',          join_with(' : ',
69                  rec('200','d'),                  rec('200','d'),
70                  rec('200','e')                  rec('200','e')
71          )          ),
72  );          'c',
   
 marc21('245','c',  
73          join_with(' ; ',          join_with(' ; ',
74                  rec('200','f'),                  rec('200','f'),
75                  rec('200','g')                  rec('200','g')
76          )          ),
77  );  );
78    
79  marc21('250','a',  # marc('245','a',
80          rec('205','a')  #       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  marc21('260','a',  marc('250','a',
98          rec('210','a')          rec('205','a')
 );  
   
 marc21('260','b',  
         rec('210','c')  
99  );  );
100    
101  marc21('260','c',  marc_compose('260',
102          rec('210','d')          '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  marc21('300','a',  marc('300','a',
109          rec('215','a')          rec('215','a')
110  );  );
111    
112  marc21('300','b',  marc('300','b',
113          rec('215','c')          rec('215','c')
114  );  );
115    
116  marc21('300','c',  marc('300','c',
117          rec('215','d')          rec('215','d')
118  );  );
119    
120  marc21('300','e',  marc('300','e',
121          rec('215','e')          rec('215','e')
122  );  );
123    
124  marc21('490','a',  
125    marc_indicators('490', 1, ' ');
126    marc('490','a',
127          join_with(' = ',          join_with(' = ',
128                  rec('225','a'),                  rec('225','a'),
129                  join_with(" :  ",                  join_with(" :  ",
# Line 73  marc21('490','a', Line 136  marc21('490','a',
136          )          )
137  );  );
138    
139  marc21('490','v',  marc('490','v',
140          rec('225','v')          join_with(', ',
141                    rec('225','v'),
142                    rec('225','w')
143            )
144  );  );
145    
146  marc21('500','a',  marc('500','a',
147          rec('300')          rec('300')
148  );  );
149    
150  marc21('504','a',  marc('500','a',
151            rec('314')
152    );
153    
154    marc('504','a',
155          rec('320')          rec('320')
156  );  );
157    
158  marc21('655','a',  # napomene uz konverziju polja sa sadržajem:
159          rec('610')  # 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  marc21('500','a',  # napomene uz konverziju polja 330:
174          rec('300')  # 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  marc21('504','a',  # možda i polje 520y - jezik napomene ako je uvijek isti jezik
186          rec('320')  
187    marc_indicators('655', ' ', 4);
188    marc('655','a',
189            rec('608')
190  );  );
191    
192  marc21('655','a',  marc_indicators('653', ' ', ' ');
193    marc('653','a',
194          rec('610')          rec('610')
195  );  );
196    
197  marc21('100','a',  # 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(', ',          join_with(', ',
216                  rec('700', 'a'),                  rec('700', 'a'),
217                  rec('700', 'b')                  rec('700', 'b')
218          )          )
219  );  );
220    
221  marc21('700','a',  
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(', ',          join_with(', ',
232                  rec('701', 'a'),                  rec('701', 'a'),
233                  rec('701', 'b')                  rec('701', 'b')
234          )          )
235  );  );
236    
237  if ( rec('701') ) {  marc('700','a',
238          marc21('700','4',          join_with(', ',
239                  '070'                  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  marc21('700','a',  marc('700','a',
252            join_with(', ',
253                    rec('701', 'g'),
254                    rec('701', 'h')
255            )
256    );
257    
258    marc('700','a',
259          join_with(', ',          join_with(', ',
260                  rec('702','a'),                  rec('702','a'),
261                  rec('702','b')                  rec('702','b')
262          )          )
263  );  );
264    
265  if ( rec('702') ) {  marc('700','a',
266          marc21('700','4',          join_with(', ',
267                  '340'                  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    }

Legend:
Removed from v.537  
changed lines
  Added in v.583

  ViewVC Help
Powered by ViewVC 1.1.26