local changes
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 23 Aug 2007 19:21:23 +0000 (19:21 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 23 Aug 2007 19:21:23 +0000 (19:21 +0000)
git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@876 07558da8-63fa-0310-ba24-9fe276d99e06

conf/normalize/ff-libri.pl
conf/normalize/ff-nakladnicka.pl
conf/normalize/minimal.pl

index fed9691..93965e4 100644 (file)
@@ -24,13 +24,18 @@ if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) {
        marc_leader('07','m');
        marc_leader('18','i');
 
+# pojasniti upotrebu 19 lidera!
+
 if ( rec('230') ) {
        marc_leader('19','r');
 }
 
 ### 001 - Voyager
 
+### Pojasniti upotrebu polja 006
+
 ### 007
+### pojasniti upotrebu polja
 
 marc_fixed('007',00,'ta');
 
@@ -55,26 +60,33 @@ if ( rec('994','c') ) {
 #)
 #);
 
-## FIXME treba velika slova pretvoriti u mala
 
 marc_fixed('008','35',
        first( lc(rec('101')) )
 );
 
 
+### 020
+# postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
+
+marc('020','a',
+       regex('s/ ISBN //g',
+               rec('10')
+       )
+);
+
 
 ### 035$6
 # Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
-# marc 035a - System Number - NSK zapisuje Voyagerov ID (001) - kako?
+# marc 035a - System Number - NSK zapisuje Voyagerov ID (001) 
 # kako mora izgledati polje 035$9? mo¾e li sadr¾avati slova i razmake?
 
-
 marc('035','6',
 join_with('',
 #              config('input normalize path'),
 #              config('name'),
                config(),
-               'L',
+               ' L',
 #              config('input name'),
 #              id(),
 #              rec('994','a'),
@@ -83,18 +95,10 @@ join_with('',
 );
 
 
-### 020
-# postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
-
-marc('020','a',
-       regex('s/ ISBN //g',
-               rec('10')
-       )
-);
-
 
 ### 040
 # za sve je isti
+# treba utvrditi toènu oznaku za ustanovu
 
 marc('040','a',
        'HR FFZG'
@@ -125,7 +129,7 @@ marc('040','e',
 
 
 #if ( rec('675') =~ m/\d=\d/ ) {
-if ( grep( m/Prijevod/, rec('300')) || grep( m/Izv. stv. nasl./, rec('300') ) ) {
+if ( grep( m/prijevod/i, rec('300')) || grep( m/prevedeno/i, rec('300')) || grep( m/izv.*stv.*nasl/i, rec('300')) || grep( m/izvornik/i, rec('300')) || grep( m/preve/i, rec('200','f')) || grep( m/preve/i, rec('200','g')) || grep( m/prijevod/i, rec('200','f')) || grep( m/prijevod/i, rec('200','g')) ) {
        marc_indicators('041', 1, ' ');
 } else {
        marc_indicators('041', 0, ' ');
@@ -141,6 +145,8 @@ marc_repeatable_subfield('041','a',
 );
 #_debug(0);
 
+### 044
+
 
 ### 080
 # 675 podpolja b, c, d ... - ¹to s njima ???
@@ -149,6 +155,18 @@ marc('080','a',
        rec('675','a')
 );
 
+marc('080','a',
+       rec('675','b')
+);
+
+marc('080','a',
+       rec('675','c')
+);
+
+marc('080','a',
+       rec('675','d')
+);
+
 
 ### 084 - other classification (R)
 # NSK ga koristi za struènu oznaku NSK iz polja 681
@@ -181,29 +199,54 @@ marc('100','a',
 # provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
 # ovo vrijedi za FFSFB
 
-if ( rec('710','f') ) {
+if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
 
 marc_indicators('111', 2, ' ');
 
 marc_compose('111',
-       'a', rec('710','a'),
+       'a', suffix(
+               rec('710','b') ? '.' :
+                       '',
+                       rec('710','a'),
+       ),
        'e', rec('710','b'),
-       'n', rec('710','d'),
-       'd', rec('710','f'),
-       'c', rec('710','e'),
+       'n', prefix(
+               rec('710','d') ? '(' :
+                       '',
+                       rec('710','d')
+       ),
+       'd', prefix(
+               ( ! rec('710','d') ) ? '(' :
+               ( ! rec('710','e') ) ? '(' :
+                       '; ',
+                       rec('710','f'),
+       ),
+       'c', prefix(
+               ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
+               ( ! rec('710','d') && ! rec('710','f') )  ? '(' :
+                       '',
+                       rec('710','e'),
+       ),
+       '+',')',
 );
 
 
 } else {
        
 marc_indicators('110', 2, ' ');
+
 marc('110','a',
        rec('710','a')
 );
 
+marc('110','b',
+       rec('710','b')
+);
+if ( rec('710','c') ) {
 marc('110','c',
-       rec('710','c')
+       surround('(', ')', rec('710','c'))
 );
+}
 
 }
 
@@ -240,23 +283,36 @@ if (      ( rec('200','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
 } 
 
 ### 245
-# redoslijed polja va¾an
 # podpolja i interpunkcije pripremljeni u modify
 
 #_debug(3);
 
 marc_compose('245',
        'a', suffix(
-               ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :  
-               ( rec('200','p') && rec('200','c') ) ? ' : '  : 
+               ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :  
+               ( rec('200','d') ) ? ' = ' :
+               ( rec('200','e') ) ? ' : ' :
+               ( rec('200','k') ) ? ' ; ' :
                        '', 
                        rec('200','a'),
        ),
        'b', suffix(
-               ( rec('200','p') && rec('200','f') ) ? ' / ' : 
-               ( rec('200','p') && rec('200','c') ) ? '. '  : 
+               ( rec('200','d') && rec('200','f') ) ? ' / ' : 
+               ( rec('200','d') && rec('200','c') ) ? '. '  : 
+                       '',
+                       rec('200','d'),
+       ),
+       'b', suffix(
+               ( rec('200','e') && rec('200','f') ) ? ' / ' : 
+               ( rec('200','e') && rec('200','c') ) ? '. '  : 
+                       '',
+                       rec('200','e'),
+       ),
+       'b', suffix(
+               ( rec('200','k') && rec('200','f') ) ? ' / ' : 
+               ( rec('200','k') && rec('200','c') ) ? '. '  : 
                        '',
-                       rec('200','p'),
+                       rec('200','k'),
        ),
        'c', suffix(
                ( rec('200','f') && rec('200','c') ) ? '. ' :
@@ -266,6 +322,27 @@ marc_compose('245',
        '+', rec('200','c'),
 );
 
+#marc_compose('245',
+#      'a', suffix(
+#              ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :  
+#              ( ! rec('200','p') && rec('200','c') ) ? ' : '  : 
+#                      '', 
+#                      rec('200','a'),
+#      ),
+#      'b', suffix(
+#              ( rec('200','p') && rec('200','f') ) ? ' / ' : 
+#              ( rec('200','p') && rec('200','c') ) ? '. '  : 
+#                      '',
+#                      rec('200','p'),
+#      ),
+#      'c', suffix(
+#              ( rec('200','f') && rec('200','c') ) ? '. ' :
+#                      '',
+#                      rec('200','f'),
+#      ),
+#      '+', rec('200','c'),
+#);
+
 #_debug(0);
 
 #marc_compose('245',
@@ -310,6 +387,7 @@ marc_compose('245',
 
 
 ### 250
+## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
 
 marc_compose('250',
        'a',suffix(
@@ -320,9 +398,6 @@ marc_compose('250',
        'b', rec('205','f'),
 );
 
-#marc('250','b',
-#      rec('205','f')
-#);
 
 
 ### 260
@@ -332,7 +407,7 @@ marc_original_order('260', '210');
 
 
 ### 300
-# provjeriti interpunkcije !!
+# urediti interpunkcije za sve kombinacije
 
 marc('300','a',
        suffix(
@@ -365,6 +440,8 @@ marc('300','e',
        rec('215','e')
 );
 
+### 362
+# brojèani podaci za nakladnièku cjelinu
 
 ### 440
 # 2.ind. prema jeziku i èlanu
@@ -387,44 +464,134 @@ if (     ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
 
 #_debug(3);
 
-marc('440',
-       'a', suffix( rec('225','f'),
-                       rec('225','a'),
-       ),
-);
+marc_original_order('440','225');
 
-#      join_with(' / ',
-#              join_with(' ',
+
+#marc_compose('440',
+#      'a', suffix(
+#              rec('225','i') ? '. ' :
+#                      '',
 #                      rec('225','a'),
-#                      rec('225','p'),
-#              ),
-#                      rec('225','f')
 #      ),
+#      'p', suffix(
+#              ( ! rec('225','x') && rec('225','i') && rec('225','v') ) ? ' ; ' :
+#              ( rec('225','i') && rec('225','x') ) ? ', '  :
+#                      '',
+#                      rec('225','i'),
+#      ),
+#      'x', suffix(
+#              ( rec('225','x') && rec('225','v') ) ? ' ; ' :
+#                      '',
+#                      rec('225','x'),
+#      ),
+#      'v', rec('225','v'),
+#);
 
-#_debug(0);
-
-marc('440','n',
-       rec('225','h')
-);
-
-marc('440','p',
-       rec('225','i')
-);
+## ovo radi samo kad 225 nije ponovljivo
 
-marc('440','v',
-       rec('225','v'),
-);
+#if (
+#      count( lookup(
+#              sub { 1 },
+#              'ffps','libri',
+#              sub { rec('225','a') }
+#      ) ) > 1
+#) {
 
-marc('440','x',
-       rec('225','x')
-);
+#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'),
+# );
 
+#}
 
-### 490 
+#if ( rec('225','i') ) {
+#      marc('440','p',
+#              prefix('. ',
+#                      rec('225','i')
+#              ),
+#      );
+#}
 #
-#marc('490','a',
-#      rec('225','a')
-#);
+#if ( rec('225','v') ) {
+#      marc('440','v',
+#              prefix(' ; ',
+#                      rec('225','v'),
+#              ),
+#      );
+#}
+
+#_debug(0);
 
 
 ### 50x
@@ -577,7 +744,10 @@ marc('700','a',
 
 
 marc('700','a',
-       rec('702','a'),
+       join_with(', ',
+               rec('702', 'a'),
+               rec('702', 'b')
+       )
 );
 
 
@@ -662,7 +832,7 @@ marc('740','a',
 ### generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
 
 if (
-       rec('225','a')  # da li je nakladnicka cjelina?
+       rec('225','a')  # da li je nakladnièka cjelina?
 ) {
 
 my $series_key =
@@ -678,7 +848,6 @@ if ($series) {
        warn "nije novi";
 } else {
 
-
 $series = join_with('',
        config(),
        'LS',
@@ -687,8 +856,8 @@ $series = join_with('',
 
 set( $series_key => $series );
 
-}
-}
+} # $series
+} # nakladnièka cjelina
 
 my $series_key = join_with('',
        rec('225','a'),
index 2479e24..b72e0a3 100644 (file)
@@ -31,16 +31,17 @@ if ($series) {
 
 $series = join_with('',
        config(),
-       'LS',
+       ' LS',
        rec('000')
 );
 
-#set( $series_key => $series );
+set( $series_key => $series );
 
 # Leader
 marc_leader('05','n');
 marc_leader('06','a');
 marc_leader('07','s');
+marc_leader('17','7');
 marc_leader('18','i');
 
 ## 008 
@@ -109,24 +110,51 @@ if (      ( rec('200','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
 
 marc_compose('245',
        'a', suffix(
-               ( ! rec('225','p') && ( rec('225','f') || rec('225','c') ) ) ? ' / ' :  
-               ( rec('225','p') && rec('225','c') ) ? ' : '  : 
+               ( ! ( rec('225','d') || rec('225','e') ) ) && ( rec('225','f') ) ? ' / ' :  
+               ( rec('225','d') ) ? ' = ' :
+               ( rec('225','e') ) ? ' : ' :
+               ( rec('225','i') ) ? '. ' :
                        '', 
-                       first(rec('225','a')),
+                       rec('225','a'),
        ),
        'b', suffix(
-               ( rec('225','p') && rec('225','f') ) ? ' / ' : 
-               ( rec('225','p') && rec('225','c') ) ? '. '  : 
+               ( rec('225','d') && rec('225','f') ) ? ' / ' : 
                        '',
-                       rec('225','p'),
+                       rec('225','d'),
+       ),
+       'b', suffix(
+               ( rec('225','e') && rec('225','f') ) ? ' / ' : 
+                       '',
+                       rec('225','e'),
        ),
        'c', suffix(
-               ( rec('225','f') && rec('225','c') ) ? '. ' :
+               ( rec('225','f') && rec('225','i') ) ? '. ' :
                        '',
                        rec('225','f'),
        ),
+       'p', rec('225','i'),
 );
 
+#marc_compose('245',
+#      'a', suffix(
+#              ( ! rec('225','p') && ( rec('225','f') || rec('225','c') ) ) ? ' / ' :  
+#              ( rec('225','p') && rec('225','c') ) ? ' : '  : 
+#                      '', 
+#                      first(rec('225','a')),
+#      ),
+#      'b', suffix(
+#              ( rec('225','p') && rec('225','f') ) ? ' / ' : 
+#              ( rec('225','p') && rec('225','c') ) ? '. '  : 
+#                      '',
+#                      rec('225','p'),
+#      ),
+#      'c', suffix(
+#              ( rec('225','f') && rec('225','c') ) ? '. ' :
+#                      '',
+#                      rec('225','f'),
+#      ),
+#);
+
 marc_original_order('260', '210');
 
 marc_remove('260','c');
@@ -146,10 +174,10 @@ marc_remove('260','c');
 
 #_debug(0);
 
-marc_duplicate();
-marc_remove('*');
+#marc_duplicate();
+#marc_remove('*');
 
 
 } # $series
 
-}
+} # nakladnièka cjelina
index 1539f96..fb8e187 100644 (file)
@@ -1,38 +1,11 @@
 
 if ( rec('200','a') ) {
 
-marc('035','6',
-join_with('',
-               config(),
-               '-L-',
-               rec('000')
-       )
-);
-
-
-marc('020','a',
-       rec('10')
-);
-
-
-marc('022','a',
-       rec('11','a')
-);
-
-
 marc_indicators('245', 1, 0);
 
 marc('245','a',
-       rec('200','a')
+       first( rec('200','a') )
 );
 
-marc('260','c',
-       rec('210','d')
-       
-);
-
-marc('686','a',
-       first(rec('686'))
-);
 
 }