/[webpac2]/trunk/conf/normalize/ff-peri.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/ff-peri.pl

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

revision 773 by dpavlin, Fri Nov 3 20:41:12 2006 UTC revision 880 by dpavlin, Thu Aug 23 19:23:53 2007 UTC
# Line 1  Line 1 
1  if ( rec('200','a') ) {  if ( rec('200','a') ) {
2    
 # Leader  
 # raspraviti 17,18  
   
 # u nekim knjižnicama koristi se 999a i 999b  
3    
4    # LEADER
5    # raspraviti 17,18
6    
7  # vrijedi za ffan...  marc_leader('05','n');
8    marc_leader('06','a');
9    
10  if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {  if ( rec('225','a') ) {
11          marc_leader('05','c');          marc_leader('07','b');
12  } else {  } else {
13          marc_leader('05','n');          marc_leader('07','s');
14  }  }
15    
16          marc_leader('06','a');  marc_leader('18','i');
         marc_leader('07','s');  
         marc_leader('18','i');  
17    
18    if ( rec('225','a') ) {
19          marc_leader('19','r');          marc_leader('19','r');
20    }
21    
22  # 001 polje - Voyager  # 001 polje - Voyager
23    
24    # 007
25    marc_fixed('007',00,'ta');
26    
27    
28    ## 008
29    marc_fixed('008','00', '070707');
30    marc_fixed('008','06', '|');    # Type of date/Publication status
31    marc_fixed('008','07', '|');    # Date 1
32    marc_fixed('008','08', '|');
33    marc_fixed('008','09', '|');
34    marc_fixed('008','10', '|');
35    marc_fixed('008','11', '|');    # Date 2
36    marc_fixed('008','12', '|');
37    marc_fixed('008','13', '|');
38    marc_fixed('008','14', '|');
39    marc_fixed('008','15',          # Place of publication, production, or execution
40            lookup(
41                    sub { rec('102','a') },
42                    'nsk','bbaza',
43                    sub { rec('011','a') },
44                    sub { rec('11') },
45            ),
46    );
47    marc_fixed('008','18', '');
48    marc_fixed('008','35',          # Language
49            rec('101')
50    );
51    marc_fixed('008','39','|');     # Cataloging source
52    
53    ## 022
54    
55    if ( ! rec('225','a') ) {
56            marc('022','a',
57                    rec('11')
58            );
59    }
60    
61  # privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku  # privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku
62    
63  marc('035','6',  marc('035','6',
64  join_with('',          join_with('',
65  #               config('input normalize path'),                  uc( config() ),
66  #               config('name'),                  ' P',
                 config(),  
                 'L',  
 #               config('input name'),  
 #               id(),  
 #               rec('994','a'),  
67                  rec('000')                  rec('000')
68          )          )
69  );  );
# Line 43  join_with('', Line 73  join_with('',
73    
74  # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '  # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
75    
 marc('020','a',  
         rec('10')  
 );  
   
 marc('022','a',  
         rec('11')  
 );  
76    
77  # u polje 040a možda još dodati prefiks HR  # u polje 040a možda još dodati prefiks HR
78  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)  # NSK ima HR NSB (možda u novijim zapisima ima NSK?)
# Line 89  if (   ( rec('200','a') =~ m/^Die /) || Line 112  if (   ( rec('200','a') =~ m/^Die /) ||
112    
113  #_debug(3);  #_debug(3);
114    
115    marc('044','a',
116            lookup(
117                    sub { rec('102','a') },
118                    'nsk','bbaza',
119                    sub { rec('011','a') },
120                    sub { rec('11') },
121            ),
122    );
123    
124    marc('080','a',
125            rec('675','a')
126    );
127    
128    marc_indicators('100', 1, ' ');
129    marc('100','a',
130            join_with(', ',
131                    rec('700', 'a'),
132                    rec('700', 'b')
133            )
134    );
135    
136    marc_indicators('110', 2, ' ');
137    marc('110','a',
138            rec('710','a')
139    );
140    
141    marc('110','c',
142            rec('710','c')
143    );
144    
145    marc('222','a',
146            lookup(
147                    sub { rec('530','a') },
148                    'nsk','bbaza',
149                    sub { rec('011','a') },
150                    sub { rec('11') },
151            )
152    );
153    
154    ### 245 indikatori
155    
156  marc_compose('245',  marc_compose('245',
157          'a', suffix(          'a', suffix(
158                  rec('200','b') ? '. '   :                  ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :  
159                  rec('200','k') ? ' ; '  :                  ( rec('200','d') ) ? ' = ' :
160                  rec('200','d') ? ' = '  :                  ( rec('200','e') ) ? ' : ' :
161                  rec('200','e') ? ' : '  :                  ( rec('200','k') ) ? ' ; ' :
162                  rec('200','f') ? ' / '  :                          '',
163                                   '.',                          rec('200','a'),
                         rec('200','a')  
164          ),          ),
         'h', rec('200','b'),  
165          'b', suffix(          'b', suffix(
166                  ( rec('200','k') && rec('200','f') ) ? ' / ' :                  ( rec('200','d') && rec('200','f') ) ? ' / ' :
167                                                         ' ',                  ( rec('200','d') && rec('200','c') ) ? '. '  :
168                          join_with(' ; ',                          '',
169                                  rec('200','k'),                          rec('200','d'),
                         ),  
170          ),          ),
171          'b', suffix(          'b', suffix(
172                  ( rec('200','d') && rec('200','f') ) ? ' / ' :                  ( rec('200','e') && rec('200','f') ) ? ' / ' :
173                                                         ' ',                  ( rec('200','e') && rec('200','c') ) ? '. '  :
174                                  rec('200','d'),                          '',
175                            rec('200','e'),
176          ),          ),
177          'b', suffix(          'b', suffix(
178                  ( rec('200','e') && rec('200','f') ) ? ' / ' :                  ( rec('200','k') && rec('200','f') ) ? ' / ' :
179                                                         ' ',                  ( rec('200','k') && rec('200','c') ) ? '. '  :
180                          join_with(' : ',                          '',
181                                  rec('200','e'),                          rec('200','k'),
                         ),  
182          ),          ),
183            'c', suffix(
184  # ovo trenutno radi za slučaj kad f nije ponovljivo i kad uvijek postoje c i f u paru !!!                  ( rec('200','f') && rec('200','c') ) ? '. ' :
185          'c', join_with('. ',                          '',
186                  rec('200','f'),                          rec('200','f'),
                 rec('200','c'),  
187          ),          ),
188  # FIXME append to last subfield          '+', rec('200','c'),
 #       '+', prefix('. ', rec('200','c') ),  
   
189  );  );
190    
191    ## 246
192    
193    marc_indicators('246', 1, 3);
194    
195    marc('246','a',
196            rec('532')
197    );
198    
199  #_debug(0);  #_debug(0);
200    
# Line 184  marc('300','e', Line 249  marc('300','e',
249          rec('215','e')          rec('215','e')
250  );  );
251    
252    marc('310','a',
253  # provjeriti          lookup(
254                    sub { rec('326','a') },
255  marc_indicators('490', 0, ' ');                  'nsk','bbaza',
256                    sub { rec('011','a') },
257  marc('490','a',                  sub { rec('11') },
258          rec('225','a')          )
259    );
260    
261    marc('321','a',
262            rec('326')
263  );  );
264    
265  marc('490','v',  marc_indicators('362', 0, ' ');
266          join_with(', ',  
267                  rec('225','v'),  marc('362','a',
268                  rec('225','w')          lookup(
269                    sub { rec('207','a') },
270                    'nsk','bbaza',
271                    sub { rec('011','a') },
272                    sub { rec('11') },
273          ),          ),
274  );  );
275    
 marc('490','x',  
         rec('225','x')  
 );  
276    
277  #marc('490','a',  marc('500','a',
278  #       join_with(' : ',          lookup(
279  #               rec('225','a'),                  sub { rec('300','a') },
280  #               join_with(" =  ",                  'nsk','bbaza',
281  #                       rec('225','d'),                  sub { rec('011','a') },
282  #                       join_with(" / ",                  sub { rec('11') },
283  #                               rec('225','e'),          )
284  #                               rec('225','f')  );
285  #                       )  
286  #               )  marc('500','a',
287  #       )          lookup(
288  #);                  sub { rec('302','a') },
289                    'nsk','bbaza',
290                    sub { rec('011','a') },
291                    sub { rec('11') },
292            )
293    );
294    
295    marc('504','a',
296            lookup(
297                    sub { rec('320','a') },
298                    'nsk','bbaza',
299                    sub { rec('011','a') },
300                    sub { rec('11') },
301            )
302    );
303    
304  #marc('490','v',  marc('562','a',
305  #       join2_with(225, 'v', ' , ', 225,'w');          lookup(
306  #       join_with(', ',                  sub { rec('316','a') },
307  #               rec('225','v'),                  'nsk','bbaza',
308  #               rec('225','w')                  sub { rec('011','a') },
309  #       )                  sub { rec('11') },
310  #);          )
311    );
312    
313    
314  #marc('500','a',  #marc('500','a',
315  #       rec('300')  #       rec('300')
# Line 276  if ( config() =~ m/fftu/ ) { Line 362  if ( config() =~ m/fftu/ ) {
362    
363  # možda i polje 520y - jezik napomene ako je uvijek isti jezik  # možda i polje 520y - jezik napomene ako je uvijek isti jezik
364    
365  marc_indicators('246', 1, 3);  
366  marc('246','a',  ### 534
367          rec('532')  
368    marc('534','a',
369            rec('324')
370  );  );
371    
372    
373  marc_indicators('655', ' ', 4);  marc_indicators('655', ' ', 4);
374  marc('655','a',  marc('655','a',
375          rec('608')          rec('608')
# Line 293  marc('653','a', Line 382  marc('653','a',
382    
383  # 675 podpolja c, d ... - što s njima ???  # 675 podpolja c, d ... - što s njima ???
384    
 marc('080','a',  
         rec('675','a')  
 );  
   
385  # 084 je other classification (R)  # 084 je other classification (R)
386  # NSK ga koristi za stručnu oznaku NSK iz polja 681  # NSK ga koristi za stručnu oznaku NSK iz polja 681
387  # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom  # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
388  #  #
 # polje 686 koristi FFPS  
389    
 marc('084','a',  
         rec('686')  
 );  
390    
 marc_indicators('100', 1, ' ');  
 marc('100','a',  
         join_with(', ',  
                 rec('700', 'a'),  
                 rec('700', 'b')  
         )  
 );  
391    
392  #_debug(2);  #_debug(2);
393    
# Line 387  marc('700','a', Line 461  marc('700','a',
461  #_debug(0);  #_debug(0);
462    
463    
 if ( rec('710','f') ) {  
   
 marc_indicators('111', 2, ' ');  
 marc('111','a',  
         rec('710','a')  
 );  
   
 marc('111','c',  
         rec('710','e')  
 );  
   
 marc('111','d',  
         rec('710','f')  
 );  
   
 marc('111','e',  
         rec('710','b')  
 );  
   
 marc('111','n',  
         rec('710','d')  
 );  
   
   
 } else {  
           
 marc_indicators('110', 2, ' ');  
 marc('110','a',  
         rec('710','a')  
 );  
   
 marc('110','c',  
         rec('710','c')  
 );  
   
 };  
   
464    
465  marc_indicators('740', 0, ' ');  marc_indicators('740', 0, ' ');
466    
# Line 442  marc('740','a', Line 479  marc('740','a',
479  );  );
480  };  };
481    
482  marc('500','a',  marc_indicators('770', 0, ' ');
483          lookup(  marc('770','t',
484                  sub { rec('304','a') },          rec('430','a'),
                 'nsk','baza',  
                 sub { rec('200','a') },  
         )  
485  );  );
486    
487  marc('500','a',  marc('770','x',
488          lookup(          rec('430','b'),
                 sub { rec('306','a') },  
                 'nsk','baza',  
                 sub { rec('200','a') },  
         )  
489  );  );
490    
491  marc('500','a',  if ( rec('225','a') ) {
492          lookup(  
493                  sub { rec('314','a') },  marc_indicators('773', 0, ' ');
494                  'nsk','baza',  marc('773','g',
495                  sub { rec('200','a') },          rec('207','a')
         )  
496  );  );
497    
498  marc('500','a',  marc('773','t',
499          lookup(          join_with(' : ',
500                  sub { rec('316','a') },                  rec('225','a'),
501                  'nsk','baza',                  rec('225','e')
502                  sub { rec('200','a') },          ),
         )  
503  );  );
504    
505  marc('504','a',  marc('773','w',
506          lookup(          lookup(
507                  sub { rec('320','a') },                  sub {
508                  'nsk','baza',                          join_with('',
509                                    uc( config() ),
510                                    ' P',
511                                    rec('000')
512                            ),
513                    },
514                    'ffsf','peri',
515                  sub { rec('200','a') },                  sub { rec('200','a') },
516          )                  sub { rec('225','a') },
517            )
518  );  );
519    
520  marc('900','a',  }
521          sort(  
522                  lookup(  marc('852','j',
523                          sub { rec('000') },          join_with(' ',
524                          'ffps','peri',                  rec('990')
525                          sub { rec('200','a') },          )
526                  )  );
527    
528    marc('876','a',
529            rec('991','a')
530    );
531    
532    marc('992','a',
533            join_with(' ; ',
534                    rec('992')
535          )          )
536  );  );
537    
538    
539    
540    marc('997','a',
541            sort(
542                    lookup(
543                            sub { rec('001') },
544                            'nsk','bbaza',
545                            sub { rec('011','a') },
546                            sub { rec('11') },
547                    )
548            )
549    );
550    
551    marc('998','a',
552            sort(
553                    lookup(
554                            sub { rec('001') },
555                            'nsk','bbaza',
556                            sub { first(rec('200','a')) . first(rec('200','e')) },
557                            sub { rec('200','a') . rec('200','e') },
558                    )
559            )
560    );
561    
562    marc('998','a',
563            sort(
564                    lookup(
565                            sub { rec('001') },
566                            'nsk','bbaza',
567                            sub { first(rec('200','a')) },
568                            sub { rec('200','a') },
569                    )
570            )
571    );
572    
573  }  }

Legend:
Removed from v.773  
changed lines
  Added in v.880

  ViewVC Help
Powered by ViewVC 1.1.26