/[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 547 by dpavlin, Thu Jun 29 23:19:26 2006 UTC revision 583 by dpavlin, Wed Jul 5 00:12:08 2006 UTC
# Line 1  Line 1 
1  marc('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    # u marc 035a treba dodati System Number -
35    # NSK zapisuje Voyagerov ID (001) - kako ???
36    
37  marc('020','a',  marc('020','a',
38          rec('010')          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',  marc_repeatable_subfield('041','a',
59          rec('101')          rec('101')
60  );  );
61    
62  marc_indicators('245', 0, 0);  marc_indicators('245', 0, 0);
63    
64  marc('245','a',  marc_compose('245',
65          rec('200','a')          'a', rec('200','a'),
66  );          'h', rec('200','b'),
67            'b',
 marc('245','b',  
68          join_with(' : ',          join_with(' : ',
69                  rec('200','d'),                  rec('200','d'),
70                  rec('200','e')                  rec('200','e')
71          )          ),
72  );          'c',
   
 marc('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    # 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',  marc('250','a',
98          rec('205','a')          rec('205','a')
99  );  );
100    
101  marc('260','a',  marc_compose('260',
102          rec('210','a')          '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  marc('260','b',          'c', first(rec('210','d')),
         rec('210','c')  
 );  
   
 marc('260','c',  
         rec('210','d')  
106  );  );
107    
108  marc('300','a',  marc('300','a',
# Line 62  marc('300','e', Line 121  marc('300','e',
121          rec('215','e')          rec('215','e')
122  );  );
123    
124    
125    marc_indicators('490', 1, ' ');
126  marc('490','a',  marc('490','a',
127          join_with(' = ',          join_with(' = ',
128                  rec('225','a'),                  rec('225','a'),
# Line 76  marc('490','a', Line 137  marc('490','a',
137  );  );
138    
139  marc('490','v',  marc('490','v',
140          rec('225','v')          join_with(', ',
141                    rec('225','v'),
142                    rec('225','w')
143            )
144  );  );
145    
146  marc('500','a',  marc('500','a',
147          rec('300')          rec('300')
148  );  );
149    
150    marc('500','a',
151            rec('314')
152    );
153    
154  marc('504','a',  marc('504','a',
155          rec('320')          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);  marc_indicators('655', ' ', 4);
188  marc('655','a',  marc('655','a',
189            rec('608')
190    );
191    
192    marc_indicators('653', ' ', ' ');
193    marc('653','a',
194          rec('610')          rec('610')
195  );  );
196    
197  marc_indicators('100', 0, ' ');  # 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',  marc('100','a',
215          join_with(', ',          join_with(', ',
216                  rec('700', 'a'),                  rec('700', 'a'),
# Line 100  marc('100','a', Line 218  marc('100','a',
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',  marc('700','a',
231          join_with(', ',          join_with(', ',
232                  rec('701', 'a'),                  rec('701', 'a'),
# Line 107  marc('700','a', Line 234  marc('700','a',
234          )          )
235  );  );
236    
237  if ( rec('701') ) {  marc('700','a',
238          marc('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    marc('700','a',
252            join_with(', ',
253                    rec('701', 'g'),
254                    rec('701', 'h')
255            )
256    );
257    
258  marc('700','a',  marc('700','a',
259          join_with(', ',          join_with(', ',
# Line 120  marc('700','a', Line 262  marc('700','a',
262          )          )
263  );  );
264    
265  if ( rec('702') ) {  marc('700','a',
266          marc('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.547  
changed lines
  Added in v.583

  ViewVC Help
Powered by ViewVC 1.1.26