repeatable 700 with modify - not working
authorMarijana Glavica <mglavica@ffzg.hr>
Mon, 6 Jan 2014 18:22:52 +0000 (19:22 +0100)
committerMarijana Glavica <mglavica@ffzg.hr>
Mon, 6 Jan 2014 18:22:52 +0000 (19:22 +0100)
conf/hpm/config-knjige.yml
conf/hpm/knjige.pl
conf/hpm/modify.pl
conf/hpm/validate-delimiters

index 36e1dfa..e33511c 100644 (file)
@@ -13,6 +13,5 @@ databases:
         path: '/data/HPM/UNIMAR'
         normalize:
           - path: 'conf/hpm/knjige.pl'
-#          - path: 'conf/dziv/minimal.pl'
         modify_file: 'conf/hpm/modify.pl'
         skip: 0
index a57cf66..0241a0b 100644 (file)
@@ -1,6 +1,6 @@
 # Ova datoteka sadrzi pravila za generiranje MARC21 ISO 2709 izlazne
 # datoteke. Ulazni format je CDS/ISIS izvorni format, sa zapisima u
-# UNIMARC formatu, koji sadr¿i visestruka odstupanja od standarda.
+# UNIMARC formatu, koji sadrzi visestruka odstupanja od standarda.
 
 ## konvertira se ako postoji polje 200^a
 if ( rec('200','a') ) {
@@ -144,7 +144,7 @@ marc_fixed('008','33','|');
 marc_fixed('008','34','|');
 
 ### 020
-## postoji modify za polje 10 -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (pr. u sfb)
+## postoji modify za polje 10 -> drugi ISBN pocinje prefixom "ISBN" koji se mice (pr. u sfb)
 #if ( frec('10') ne ( frec('290') ) ) {
        if ( rec('10','a') !~ /pogre/ ) {
                marc('020','a', 
@@ -170,8 +170,8 @@ marc_fixed('008','34','|');
 
 ### 035
 ## marc 035a - System Number 
-## polje mo¾e sadr¾avati slova i razmake
-## moguæ problem u pretra¾ivanju ako ima zagrade, kako bi trebalo po standardu
+## polje moze sadrzavati slova i razmake
+## moguc problem u pretrazivanju ako ima zagrade, kako bi trebalo po standardu
 
 marc('035','a',
 join_with('',
@@ -204,20 +204,20 @@ marc('040','e',
 
 ### 041 - indikatori
 ## pretpostavke o indikatorima
-## 1. Ako postoji polje 300 i ono sadr¾i /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
+## 1. Ako postoji polje 300 i ono sadrzi /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
 ## (Da li je napomena uvijek pisana?)
-## 2. Podatak o prevodiocu u 200g. Problem: razlièiti oblici rijeèi, razlièiti jezici.
+## 2. Podatak o prevodiocu u 200g. Problem: razliciti oblici rijeci, razliciti jezici.
 ## 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
-## (ako postoje zagrade pr. 94(=411.16) onda su to pomoæne oznake)
+## (ako postoje zagrade pr. 94(=411.16) onda su to pomocne oznake)
 ## pr. 821.111-2=163.42 je prijevod engleske drame na HR. 
-## to ima samo za knji¾evna djela, eseje.... 
+## to ima samo za knjizevna djela, eseje.... 
 ## ovo treba kasnije ispravljati
 
 #if ( rec('675') =~ m/\d=\d/ ) ?
 
 ### 041
 ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
-## koristi se kad ima vi¹e od jednog jezika, ili kad se radi o prijevodu
+## koristi se kad ima vise od jednog jezika, ili kad se radi o prijevodu
 ## nadopuniti
 
 
@@ -473,7 +473,7 @@ if ( rec('225') ) {
 }
 
 # marc_indicators('830',' ','0');
-# i2 ovisi èlanu - popraviti 
+# i2 ovisi clanu - popraviti 
 #
 # marc('830','a',
 #      regex('s/(^.*)\s\/\s(.*)/$1 ($2)/g',
@@ -525,8 +525,8 @@ marc('500','a',
        rec('300')
 );
 
-### 502 - bilje¹ka o disertacijama
-## odgovarajuæeg polja nema u originalnim podacima. mo¾da se mo¾e pretpostaviti?
+### 502 - biljeska o disertacijama
+## odgovarajuceg polja nema u originalnim podacima. mozda se moze pretpostaviti?
 
 ### 504
 marc('504','a',
@@ -549,128 +549,114 @@ marc('653','a',
 ## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!
 ## ako ima samo podpolje a onda je pseudonim - nakon konverzije treba provjeriti
 
-if ( rec('700','c') ) {
-       if ( rec('700','c') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('700','c'),
-               '4', 'aut'
-       );
-}
-
-if ( rec('700','e') ) {
-       if ( rec('700','e') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('700','e'),
-               '4', 'aut'
-       );
-}
-       
-if ( rec('700','g') ) {
-       if ( rec('700','g') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('700','g'),
-               '4', 'aut'
-       );
-}
-       
-if ( rec('700','i') ) {
-       if ( rec('700','i') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('700','i'),
-               '4', 'aut'
-       );
-}
-
-if ( rec('700','k') ) {
-       if ( rec('700','k') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('700','k'),
-               '4', 'aut'
-       );
-}
-
-
 if ( rec('701','a') ) {
        marc_indicators('700', 1, ' ');
-       marc('700','a',
-               rec('701','a')
-       );
-}
-
-if ( rec('701','c') ) {
-       if ( rec('701','c') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('701','c'),
-               '4', 'aut'
-       );
+       marc_original_order('700','701'); 
 }
 
-if ( rec('701','e') ) {
-       if ( rec('701','e') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('701','e'),
-               '4', 'aut'
-       );
-}
+my $relcode = rec('702','4');
+my $relcode_konv = {
+        'autor' => 'aut',
+        'autor dodatka' => 'wam',
+        'autor fotografija' => 'pht',
+        'autorica' => 'aut',
+        'autorica i urednica' => 'aut edt',
+        'autorica teksta' => 'aut',
+        'autorica uvodnog teksta' => 'aui',
+        'autor izložbe' => 'cur',
+        'autor izložbe i fotografije' => 'cur pht',
+        'autor kataloških jedinica' => 'aqt',
+        'autorov suradnik' => 'oth',
+        'autor popratnih tekstova i kataloga' => 'aqt',
+        'autor predgovora' => 'aui',
+        'autor projekta' => 'pdr',
+        'autor projekta i urednik, izrada kazala' => 'pdr edt aqt',
+        'autor teksta' => 'aut',
+        'autor teksta i urednik' => 'aut edt',
+        'autor tekstova u jednom poglavlju i autor fotografija' => 'aut pht',
+        'autor uvoda' => 'aui',
+        'bibliografski urednik' => 'pbd',
+        'crtač geografskih karata' => 'ill',
+        'crteži' => 'ill',
+        'crteži karata' => 'ill',
+        'dizajner' => 'dsr',
+        'editor' => 'edt',
+        'fotograf' => 'pht',
+        'fotografija' => 'pht',
+        'fotografije' => 'pht',
+        'fotografije, engleski prijevod' => 'pht trl',
+        'fotografije i crteži' => 'pht ill',
+        'general editor' => 'edt',
+        'GIS i izrada karata' => 'ctg',
+        'glavna urednica' => 'edt',
+        'glavni i odgovorni urednik' => 'edt',
+        'glavni urednik' => 'edt',
+        'ilustracije' => 'ill',
+        'ilustracije i izrada karata' => 'ill ctg',
+        'ilustrator' => 'ill',
+        'ilustratorica' => 'ill',
+        'izrada crteža' => 'ill',
+        'izrada karata' => 'ill',
+        'izrada karata antičkih prometnica' => 'ctg',
+        'izrada kazala' => 'ant',
+        'izvedba CD-ROMa' => 'oth',
+        'kartograf' => 'ctg',
+        'kolorirani bakropisi' => 'ill',
+        'koncepcija' => 'ccp',
+        'likovno-grafička oprema' => 'ill',
+        'likovno oblikovanje' => 'ill',
+        'obrada izvornih karata i izrada kartografskih originala' => 'ctg',
+        'pisac predgovora' => 'aui',
+        'pisac uvoda' => 'aui',
+        'pomoćnica urednika' => 'edt',
+        'pomoćnik glavnog urednika' => 'edt',
+        'pomoćnik urednika' => 'edt',
+        'pomoćni urednik' => 'edt',
+        'predgovor' => 'aui',
+        'predsjednik redakcijskog kolegija' => 'pbd',
+        'prevoditelj' => 'trl',
+        'prevoditeljica' => 'trl',
+        'prevoditeljica i redaktorica' => 'trl',
+        'priprema fotografija' => 'oth',
+        'priređivač' => 'edt',
+        'priređivač izdanja' => 'pbd',
+        'redaktor' => 'oth',
+        'savjetnik' => 'oth',
+        'series editor' => 'pbd',
+        'stručna suradnica' => 'ctb',
+        'stručna suradnica i autorica teksta' => 'aut',
+        'stručni koordinator' => 'oth',
+        'stručni suradnik' => 'oth',
+        'stručni suradnik i autor teksta' => 'aut',
+        'stručni urednik' => 'edt',
+        'suradnica' => 'oth',
+        'suradnik' => 'oth',
+        'tehnička realizacija CD-ROM-a' => 'oth',
+        'tekstovi o muzejima' => 'aut',
+        'tekstovi o zbirkama vjerskih zajednica' => 'aut',
+        'urednica' => 'edt',
+        'urednik' => 'edt',
+        'urednik i autor' => 'edt aut',
+        'urednik i urednik nakladničke cjeline' => 'edt pbd',
+        'urednik izdanja' => 'edt',
+        'urednik knjige i nakladničke cjeline' => 'edt',
+        'urednik nakladničke cjeline' => 'pbd',
+        'urednik pretiska' => 'edt',
+        'urednik serije' => 'edt',
+        'uvod' => 'aui',
+        'zemljopisne karte' => 'ill',
+        'zemljovidi' => 'ill',
+        'zvučni snimci' => 'rce'
+};
 
-if ( rec('701','g') ) {
-       if ( rec('701','g') =~ m/, / ) {
-               marc_indicators('700', 1, ' ');
-       } else {
-               marc_indicators('700', 0, ' ');
-       }
-       marc_compose('700',
-               'a', rec('701','g'),
-               '4', 'aut'
-       );
-}
 
 if ( rec('702','a') ) {
        marc_indicators('700', 1, ' ');
-       marc('700','a', 
-               rec('702','a'),
-       );
-}
-
-if ( rec('702','c') ) {
-       marc_indicators('700', 1, ' ');
-       marc('700','a', 
-               rec('702','c'),
+       marc('700','4',
+               $relcode_konv->{$relcode}
        );
-}
-
-if ( rec('702','e') ) {
-       marc_indicators('700', 1, ' ');
-       marc('700',
-               'a', rec('702','e'),
+       marc('700', 'a', 
+               rec('702','a'),
        );
 }
 
@@ -731,7 +717,7 @@ marc_compose('711',
 
 ### 740 - Added Entry - Uncontrolled Related/Analytical Title 
 ## raspraviti
-## nadopuniti prvi indikator prema èlanovima
+## nadopuniti prvi indikator prema clanovima
 marc_indicators('740', '0', ' ');
 
 # if ( ! rec('464') ) {
@@ -752,10 +738,10 @@ marc_indicators('740', '0', ' ');
 # };
 
 ### 760 w ---------------------------------------------
-## generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
+## generiranje zapisa o nakladnickoj cjelini i povezivanje podredenog zapisa s nadredenim
 
 #if (
-#      rec('225','a')  # da li je nakladnièka cjelina?
+#      rec('225','a')  # da li je nakladnicka cjelina?
 #) {
 
 #my $series_key =
@@ -780,7 +766,7 @@ marc_indicators('740', '0', ' ');
 #set( $series_key => $series );
 #
 #} # $series
-#} # nakladnièka cjelina
+#} # nakladnicka cjelina
 #
 #my $series_key = join_with('',
 #      rec('225','a'),
@@ -821,7 +807,7 @@ marc_indicators('740', '0', ' ');
 #
 # -------------------------------------------------------------------
 
-### 774 - Constituent Item Entry - to bi trebali koristiti ali ne koristimo jer NSK to koristi za ne¹to drugo
+### 774 - Constituent Item Entry - to bi trebali koristiti ali ne koristimo jer NSK to koristi za nesto drugo
 ### 787 - Nonspecific Relationship Entry 
 
 #marc_indicators('787','0',' ');
index 5bfe5cc..86bf131 100644 (file)
 503
   'regex:^' => '^a'
 
-700
-  '*'
-    '^d' => ', '
-    '^f' => ', '
-    '^h' => ', '
-    '^j' => ', '
-
 701
-  '*'
+  '^a'
     '^b' => ', '
-    '^d' => ', '
-    '^f' => ', '
-    '^h' => ', '
+  '*'
+    'regex:^' => '^4aut'
 
 702
-  '*'
+  '^a'
     '^b' => ', '
-    '^d' => ', '
-    '^f' => ', '
+
 
index 8020c40..88b673e 100644 (file)
 700    1086    ^a^b
 700    1       ^a^b^4
 701    389     ^a^b
-702    1       ^a^4
 702    166     ^a^b
 702    943     ^a^b^4
 710    22      ^a