local
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 30 Jan 2007 18:23:53 +0000 (18:23 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 30 Jan 2007 18:23:53 +0000 (18:23 +0000)
git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@792 07558da8-63fa-0310-ba24-9fe276d99e06

conf/mjesec.yml
conf/modify/common.pl
conf/normalize/ff-libri.pl
conf/normalize/ff-nakladnicka.pl [new file with mode: 0644]
conf/normalize/minimal.pl
conf/validate/fffi [deleted file]
conf/validate/ffkf [deleted file]
conf/validate/ffps [deleted file]
conf/validate/ffps-libri
conf/validate/ffzg [deleted file]

index 2b565fe..799a4c3 100644 (file)
@@ -307,9 +307,10 @@ databases:
       path: '/backup/isis_backup/A105-1/ISIS/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffar:
     name: 'Arheologija, Filozofski fakultet u Zagrebu'
@@ -319,9 +320,10 @@ databases:
         path: '/backup/isis_backup/A018-2/isisdata/latest/LIBRI/LIBRI'
         encoding: 'cp852'
         #limit: 10
-        modify_file: 'conf/modify/common.pl'
+        #modify_file: 'conf/modify/common.pl'
         normalize:
-          path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/ff-dupli.pl'
       - name: peri
         type: isis
         path: '/backup/isis_backup/A018-2/isisdata/latest/PERI/PERI'
@@ -339,9 +341,10 @@ databases:
       path: '/backup/isis_backup/A203-3/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   fffi:
     name: 'Filozofija, Filozofski fakultet u Zagrebu'
@@ -351,9 +354,10 @@ databases:
       path: '/backup/isis_backup/A102-1B/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   fffo:
     name: 'Fonetika, Filozofski fakultet u Zagrebu'
@@ -363,9 +367,10 @@ databases:
         path: '/backup/isis_backup/novi-40162/ISISDATA/latest/LIBRI/LIBRI'
         encoding: 'cp852'
         #limit: 10
-        modify_file: 'conf/modify/common.pl'
+        #modify_file: 'conf/modify/common.pl'
         normalize:
-          path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/ff-dupli.pl'
       - name: arti
         type: isis
         path: '/backup/isis_backup/novi-40162/ISISDATA/latest/ARTI/ARTI'
@@ -384,9 +389,10 @@ databases:
       path: '/backup/isis_backup/A106-1/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffhu:
     name: 'Hungarologija, Filozofski fakultet u Zagrebu'
@@ -396,9 +402,10 @@ databases:
       path: '/backup/isis_backup/B001-2/winisis/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/ff-libri.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffiz:
     name: 'Informacijske znanosti, Filozofski fakultet u Zagrebu'
@@ -408,9 +415,10 @@ databases:
       path: '/backup/isis_backup/A129-2/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffkf:
     name: 'Klasièna filologija, Filozofski fakultet u Zagrebu'
@@ -420,9 +428,10 @@ databases:
       path: '/backup/isis_backup/A209-2/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffkk:
     name: 'Komparativna knji¾evnost, Filozofski fakultet u Zagrebu'
@@ -433,9 +442,10 @@ databases:
         path: '/backup/isis_backup/A207-3/isisdata/latest/LIBRI/LIBRI'
         encoding: 'cp852'
         #limit: 10
-        modify_file: 'conf/modify/common.pl'
+        #modify_file: 'conf/modify/common.pl'
         normalize:
-          path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/ff-dupli.pl'
       - name: peri
         type: isis
         path: '/backup/isis_backup/A207-3/isisdata/latest/PERI/PERI'
@@ -453,6 +463,12 @@ databases:
         modify_file: 'conf/modify/ffkk-arti.pl'
         normalize:
           path: 'conf/normalize/ff-arti.pl'
+      - name: klibri
+        type: marc
+        path: '/data/webpac2/out/marc/ffkk-libri.marc'
+        encoding: 'UTF-8'
+        normalize:
+          path: 'conf/normalize/test.pl'
 
   fflo:
     name: 'Lingvistika, Filozofski fakultet u Zagrebu'
@@ -462,9 +478,10 @@ databases:
       path: '/backup/isis_backup/A108-1/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   fftu:
     name: 'Turkologija, Filozofski fakultet u Zagrebu'
@@ -474,9 +491,10 @@ databases:
       path: '/backup/isis_backup/B025-2/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffpe:
     name: 'Pedagogija, Filozofski fakultet u Zagrebu'
@@ -486,9 +504,10 @@ databases:
       path: '/backup/isis_backup/novi-40163/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffpo:
     name: 'Povijest, Filozofski fakultet u Zagrebu'
@@ -497,9 +516,10 @@ databases:
       type: isis
       path: '/backup/isis_backup/A-201-1/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffpu:
     name: 'Povijest umjetnosti, Filozofski fakultet u Zagrebu'
@@ -509,9 +529,10 @@ databases:
       path: '/backup/isis_backup/C124-3/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffps:
     # all variables here will be available as config variables in template
@@ -539,15 +560,17 @@ databases:
         # limit number of records to read from database
         #limit: 10
 
-        modify_file: 'conf/modify/common.pl'
+        #modify_file: 'conf/modify/common.pl'
         
         # define normalisation for that source
         normalize:
           # which tag to use in normalize xml for data?
           # tag: 'isis'
           # path to normalization xml
-          path: 'conf/normalize/ff-libri.pl'
-          #path: 'conf/normalize/isis_ffzg.yml'
+          #- path: 'conf/normalize/ff-dupli.pl'
+          #- path: 'conf/normalize/ff-nakladnicka.pl'
+          - path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/ff-dupli.pl'
 
       # another input database
       - name: peri
@@ -567,9 +590,10 @@ databases:
       path: '/backup/isis_backup/A224-6/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffsk:
     name: 'Skandinavistika, Filozofski fakultet u Zagrebu'
@@ -579,9 +603,10 @@ databases:
       path: '/backup/isis_backup/B009-2/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffsf:
     name: 'Slavenska filologija, Filozofski fakulteti u Zagrebu'
@@ -596,31 +621,19 @@ databases:
         normalize:
           - path: 'conf/normalize/ff-nakladnicka.pl'
           - path: 'conf/normalize/ff-libri.pl'
-      - name: nakl
-        type: isis
-        path: '/backup/isis_backup/A125-3/ISISDATA/latest/LIBRI/LIBRI'
-        encoding: 'cp852'
-        #limit: 10
-        modify_file: 'conf/modify/common.pl'
-        normalize:
-          path: 'conf/normalize/ff-nakladnicka.pl'
-      - name: series
-        type: marc
-        path: '/data/webpac2/out/marc/ffsf-nakl.marc'
-        encoding: 'UTF-8'
-        #limit: 10
-#       modify_file: 'conf/modify/common.pl'
-        normalize:
-          path: 'conf/normalize/ff-nakladnicka2.pl'
+        #  - path: 'conf/normalize/minimal.pl'
+        #  - path: 'conf/normalize/ff-dupli.pl'
       - name: mlibri
         type: isis
         path: '/data/isis_data/sfm/LIBRI/LIBRI'
 #       path: '/backup/isis_backup/A121-2/ISISDATA/latest/LIBRI/LIBRI'
         encoding: 'cp852'
         #limit: 10
-        modify_file: 'conf/modify/common.pl'
+        #modify_file: 'conf/modify/common.pl'
         normalize:
-          path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/minimal.pl'
+          - path: 'conf/normalize/ff-dupli.pl'
+        #  path: 'conf/normalize/ff-libri.pl'
       - name: peri
         type: isis
         path: '/backup/isis_backup/A125-2/ISISDATA/latest/PERI/PERI'
@@ -638,9 +651,10 @@ databases:
       path: '/backup/isis_backup/A002-3/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffta:
     name: 'Talijanistika, Filozofski fakultet u Zagrebu'
@@ -650,9 +664,10 @@ databases:
       path: '/backup/isis_backup/A225-2/isisdata/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffsr:
     name: 'Sredi¹nja èitaonica, Filozofski fakultet u Zagrebu'
@@ -662,9 +677,10 @@ databases:
       path: '/backup/isis_backup/A112-1/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/minimal.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 
   ffmic:
     name: 'Meðunarodni istra¾ivaèki centar za kasnu antiku i srednji vijek'
@@ -674,9 +690,10 @@ databases:
       path: '/backup/isis_backup/C107-9/ISISDATA/latest/LIBRI/LIBRI'
       encoding: 'cp852'
       #limit: 10
-      modify_file: 'conf/modify/common.pl'
+      #modify_file: 'conf/modify/common.pl'
       normalize:
-        path: 'conf/normalize/ff-libri.pl'
+        - path: 'conf/normalize/ff-libri.pl'
+        - path: 'conf/normalize/ff-dupli.pl'
 #
 #  efzg:
 #    name: 'Ekonomski fakutet u Zagrebu'
@@ -775,46 +792,46 @@ databases:
 #        path: 'conf/normalize/ff-libri.pl'
 
 ## Elektronièki èasopisi
-  emerald:
-    name: 'EmeraldFulltext'
-    input:
-      name: ecas
-      type: excel
-      path: '/data/FF/emerald/persistenturls.xls'
-      worksheet: 'All Titles'
-      from: 20
-      encoding: 'windows-1250'
-      #limit: 10
-      normalize:
-        path: 'conf/normalize/excel_emerald.pl'
+#  emerald:
+#    name: 'EmeraldFulltext'
+#    input:
+#      name: ecas
+#      type: excel
+#      path: '/data/FF/emerald/persistenturls.xls'
+#      worksheet: 'All Titles'
+#      from: 20
+#      encoding: 'windows-1250'
+#      #limit: 10
+#      normalize:
+#        path: 'conf/normalize/excel_emerald.pl'
 
 
 ## Wiley zbirka
-  wiley:
-    name: 'Wiley Intescience Full'
-    input:
-      - name: full
-        type: excel
-        path: '/data/FF/wiley/all_wiley_interscience_journals_2007.xls'
-        worksheet: 'All Wiley Journals 2007'
-        from: 1
-        encoding: 'UTF-8'
-        normalize:
-          path: 'conf/normalize/excel-wiley-minimal.pl'
-      - name: licenced
-        type: excel
-        path: '/data/FF/wiley/wiley_casopisi2006.xls'
-        worksheet: 'carnet'
-        from: 1
-        encoding: 'UTF-8'
-        normalize:
-          path: 'conf/normalize/excel-wiley.pl'
-      - name: nourl
-        type: marc
-        path: '/data/webpac2/out/marc/wiley-licenced.marc'
-        encoding: 'UTF-8'
-        normalize:
-          path: 'conf/normalize/marc-wiley-nourl.pl'
+#  wiley:
+#    name: 'Wiley Intescience Full'
+#    input:
+#      - name: full
+#        type: excel
+#        path: '/data/FF/wiley/all_wiley_interscience_journals_2007.xls'
+#        worksheet: 'All Wiley Journals 2007'
+#        from: 1
+#        encoding: 'UTF-8'
+#        normalize:
+#          path: 'conf/normalize/excel-wiley-minimal.pl'
+#      - name: licenced
+#        type: excel
+#        path: '/data/FF/wiley/wiley_casopisi2006.xls'
+#        worksheet: 'carnet'
+#        from: 1
+#        encoding: 'UTF-8'
+#        normalize:
+#          path: 'conf/normalize/excel-wiley.pl'
+#      - name: nourl
+#        type: marc
+#        path: '/data/webpac2/out/marc/wiley-licenced.marc'
+#        encoding: 'UTF-8'
+#        normalize:
+#          path: 'conf/normalize/marc-wiley-nourl.pl'
 #      - name: licenced
 #        type: marc
 #        path: '/data/FF/wiley/wiley-licenced.marc'
@@ -822,13 +839,13 @@ databases:
 #        normalize:
 #          path: 'conf/normalize/common.pl'
 
-  nsk:
-    name: 'Nacionalna i sveucilisna knjiznica'
-    input:
-      name: baza
-      type: marc
-      path: '/backup/data/NSK/BBaza.ISO'
-      encoding: 'ISO-8859-2'
-      normalize:
-        path: 'conf/normalize/marc-nsk.pl'
+#  nsk:
+#    name: 'Nacionalna i sveucilisna knjiznica'
+#    input:
+#      name: baza
+#      type: marc
+#      path: '/backup/data/NSK/BBaza.ISO'
+#      encoding: 'ISO-8859-2'
+#      normalize:
+#        path: 'conf/normalize/marc-nsk.pl'
 
index a12e400..89458b9 100644 (file)
@@ -1,19 +1,20 @@
 # this is pseudo hash/yaml format for regex mappings
 
+# FFSF - nekoliko zaredanih ISBN, odvojenih s '. - '
 10
   '*'
     'regex:^' => '^a'
-    '. -' => '^b'
-    '. -' => '^c'
-    '. -' => '^d'
-    ';' => '^b'
+    '. -' => '^a'
+#    '. -' => '^c'
+#    '. -' => '^d'
+    ';' => '^a'
 
 101
   '*'
     'regex:^' => '^a'
     ' ; ' => '^a'
-    ' ; ' => '^a'
-    ' ; ' => '^a'
+#    ' ; ' => '^a'
+#    ' ; ' => '^a'
 
 200
   '^a'
@@ -34,7 +35,9 @@
   '*'
     '^g' => ' ; '
 
-
+205
+  '^a'
+    ' \/ ' => '^f'
 
 210
   '^a'
   '^e'
     ' : ' => ' : ^f'
 
+# priprema za konverziju u 440:
+
 225
-  '^a'
-    ' \/ '  => '^f'
-    ' = '   => '^d'
-    '\)\('  => '^b' 
   '*'
-    ', ISSN ' => '^x'
+    ')('  => '^b' 
 
 
 250
index f74e431..a4c01cd 100644 (file)
@@ -1,13 +1,10 @@
-# ne konvertira se ako nema polje 200^a
+# konvertira se ako postoji polje 200^a
 
 if ( rec('200','a') ) {
 
-# Leader
+### LEADER
 # raspraviti 17,18
-#
 # u nekim knji¾nicama koristi se 999a i 999b
-#
-# vrijedi za ffan...
 
 if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
        marc_leader('05','c');
@@ -23,15 +20,18 @@ if ( rec('230') ) {
        marc_leader('19','r');
 }
 
-# 001 polje - Voyager
-#
-# privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
-# u marc 035a - System Number - ??
-# NSK zapisuje Voyagerov ID (001) - kako ???
+### 001 - Voyager
+
+### 008
+
+### 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?
+# kako mora izgledati polje 035$9? mo¾e li sadr¾avati slova i razmake?
 
 
 marc('035','6',
-join_with('',
+join_with(' ',
 #              config('input normalize path'),
 #              config('name'),
                config(),
@@ -44,8 +44,8 @@ join_with('',
 );
 
 
-# FFSF - nekoliko zaredanih ISBN, odvojenih s '. - '
-# drugi ISBN poèinje prefixom ISBN
+### 020
+# postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
 
 marc('020','a',
        regex('s/ ISBN //g',
@@ -53,8 +53,9 @@ marc('020','a',
        )
 );
 
-# u polje 040a - prefiks HR ?
-# NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
+
+### 040
+# za sve je isti
 
 marc('040','a',
        'HR FFZG'
@@ -68,13 +69,31 @@ marc('040','e',
        'HR PPIAK'
 );
 
-if ( rec('300') && first(rec('300')) =~ m/Prijevod/) {
+
+### 041 indikatori
+# pretpostavke o indikatorima:
+# 
+# 1. Ako postoji polje 300 i prvo pojavljivanje tog polja sadr¾i /Prijevod/ , i1 = 1
+# (Da li je napomena uvijek pisana?)
+#
+# 2. Podatak o prevodiocu u 200g. Problem: razlièiti oblici rijeèi, razlièiti 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)
+# pr. 821.111-2=163.42 je prijevod engleske drame na HR. 
+# to ima samo za knji¾evna djela, eseje.... 
+
+
+if ( rec('675') =~ m/\d=\d/ ) {
+#if ( first(rec('300')) =~ m/Prijevod/ || first(rec('300')) =~ m/Izv. stv. nasl./ ) {
        marc_indicators('041', 1, ' ');
 } else {
        marc_indicators('041', 0, ' ');
 }
 
-## naæi primjer u NSK
+
+### 041
+# ponovljivo polje konvertira se u ponovljivo potpolje
 
 #_debug(2);
 marc_repeatable_subfield('041','a',
@@ -82,26 +101,100 @@ marc_repeatable_subfield('041','a',
 );
 #_debug(0);
 
-# indikatori za èlanove. treba uvjetovati prema jezicima !!
 
-marc_indicators('245', 0, 0);
+### 080
+# 675 podpolja c, d ... - ¹to s njima ???
+
+marc('080','a',
+       rec('675','a')
+);
+
+
+### 084 - other classification (R)
+# NSK ga koristi za struènu oznaku NSK iz polja 681
+# NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
+# polje 686 koristi FFPS
+
+
+marc('084','a',
+       rec('686')
+);
+
+### 100
+# I1 = 0 ako je pseudonim (ima 700a, nema 700b)
+
+marc_indicators('100', 1, ' ');
+marc('100','a',
+       join_with(', ',
+               rec('700', 'a'),
+               rec('700', 'b')
+       )
+);
+
+
+### 111 i 110
+# provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
+
+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')
+);
+
+};
+
+
+### 245 indikatori
+# i1 = 1 za sve zapise
+# i2 = pretpostavlja se na temelju èlana na poèetku naslova i jezika
+# treba nadopuniti i dati podatke na verifikaciju knji¾nièarima
+
+marc_indicators('245', 1, 0);
 
 if (   ( rec('200','a') =~ m/^Die /) || 
        ( rec('200','a') =~ m/^Das /) || 
        ( rec('200','a') =~ m/^The /) ) {
-               marc_indicators('245', 0, 4);
+               marc_indicators('245', 1, 4);
 } 
 
 if (   ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) )
        {
-               marc_indicators('245', 0, 2);
+               marc_indicators('245', 1, 2);
 } 
 
-
-
+### 245
+# redoslijed polja
 
 #_debug(3);
-
 marc_compose('245',
        'a', suffix(
                rec('200','b') ? '. '   :
@@ -136,25 +229,17 @@ marc_compose('245',
        'c', rec('200','f'),
 
 # append to last subfield
-       '+', prefix('. ', rec('200','c') ),
+       '+', prefix('. ', 
+               rec('200','c') 
+       ),
 );
 
 
-#marc('440','a',
-#      suffix(
-#              rec('225','e') ?  ' : ' :
-#              rec('225','v') ?  ' ; ' :
-#                                '. ',
-#                      rec('225','a'),
-#      )
-#);
-
-
-
 
+#_debug(0);
 
 
-#_debug(0);
+### 250
 
 marc('250','a',
        suffix(
@@ -168,13 +253,15 @@ marc('250','b',
        rec('205','f')
 );
 
+
+### 260
 # ponovljiva potpolja u originalnom redosljedu
 
 marc_original_order('260', '210');
 
 
+### 300
 # provjeriti interpunkcije !!
-# u NSK nesto ne stima
 
 marc('300','a',
        suffix(
@@ -208,31 +295,19 @@ marc('300','e',
 );
 
 
-# provjeriti
+### 440
+# 2.ind. prema jeziku i èlanu
 
 marc_indicators('440', ' ', '0');
 
 marc('440','a',
-       join_with(' / ',
+       join_with(' : ',
                rec('225','a'),
-               rec('225','f')
+               rec('225','e')
        )
-);
+) ;
 
-#marc('440','a',
-#      join_with(' : ',
-#              rec('225','a'),
-#              join_with(" =  ",
-#                      rec('225','d'),
-#                      join_with(" / ",
-#                              rec('225','e'),
-#                              rec('225','f')
-#                      )
-#              )
-#      )
-#);
-
-marc('440','h',
+marc('440','n',
        rec('225','h')
 );
 
@@ -251,14 +326,20 @@ marc('440','x',
        rec('225','x')
 );
 
-#marc('490','v',
-#      join2_with(225, 'v', ' , ', 225,'w');
-#      join_with(', ',
-#              rec('225','v'),
-#              rec('225','w')
-#      )
+marc('440','a',
+       rec('225','b'),
+);
+
+
+### 490 
+#
+#marc('490','a',
+#      rec('225','a')
 #);
 
+
+### 500
+
 marc('500','a',
        rec('300')
 );
@@ -275,6 +356,8 @@ marc('500','a',
        rec('314')
 );
 
+### 504
+
 marc('504','a',
        rec('320')
 );
@@ -284,7 +367,9 @@ marc('504','a',
 # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
 # standard i validacije dopu¹taju 501 (R) i 505 (R)
 
+## 505
 ## FFPS 327 - sadrzaj
+
 if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
        marc_indicators('505', '0', ' ');
        marc('505','a',
@@ -295,10 +380,14 @@ if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
 }
 
 
+
 ## napomene uz konverziju polja 330:
 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
 
 
+### 520
+# mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
+
 # FFPS 330 (NP) - sa¾etak
 if ( config() =~ m/ffps/ ) { 
        marc('520','a',
@@ -315,53 +404,39 @@ if ( config() =~ m/fftu/ ) {
        );
 }
 
+
+### 538
+
 marc('538','a',
        rec('337','a')
 );
 
 
-# mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
+### 246
 
 marc_indicators('246', 1, 3);
 marc('246','a',
        rec('532')
 );
 
+### 655
+
 marc_indicators('655', ' ', 4);
 marc('655','a',
        rec('608')
 );
 
+### 653
+
 marc_indicators('653', 0, ' ');
 marc('653','a',
        rec('610')
 );
 
-# 675 podpolja c, d ... - ¹to s njima ???
-
-marc('080','a',
-       rec('675','a')
-);
-
-# 084 je other classification (R)
-# NSK ga koristi za struènu oznaku NSK iz polja 681
-# NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
-#
-# polje 686 koristi FFPS
-
-marc('084','a',
-       rec('686')
-);
+#_debug(2);
 
-marc_indicators('100', 1, ' ');
-marc('100','a',
-       join_with(', ',
-               rec('700', 'a'),
-               rec('700', 'b')
-       )
-);
 
-#_debug(2);
+### 700
 
 marc_indicators('700', 1, ' ');
 
@@ -430,8 +505,7 @@ marc('700','a',
 );
 
 ## treba provjeriti da li polje 330 sadrzi jos neke podatke koji mogu biti u <> ili su tu iskljucivo autori? da li samo autori ili neke druge osobe?
-
-
+#
 # marc('700','a',
 #      rec('330','a')
 # );
@@ -461,43 +535,9 @@ marc('700','a',
 #_debug(0);
 
 
-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')
-);
 
-};
 
+### 740
 
 marc_indicators('740', 0, ' ');
 
@@ -506,21 +546,61 @@ marc_indicators('740', 0, ' ');
 #      rec('200','c')
 # );
 
-# marc('740','a',
-#      rec('200','k')
-# );
+ marc('740','a',
+       rec('200','k')
+ );
 
 # } else {
 
-       marc('740','a',
-               rec('464','a')
-       );
+#marc('740','a',
+#      rec('464','a')
+#);
 
 # };
 
+### generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
+
+
+my $series_key = join_with('',
+       rec('225','a'),
+       rec('210','a'),
+       rec('210','b'),
+);
+
+if ($series_key) {
+
+       marc_indicators('760', 0, ' ');
+       
+       marc('760','w',
+               get( $series_key )
+       );
+
+}
+
+### testing
+#
+# my $dup_key = join_with('',
+#      rec('200','a'),
+#);
+#
+#if ($dup_key) {
+#      marc('995','a',
+#              get( $dup_key )
+#      );
+#}
+#
+#
+# marc_indicators('776', 0, ' ');
+# 
+# marc('776','a',
+#      rec('452','1')
+# );
+#
+
 
+### vi¹erazinci 
+# odvojiti u posebnu datoteku i dokumentirati
 
-## vi¹erazinci 
 
 if ( rec('230') ) {
 
@@ -652,59 +732,44 @@ if ( rec('230') ) {
        );
 
  
-};
-
-my $nak_cj = get( rec('225','a') );
-
-if ($nak_cj) {
-
-marc('760','w',
-       $nak_cj
-);
-
 }
 
-marc_indicators('776', 0, ' ');
-
-marc('776','a',
-       rec('452','1')
-);
-
-#marc('900','a',
-#      lookup(
-#              sub { rec('000') },
-#              'ffps','libri',
-#              sub { rec('200','a') . rec('200','f') . rec('205') },
-#      )
-#);
-
-#marc('901','a',
-#      lookup(
-#              sub { 'NSK: ' . rec('200','a') },
-#              'nsk','baza',
-#              sub { rec('200','a') },
-#              sub { rec('10') }
-#      ) 
-#);
+##################################
+##                              ##
+## pomoæni ispisi - privremeno! ##
+##                              ##
+##################################
 
 if ( ! rec('464') && rec('200','c') ) {
-       marc('003','a',
+       marc('002',
                'ima-200c-nema-464'
        );
 }
 
 if ( ! rec('464') && rec('200','k') ) {
-       marc('005','a',
+       marc('003',
                'ima-200k-nema-464'
        );
 }
 
 if ( ! ( rec('200','c') || rec('200','k') ) && rec('464') ) {
-       marc('006','a',
+       marc('004',
                'ima-464-nema-200c-ili-200k'
        );
 }
 
 
 
+#_debug(2);
+
+if ( rec('200') =~ m/prev/ ) {
+       marc('005',
+               'prijevod'
+       );
+}
+
+#_debug(0);
+
+
+
 }
diff --git a/conf/normalize/ff-nakladnicka.pl b/conf/normalize/ff-nakladnicka.pl
new file mode 100644 (file)
index 0000000..98a2566
--- /dev/null
@@ -0,0 +1,130 @@
+if (
+       rec('225','a')  # da li je nakladnicka cjelina?
+       &&              # i
+       count( lookup(
+               sub { 1 },
+               'ffsf','blibri',
+               sub {
+                       join_with('',
+                               rec('225','a'),
+                               rec('210','a'),
+                               rec('210','b'),
+                       )
+               }
+       ) ) > 1
+) {
+
+my $series_key =
+join_with('',
+       rec('225','a'),
+       rec('210','a'),
+       rec('210','b'),
+);
+
+my $series = get( $series_key );
+
+if ($series) {
+       warn "nije novi";
+} else {
+
+
+$series = join_with(' ',
+       config(),
+       'LS',
+       rec('000')
+);
+
+set( $series_key => $series );
+
+# Leader
+marc_leader('05','n');
+marc_leader('06','a');
+marc_leader('07','s');
+marc_leader('18','i');
+
+marc('035','6', $series );
+
+marc('040','a',
+       'HR FFZG'
+);
+
+marc('040','b',
+       'hrv'
+);
+
+marc('040','e',
+       'HR PPIAK'
+);
+
+marc_indicators('041', 0, ' ');
+
+marc_repeatable_subfield('041','a',
+       rec('101')
+);
+
+# indikatori za èlanove !!
+
+marc_indicators('245', 0, 0);
+
+if (   ( rec('200','a') =~ m/^Die /) || 
+       ( rec('200','a') =~ m/^Das /) || 
+       ( rec('200','a') =~ m/^The /) ) {
+               marc_indicators('245', 0, 4);
+} 
+
+if (   ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) )
+       {
+               marc_indicators('245', 0, 2);
+} 
+
+# treba dodati ostala polja za naslov ... !!!
+
+marc('245','a',
+       join_with(' : ',
+               rec('225','a'),
+               rec('225','e')
+       ),
+);
+
+marc('245','n',
+       rec('225','h'),
+);
+
+marc('245','p',
+       rec('225','i'),
+);
+
+
+marc_original_order('260', '210');
+
+marc_remove('260','c');
+
+marc('300','c',
+       suffix(
+               rec('215','e') ? ' + ' :
+                                ' ',
+                       rec('215','d')
+
+       )
+);
+
+marc('900','a',
+       lookup(
+               sub { rec('702','a') . ', ' . rec('702','b') },
+               'nsk','baza',
+               sub { rec('200','a') . rec('210','a') . rec('210','c') },
+               sub { 
+                       regex('s/[:|,]//g',
+                               rec('225','a') . rec('210','a') . rec('210','b')
+                       );
+               },
+       )
+);
+
+marc_duplicate();
+marc_remove('*');
+
+
+} # $series
+
+}
index 66b890a..3ceb8ed 100644 (file)
@@ -20,10 +20,67 @@ marc('022','a',
 );
 
 
-marc_indicators('245', 0, 0);
-marc('245','a',
-       rec('200','a')
+marc_indicators('245', 1, 0);
+
+if (   ( rec('200','a') =~ m/^Die /) || 
+       ( rec('200','a') =~ m/^Das /) || 
+       ( rec('200','a') =~ m/^The /) ) {
+               marc_indicators('245', 1, 4);
+} 
+
+if (   ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) )
+       {
+               marc_indicators('245', 1, 2);
+} 
+
+
+### 245
+# redoslijed polja
+
+#_debug(3);
+marc_compose('245',
+       'a', suffix(
+               rec('200','b') ? '. '   :
+               rec('200','k') ? ' ; '  :
+               rec('200','d') ? ' = '  :
+               rec('200','e') ? ' : '  :
+               rec('200','f') ? ' / '  :
+                                '.',
+                       rec('200','a')
+       ),
+#      'h', rec('200','b'),
+       'b', suffix(
+               ( rec('200','k') && rec('200','f') ) ? ' / ' :
+                                    ' ',
+                       join_with(' ; ',
+                               rec('200','k'),
+                       ),
+       ),
+       'b', suffix(
+               ( rec('200','d') && rec('200','f') ) ? ' / ' :
+                                                      ' ',
+                               rec('200','d'), 
+       ),
+       'b', suffix(
+               ( rec('200','e') && rec('200','f') ) ? ' / ' :
+                                                      ' ',
+                       join_with(' : ',
+                               rec('200','e'),
+                       ),
+       ),
+
+       'c', rec('200','f'),
+
+# append to last subfield
+       '+', prefix('. ', 
+               rec('200','c') 
+       ),
 );
 
 
+marc('260','c',
+       rec('210','d')
+       
+);
+
 }
diff --git a/conf/validate/fffi b/conf/validate/fffi
deleted file mode 100644 (file)
index 90946e2..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-0 
-10 
-101 
-200 a c d e f g k v x
-205 a 
-210 a b c d
-215 a c d 
-220
-221
-222
-223
-225 a d e f h i v w 
-230 a d e f g k v 
-231 a d e f g k v 
-232 a e f g k v 
-233 a e f g k v 
-240 a
-241 a
-242 a
-243 a
-250 a c d
-251 a c d
-252 a c d
-253 a c d  
-260 a c d 
-261 a c d 
-262 a c d 
-263 a c d 
-270 a d e f h i k v w x y z
-271 a d e f h i k v w x y z
-272 a d e f h i k v w x y z
-273 a d e f h i k v w x y z 
-280 
-281 
-282 
-283 
-290 
-291 
-292 
-293 
-300 
-314 
-320 
-327 
-330
-410 0
-423 a b c e z
-464 a c f g x y
-532 a 
-610 
-675 a b c d
-700 4 a b 
-701 4 a b c d
-702 4 a b
-710 4 a b c d e f
-801 
-990 
-991 
-994 a b c
-996
-998 a b 
-999 a b
diff --git a/conf/validate/ffkf b/conf/validate/ffkf
deleted file mode 100644 (file)
index 0bfd6f1..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-0 
-10 
-101 
-200 a c d e f g k
-205 a f
-210 a c d 
-215 a c d e 
-225 a e h i v w
-230 a c d e f g v
-231 a c d e f g v
-232 a c d e f g v
-233 a c d e f g v
-240 a f 
-241 a c d f
-242 a f
-243 a
-250 a c d 
-251 a c d 
-252 a c d
-253 a c d
-260 a c d
-261 a c d
-262 a c d
-263 a c d 
-270 a e h i v w
-271 a e h i v w
-272 a e h i v w
-273 a e h i v w 
-280
-281
-282
-283
-290
-291
-292
-293
-300 
-320 
-327
-330 
-423 a b c z
-532
-610 
-675 a b c d
-700 a b
-701 a b c d e f g h i j k l m n o p q r
-702 a b c d e f g h i j k l m n o p q r s t u v w x y 
-710 a b c d e f 
-711 
-801 
-990 
-991 
-994 a b c
-996
-998 a b 
-999  
diff --git a/conf/validate/ffps b/conf/validate/ffps
deleted file mode 100644 (file)
index 61a9b90..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-0 
-10 
-101 
-200 a! b d e* f g* k 
-205 a!
-210 a* c* d 
-215 a c d e 
-225 a d e f h i v w x
-300 
-305
-307
-314
-320 
-327
-330
-337
-410
-608
-610 
-675 a b 
-686
-700 a b
-701 a b c d e f g h 
-702 a b c d e f g h
-710 a b c d e f 
-711 a b c d e f
-801 
-856 u
-888
-990 
-991 
-994 a b c
-996
-998 a!
-999
index 61a9b90..d7cb1c9 100644 (file)
@@ -1,9 +1,9 @@
 0 
 10 
 101 
-200 a! b d e* f g* k 
+200 a! b d e* f g* k 
 205 a!
-210 a* c* d 
+210 a* c* d! 
 215 a c d e 
 225 a d e f h i v w x
 300 
diff --git a/conf/validate/ffzg b/conf/validate/ffzg
deleted file mode 100644 (file)
index a9a4310..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-0 
-10 
-101 
-200 a b c d e f g k
-205 a 
-210 a c d 
-215 a c d 
-225 a e h i v w
-230 a e f v
-231 a e f v
-232 a e f v
-233 a e f v
-240 
-241 
-242 
-243 
-250 
-251 
-252 
-253 
-260  
-261 
-262 
-263 
-270 
-271 
-272 
-273 
-280 
-281 
-282 
-283 
-290 
-291 
-292 
-293 
-300 
-314 
-320 
-327 
-330 
-423 a b c z
-464 a g f c x z
-503 a b
-532
-608 
-610 
-675 a b c d 
-686
-700 a b 
-701 a b c d
-702 a b c d  
-710 a b c d e f 
-711 a
-801 
-856 u
-930
-931
-932
-933
-934
-935
-990 
-991 
-994 a b c
-995
-996
-998 a b 
-999 a b