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

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

revision 1010 by dpavlin, Tue Nov 6 20:20:37 2007 UTC revision 1020 by dpavlin, Sat Nov 10 11:02:37 2007 UTC
# Line 1  Line 1 
1  #########################################################################  ##########################################################################
2  ##                                                                      ##  ##                                                                      ##
3  ## Ova datoteka sadrži pravila za generiranje MARC21 ISO 2709 izlazne   ##  ## Ova datoteka sadrži pravila za generiranje MARC21 ISO 2709 izlazne   ##
4  ## datoteke. Ulazni format je CDS/ISIS sa zapisima u UNIMARC-u.         ##  ## datoteke. Ulazni format je CDS/ISIS izvorni format, sa zapisima u    ##
5    ## UNIMARC formatu, sa višestrukim odstupanjima od standarda.           ##
6  ##                                                                      ##        ##                                                                      ##      
7  ##########################################################################  ##########################################################################
8    
9  # konvertira se ako postoji polje 200^a  ## konvertira se ako postoji polje 200^a
10    
11  if ( rec('200','a') ) {  if ( rec('200','a') ) {
12    
13  ### LEADER  ### LEADER
14  # raspraviti 17,18  ## raspraviti 17,18
15  # u nekim knjižnicama koristi se 999a i 999b, a u nekima samo 999  ## u nekim knjižnicama koristi se 999a i 999b, a u nekima samo 999
16    
17  if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) {  if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) {
18          marc_leader('05','c');          marc_leader('05','c');
# Line 19  if ( rec('999') && first(rec('999')) =~ Line 20  if ( rec('999') && first(rec('999')) =~
20          marc_leader('05','n');          marc_leader('05','n');
21  }  }
22    
23  # moguća je i oznaka "m" u 06 - odrediti kriterije  ## moguća je i oznaka "m" u 06 - odrediti kriterije
24    
25          marc_leader('06','a');          marc_leader('06','a');
26          marc_leader('07','m');          marc_leader('07','m');
27          marc_leader('18','i');          marc_leader('18','i');
28    
29  # pojasniti upotrebu 19 lidera!  ## pojasniti upotrebu 19 lidera!
30    
31  if ( rec('230') ) {  if ( rec('230') ) {
32          marc_leader('19','r');          marc_leader('19','r');
# Line 33  if ( rec('230') ) { Line 35  if ( rec('230') ) {
35  ### 001 - Voyager  ### 001 - Voyager
36    
37  ### 003  ### 003
38  # Pojasniti upotrebu polja  ## Pojasniti upotrebu polja
39    
40  ### 007  ### 007
41  # pojasniti upotrebu polja  # pojasniti upotrebu polja
# Line 74  marc_fixed('008','15', Line 76  marc_fixed('008','15',
76  marc_fixed('008','35',  marc_fixed('008','35',
77          first( lc(rec('101')) )         # 35-37 - Language          first( lc(rec('101')) )         # 35-37 - Language
78  );  );
79  marc_fixed('008','38', '|');            # 38 - Modified record                                          # 38 - Modified record
80  marc_fixed('008','39','d');             # 39 - Cataloging source  marc_fixed('008','39','d');             # 39 - Cataloging source
81    
   
82  ### 008 - Books  ### 008 - Books
83    
84                                          # 18-21 - Illustrations                                          # 18-21 - Illustrations
# Line 96  marc_fixed('008','39','d');            # 39 - Cata Line 97  marc_fixed('008','39','d');            # 39 - Cata
97  ### 020  ### 020
98  # postoji modify -> drugi ISBN počinje prefixom "ISBN" koji se miče (sfb)  # postoji modify -> drugi ISBN počinje prefixom "ISBN" koji se miče (sfb)
99    
100  if ( frec('10') ne frec('290') ) {  if ( frec('10') ne ( frec('290') ) ) {
101          marc('020','a',          marc('020','a',
102                  regex('s/-//g',                  regex('s/-//g',
103                          rec('10')                          rec('10')
# Line 519  if (   ( rec('225','a') =~ m/^An /) && ( Line 520  if (   ( rec('225','a') =~ m/^An /) && (
520  ### 440  ### 440
521  ## marc_compose radi samo kad polje ni potpolja nisu ponovljivi  ## marc_compose radi samo kad polje ni potpolja nisu ponovljivi
522    
 marc_compose('440',  
         'a', suffix(  
                 ( rec('225','v') ) ? ' ;' :  
                 ( rec('225','w') ) ? ' ; ' :  
                 ( rec('225','x') ) ? ',' :  
                 ( rec('225','h') || rec('225','i') ) ? '.' :  
                         '.',  
                         frec('225','a')  
         ),  
         'x',suffix(  
                 ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :  
                         '',  
                         frec('225','x')  
         ),  
         'v',suffix(  
                 ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :  
                 ( rec('225','v') && rec('225','w') ) ? ' ; ' :  
                         '',  
                         frec('225','v')  
         ),  
         'n',suffix(  
                 ( rec('225','h') && rec('225','i') ) ? ',' :  
                 ( rec('225','h') && rec('225','w') ) ? ' ; ' :  
                         '',  
                         frec('225','h')  
         ),  
         'p',suffix(  
                 ( rec('225','i') && rec('225','w') ) ? ' ; ' :  
                 ( rec('225','i') && rec('225','x') ) ? ',' :  
                         '',  
                         frec('225','i')  
         ),  
 ## 225w treba ici u 440v, na kraj  
         '+', join_with(' ; ',  
                 rec('225','w'),  
         )  
 );  
523    
524    marc_template(
525            from => 225, to => 440,
526            subfields_rename => [
527                    'a' => 'a',
528                    'x' => 'x',
529                    'v' => 'v',
530                    'h' => 'n',
531                    'i' => 'p',
532                    'w' => 'v',
533            ],
534            marc_template => [
535                    'a',
536                    'a ;|v',
537                    'a.|p',
538                    'a, |x ;|v.|n,|p ;|v',
539                    'a ;|v.|p ;|v',
540                    'a.|p ;|v',
541                    'v',
542            ],
543    );
544    
 #marc_original_order('440','225');  
545    
546  #marc_compose('440',  #marc_compose('440',
547  #       'a', suffix(  #       'a', suffix(
548  #               rec('225','i') ? '. ' :  #               ( rec('225','v') ) ? ' ;' :
549    #               ( rec('225','w') ) ? ' ; ' :
550    #               ( rec('225','x') ) ? ',' :
551    #               ( rec('225','h') || rec('225','i') ) ? '.' :
552    #                       '.',
553    #                       frec('225','a')
554    #       ),
555    #       'x',suffix(
556    #               ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
557  #                       '',  #                       '',
558  #                       rec('225','a'),  #                       frec('225','x')
559  #       ),  #       ),
560  #       'p', suffix(  #       'v',suffix(
561  #               ( ! rec('225','x') && rec('225','i') && rec('225','v') ) ? ' ; ' :  #               ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
562  #               ( rec('225','i') && rec('225','x') ) ? ', '  :  #               ( rec('225','v') && rec('225','w') ) ? ' ; ' :
563  #                       '',  #                       '',
564  #                       rec('225','i'),  #                       frec('225','v')
565  #       ),  #       ),
566  #       'x', suffix(  #       'n',suffix(
567  #               ( rec('225','x') && rec('225','v') ) ? ' ; ' :  #               ( rec('225','h') && rec('225','i') ) ? ',' :
568    #               ( rec('225','h') && rec('225','w') ) ? ' ; ' :
569  #                       '',  #                       '',
570  #                       rec('225','x'),  #                       frec('225','h')
571  #       ),  #       ),
572  #       'v', rec('225','v'),  #       'p',suffix(
573    #               ( rec('225','i') && rec('225','w') ) ? ' ; ' :
574    #               ( rec('225','i') && rec('225','x') ) ? ',' :
575    #                       '',
576    #                       frec('225','i')
577    #       ),
578    ### 225w treba ici u 440v, na kraj
579    #       '+', join_with(' ; ',
580    #               rec('225','w'),
581    #       )
582  #);  #);
583    
584  ## ovo radi samo kad 225 nije ponovljivo  #marc_original_order('440','225');
585    
586    
587  #if (  #if (
588  #       count( lookup(  #       count( lookup(
# Line 590  marc_compose('440', Line 592  marc_compose('440',
592  #       ) ) > 1  #       ) ) > 1
593  #) {  #) {
594    
 #marc_compose('440',  
 #       'a', suffix(  
 #               ( rec('225','x') ) ? ', '  :  
 #               ( rec('225','v') || rec('225','w') ) ? ' ; ' :  
 #               ( rec('225','h') || rec('225','i') ) ? '. '  :  
 #                       '',  
 #                       join_with(' / ',  
 #                               join_with(' : ',  
 #                                       join_with(' = ',  
 #                                               rec('225','a'),  
 #                                               rec('225','d'),  
 #                                       ),  
 #                                       rec('225','e'),  
 #                               ),  
 #                               rec('225','f'),  
 #                       ),  
 #       ),  
 #       'x', suffix(  
 #               ( rec('225','x') && rec('225','v') ) ? ' ; ' :  
 #               ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '. ' :  
 #                       '',  
 #                       rec('225','x'),  
 #       ),  
 #       'v', suffix(  
 #               ( rec('225','v') && rec('225','h') || rec('225','i') ) ? '. ' :  
 #                       '',  
 #                       join_with('; ',  
 #                               rec('225','v'),  
 #                       )  
 #       ),  
 #       'n', suffix(  
 #               ( rec('225','h') && rec('225','p') || rec('225','y') ) ? ', ' :  
 #                       '',  
 #                       rec('225','h'),  
 #       ),  
 #       'p', suffix(  
 #               ( rec('225','i') && rec('225','x') ) ? ', ' :  
 #               ( rec('225','i') && rec('225','v') ) ? ' ; ' :  
 #                       '',  
 #                       rec('225','i'),  
 #       ),  
 #       'x', suffix(  
 #               ( rec('225','y') && rec('225','v') ) ? ' ; ' :  
 #                       '',  
 #                       rec('225','y'),  
 #       ),  
 #       'v', rec('225','w'),  
 # );  
 #  
 # marc_compose('440',  
 #       'a', suffix(  
 #               rec('225','k') ? ' ; ' :  
 #                       '',  
 #                       join_with(' / ',  
 #                               rec('225','b'),  
 #                               rec('225','j')  
 #                       ),  
 #       ),  
 #       'v',  
 #               rec('225','k'),  
 # );  
 #  
 #  
 # marc_compose('440',  
 #       'a', suffix(  
 #               rec('225','s') ? ' ; ' :  
 #                       '',  
 #                       join_with(' / ',  
 #                               rec('225','c'),  
 #                               rec('225','r')  
 #                       ),  
 #       ),  
 #       'v',  
 #               rec('225','s'),  
 # );  
   
 #}  
   
 #if ( rec('225','i') ) {  
 #       marc('440','p',  
 #               prefix('. ',  
 #                       rec('225','i')  
 #               ),  
 #       );  
 #}  
 #  
 #if ( rec('225','v') ) {  
 #       marc('440','v',  
 #               prefix(' ; ',  
 #                       rec('225','v'),  
 #               ),  
 #       );  
 #}  
595    
596  #_debug(0);  #_debug(0);
597    

Legend:
Removed from v.1010  
changed lines
  Added in v.1020

  ViewVC Help
Powered by ViewVC 1.1.26