local
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 6 Sep 2008 10:54:35 +0000 (10:54 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 6 Sep 2008 10:54:35 +0000 (10:54 +0000)
git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@1112 07558da8-63fa-0310-ba24-9fe276d99e06

conf/mjesec.yml
conf/modify/common.pl
conf/normalize/ff-libri.pl
conf/validate/fffi-libri

index 703f455..a756e03 100644 (file)
@@ -1,4 +1,5 @@
 --- #YAML:1.0
+
 # DO NOT USE TABS FOR INDENTATION OR label/value SEPARATION!!!
 
 # encoding of this configuration file
@@ -84,7 +85,7 @@ webpac:
 editor:
   # open this record when opening editor
   # (it will also be used to deduce default database and input)
-  default_record_uri: 'ps/libri/1'
+  default_record_uri: 'ps/peri/1'
 
 # directives after this are used when indexing using core WebPAC modules
 
@@ -144,167 +145,426 @@ databases:
         credit: 10000
       - to: kem 
         credit: 10000
-      - to: efzg 
-        credit: 10000
 
+#  # site with alternative databases
+#  'hr':
+#    name: 'Primjer za hrvatsko suèelje'
+#    links:
+#      - to: ffps
+#        credit: 10000
+#      - to: ffkk
+#        credit: 5000
+#      - to: emerald
+#        credit: 5000
 
-#  hazu:
-#    name: 'HAZU'
-#    input:
-#      - name: bib
-#        type: isis
-#        path: '/data/unizg/hazu/BIB'
-#        encoding: 'cp852'
-#        modify_file: 'conf/modify/common.pl'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#
-#  sand:
-#    name: 'SAND'
-#    input:
-#      name: casopisi
-#      type: dbf
-#      path: '/data/unizg/casopisi/sys/cas2000.dbf'
-#      normalize:
-#        path: 'conf/normalize/common.pl'
-##      mapping_path: 'conf/input/dbf/cas2000.yml'
-#  
-#  hidra:
-#    name: 'HIDRA'
-#    input:
-#      - name: bib
-#        type: isis
-#        path: '/data/hidra/test/BIB'
-#        encoding: 'cp852'
-#        modify_file: 'conf/modify/common.pl'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#
-#  efzg:
-#    name: 'EFZG'
-#    input:
-#      - name: crolist
-#        type: marc
-#        path: '/data/unizg/drustvene/efzg/unimarc.iso'
-#        encoding: 'ISO-8859-2'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#  
-#  ipu:
-#    name: 'Institut za povijest umjetnosti'
-#    input:
-#      - name: bibl
-#        type: isis
-#        path: '/data/unizg/humanistika/ipu/20071115/bibl/BIBL'
-#        encoding: 'cp852'
-#        # modify_file: 'conf/modify/common.pl'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#
-#  zvonar:
-#    name: 'HAZU Odsjek za povijesne znanosti'
-#    input:
-#      - name: libri
-#        type: isis
-#        path: '/data/unizg/humanistika/hazu-p/LIBRI'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#      - name: peri
-#        type: isis
-#        path: '/data/unizg/humanistika/hazu-p/PERI'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#
-#  stross:
-#    name: 'Strossmayerova galerija'
-#    input:
-#      - name: bib
-#        type: isis
-#        path: '/data/unizg/stross/BIB'
-#        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#      
-#  koncar:
-#    name: 'Konèar'
-#    input:
-#      - name: unimar
-#        type: isis
-#        path: '/data/tehnika/koncar/UNIMAR'
+
+#  'ffps':
+#    name: 'Knji¾nica Odsjeka za psihologiju'
+#    links:
+#      - to: ffps
+#        credit: 10000
+
+#  'drustvene':
+#    name: 'Katalog knji¾nica dru¹tvenih znanosti'
+#    links:
+#      - to: efzg
+#        credit: 10000
+#      - to: eizg
+#        credit: 10000
+#      - to: efos
+#        credit: 10000
+#      - to: irmo
+#        credit: 10000
+#      - to: hika
+#        credit: 10000
+#      - to: iztzg
+#        credit: 10000
+#      - to: jzav
+#        credit: 10000
+#      - to: ijf 
+#        credit: 10000
+   
+#  'ecasopisi':
+#    name: 'Katalog elektronièkih èasopisa'
+#    links:
+#      - to: emerald
+#        credit: 10000
+
+  ffan:
+    name: 'Anglistika, Filozofski fakultet u Zagrebu'
+    input:
+      - name: mapirano 
+        type: excel
+        path: '/data/isis_data/an/signature/an-mapirano-proba.xls'
+        encoding: 'windows-1250'
+        normalize:
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: starasig 
+        type: excel
+        path: '/data/isis_data/an/signature/an-stara_signatura.xls'
+        encoding: 'windows-1250'
+        normalize:
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: libri
+        type: isis
+#        path: '/backup/isis_backup/A105-1/isisdata/latest/LIBRI/LIBRI'
+        path: '/data/isis_data/lj2008/an/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+  #        - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffar:
+    name: 'Arheologija, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+#        path: '/backup/isis_backup/A018-2/isisdata/latest/LIBRI/LIBRI'
+        path: '/data/isis_data/lj2008/ar/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffet:
+    name: 'Etnologija, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A203-3/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  fffi:
+    name: 'Filozofija, Filozofski fakultet u Zagrebu'
+    input:
+#      - name: sabrana
+#        type: excel
+#        path: '/data/isis_data/fi/sabrana/filozofija-sabrana.xls'
+#        encoding: 'windwows-1250'
 #        normalize:
-#          path: 'conf/normalize/minimal.pl'
-#      
-  datumi:
-    name: 'Nevaljali datumi'
+#          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: mapirano 
+        type: excel
+        path: '/data/isis_data/fi/signature/fi-mapirano.xls'
+        encoding: 'windows-1250'
+        normalize:
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: libri
+        type: isis
+#        path: '/backup/isis_backup/A102-1B/ISISDATA/latest/LIBRI/LIBRI'
+        path: '/data/isis_data/lj2008/fi/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  fffo:
+    name: 'Fonetika, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+#        path: '/backup/isis_backup/novi-40162/ISISDATA/latest/LIBRI/LIBRI'
+        path: '/data/isis_data/fo/bkp/20080723/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffge:
+    name: 'Germanistika, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/novi-40166/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffhu:
+    name: 'Hungarologija, Filozofski fakultet u Zagrebu'
     input:
-      - name: tablica
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/b001-3/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffiz:
+    name: 'Informacijske znanosti, Filozofski fakultet u Zagrebu'
+    input:
+      - name: mapirano 
+        type: excel
+        path: '/data/isis_data/iz/signature/iz-mapirano.xls'
+        encoding: 'windows-1250'
+        normalize:
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: starasig 
         type: excel
-        path: '/data/isis_data/greske/datum_unosa.xls'
+        path: '/data/isis_data/iz/signature/stara-signatura.xls'
         encoding: 'windows-1250'
         normalize:
-          - path: 'conf/normalize/common.pl'
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A129-2/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+  #  output:
+  #    - module: 'Excel'
+  #      path: '/data/isis_data/iz/reports/nova-signatura.xls'
+  #    - name: novasig
+  #      type: marc
+  #      path: '/data/webpac2/out/marc/ffiz-libri.marc'
+  #      encoding: 'UTF-8'
+  #      normalize:
+  #        path: 'conf/normalize/ffiz-novasig.pl'
+  #  output:
+  #    - module: 'Excel'
+  #      path: '/data/isis_data/iz/reports/lista-novih-signatura.xls'
+
+  ffkf:
+    name: 'Klasièna filologija, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A209-2/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
   
-#  ffps:
-#    name: 'Psihologija, Filozofski fakultet u Zagrebu'
-#    code: 'ps'
-#    url: 'http://www.knjiznice.ffzg.hr/psihologija'
+  ffkk:
+    name: 'Komparativna knji¾evnost, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A206-4/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  fflo:
+    name: 'Lingvistika, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A108-1/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffpe:
+    name: 'Pedagogija, Filozofski fakultet u Zagrebu'
+    input:
+      - name: signature
+        type: excel
+        path: '/data/isis_data/pe/map-ped.xls'
+        encoding: 'windows-1250'
+        normalize:
+          path: 'conf/normalize/xls2xls-min.pl'
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/b226-1/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffpo:
+    name: 'Povijest, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A-201-1/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffpu:
+    name: 'Povijest umjetnosti, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/C124-3/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffps:
+    name: 'Psihologija, Filozofski fakultet u Zagrebu'
+    code: 'ps'
+    url: 'http://www.knjiznice.ffzg.hr/psihologija'
+    input:
+      - name: signature
+        type: excel
+        path: '/data/isis_data/ps/map-psi.xls'
+        encoding: 'windows-1250'
+        normalize:
+          path: 'conf/normalize/xls2xls-min.pl'
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/sunce2/isisdata/latest/LIBRI/'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffro:
+    name: 'Romanistika, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A224-2/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+#  ffsk:
+#    name: 'Skandinavistika, Filozofski fakultet u Zagrebu'
 #    input:
 #      - name: libri
 #        type: isis
-#        path: '/backup/isis_backup/sunce2/isisdata/latest/LIBRI/'
+#        path: '/backup/isis_backup/B009-1/ISISDATA/latest/LIBRI/LIBRI'
 #        encoding: 'cp852'
+#        #limit: 10
 #        modify_file: 'conf/modify/common.pl'
 #        normalize:
-#          - path: 'conf/normalize/report-sorted-txt.pl'
-#    output:
-##      - module: 'Excel'
-##        path: '/data/isis_data/ps/reports/libri-nema-jezik.xls'
-#      - module: 'Sorted'
-#        path: 'out/report/mfn/ps/'
-##      - module: 'Excel'
-##        path: '/data/isis_data/ps/reports/autori-udk.xls'
-
-
-  stross:
-    name: 'Strossmayerova galerija'
+#          - path: 'conf/normalize/ff-libri.pl'
+#          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  ffsf:
+    name: 'Slavenska filologija, Filozofski fakulteti u Zagrebu'
     input:
-      - name: bib
+      - name: librib
         type: isis
-        path: '/data/unizg/stross/BIB'
+        path: '/backup/isis_backup/A125-3/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
         normalize:
-          - path: 'conf/normalize/report-sorted-txt.pl'
-    output:
-#      - module: 'Excel'
-#        path: '/data/isis_data/iz/reports/libri-nema-jezik.xls'
-      - module: 'Sorted'
-        path: 'out/report/mfn/iz/'
-#      - module: 'Excel'
-#        path: '/data/isis_data/iz/reports/autori-udk.xls'
+  #        - path: 'conf/normalize/ff-nakladnicka.pl'
+          - path: 'conf/normalize/ff-libri.pl'
+  #        - path: 'conf/normalize/ff-libri-svesci.pl'
+      - name: librim
+        type: isis
+        path: '/backup/isis_backup/A121-1/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
 
+  ffso:
+    name: 'Sociologija, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A002-3/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
 
-  casopisi:
-    name: 'Èasopisi u Knji¾nicama FF-a'
+  ffta:
+    name: 'Talijanistika, Filozofski fakultet u Zagrebu'
     input:
-      - name: ff
+      - name: mapirano 
         type: excel
-        path: '/data/isis_data/CASOPISI/svi-casopisi-FF.xls'
-        ncoding: 'utf-8'
+        path: '/data/isis_data/ta/signature/ta-za_mapiranje.xls'
+        encoding: 'windows-1250'
         normalize:
-          - path: 'conf/normalize/ff-casopisi-xls.pl'
-#          - path: 'conf/normalize/ff-casopisi-marc.pl'
-    output:
-      - module: 'Excel'
-        path: 'out/excel/casopisi-FF-dupli-knjiznice.xls'
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: starasig 
+        type: excel
+        path: '/data/isis_data/ta/signature/ta-stara_signatura.xls'
+        encoding: 'windows-1250'
+        normalize:
+          - path: 'conf/normalize/xls2xls-min.pl'
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A225-2/isisdata/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+  
+  fftu:
+    name: 'Turkologija, Filozofski fakultet u Zagrebu'
+    input:
+      - name: libri
+        type: isis
+#        path: '/backup/isis_backup/B025-2/ISISDATA/latest/LIBRI/LIBRI'
+        path: '/data/isis_data/tu/bkp/20080228/LIBRI/LIBRI'
+        encoding: 'cp852'
+        #limit: 10
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+#  ffmic:
+#    name: 'Meðunarodni istra¾ivaèki centar za kasnu antiku i srednji vijek'
+#    input:
+#      - name: libri
+#        type: isis
+#        path: '/backup/isis_backup/C107-2/ISISDATA/latest/libri/LIBRI'
+#        encoding: 'cp852'
+#        #limit: 10
+#        modify_file: 'conf/modify/common.pl'
+#        normalize:
+#          - path: 'conf/normalize/ff-libri.pl'
+#          - path: 'conf/normalize/ff-libri-svesci.pl'
 
-  fflibri:
-    name: 'Filozofski fakultet u Zagrebu'
+  ffsr:
+    name: 'Sredi¹nja èitaonica, Filozofski fakultet u Zagrebu'
     input:
-      - name: marc
+      - name: libri
+        type: isis
+        path: '/backup/isis_backup/A112-1/ISISDATA/latest/LIBRI/LIBRI'
+        encoding: 'cp852'
+        modify_file: 'conf/modify/common.pl'
+        normalize:
+          - path: 'conf/normalize/ff-libri.pl'
+          - path: 'conf/normalize/ff-libri-svesci.pl'
+
+  nsk:
+    name: 'NSK'
+    input:
+      - name: baza
         type: marc
-        path: 'out/marc/fflibri.marc'
+        path: '/home/mglavica/NSK/data/BBaza.ISO'
         encoding: 'ISO-8859-2'
-        normalize:
-          - path: 'conf/normalize/ff-libri-dupli.pl'
+        normalize: 'conf/normalize/ffreports-xls-nsk.pl'
     output:
       - module: 'Excel'
-        path: 'out/excel/knjige-duplo.xls'
-
+        path: '/data/isis_data/nsk-sabrana.xls'
index 34e3d36..7687cb8 100644 (file)
@@ -2,17 +2,9 @@
 
 # FFSF - nekoliko zaredanih ISBN, odvojenih s '. - '
 
-#10
-#  '*'
-#    'regex:^' => '^a'
-#    'regex:\(' => ' ('
-#    '  ISBN ' => '^z'
-#    '. - ' => '^a'
-#    ' ; ' => '^a'
-#    '; ' => '^a'
-#    ';' => '^a'
-#    'ISBN ' => ''
-##    '-' => ''
+991
+  'regex:^' => '^8ANG^aFFZG^bFFZG^cSE^iang'
+  'regex:$' => '^yKNJ'
 
 10
   '*'
@@ -25,7 +17,6 @@
     'ISBN ' => ''
 #    '-' => ''
 
-
 101
   '*'
     'regex:^' => '^a'
@@ -33,7 +24,6 @@
 #    ' ; ' => '^a'
 #    ' ; ' => '^a'
 
-
 200
   '*'
     '[A]'   => 'A'
@@ -76,6 +66,8 @@
 
 210
   '*'
+    '^b' => '^a'
+    '^g' => '^c'
     ' ; ' => '^a'
     ' : ' => '^c'
   '*'
   '*'
     'regex:$' => '.'
 
-
-
 # priprema za konverziju u 440
 
 #225
 #    '[Der]' => 'Der'
 #    '[Le]'  => 'Le'
 
-
-
-
-
-
-
 #330
 #  '*'
 #    '><' => '^a'
 #    'g'  => 'a'
 #    'g2' => 'f'
 
+610
+  '*'
+    '_ _' => ' -- '
+
 230
-  '^a'
+  '^d'
     '^e' => ' : '
-    '^f' => ' / '
+  '^f'
+    '^g' => ' ; '
+
+231
+  '^e'
+    '^k' => ' ; '
+    '^g' => '^f'
+  '^f'
+    '^g' => ' ; '
+
+232
+  '^e'
+    '^k' => ' ; '
+    '^g' => '^f'
+  '^f'
+    '^g' => ' ; '
+
+233
+  '^e'
+    '^k' => ' ; '
+    '^g' => '^f'
+  '^f'
+    '^g' => ' ; '
 
 250
   '^a'
     '^c' => ' : '
     '^d' => ' ; '
 
-
 270
   '^a'
     ' ; ' => '^v'
 
-231
-  '^a'
-    '^e' => ' : '
-    '^f' => ' / '
+#231
+#  '^a'
+#    '^e' => ' : '
+#    '^f' => ' / '
 
 251
   '^a'
     '^c' => ' : '
     '^d' => ' ; '
 
-
 271
   '^a'
     ' ; ' => '^v'
 
-232
-  '^a'
-    '^e' => ' : '
-    '^f' => ' / '
+#232
+#  '^a'
+#    '^e' => ' : '
+#    '^f' => ' / '
 
 252
   '^a'
   '^a'
     ' ; ' => '^v'
 
-233
-  '^a'
-    '^e' => ' : '
-    '^f' => ' / '
+#233
+#  '^a'
+#    '^e' => ' : '
+#    '^f' => ' / '
 
 253
   '^a'
   '^a'
     ' ; ' => '^v'
 
-
 464
   '^a'
     '^f' => ' / '
     '^g' => ', '
 
-700
-  '^a'
-    '^b' => ', '
+## ne mo¾e ovako jer se izgubi informacija za indikator - ISPRAVITI u normalize fajlovima !!!
+#700
+#  '^a'
+#    '^b' => ', '
 
 701
   '^a'
   '^a'
     '^b' => ', '
 
-990
-  '*'
-    '[' => ''
-    ']' => ''
-    'PE' => ''
-    'SF' => ''
+#990
+#  '*'
+#    '[' => ''
+#    ']' => ''
+#    'PE' => ''
+#    'SF' => ''
 
-991
-  'regex:^' => '^8FIL^aFFZG^bFFZG^c7^ifil'
-  'regex:$' => '^yKNJ'
 
 220
-  'regex:^' => '^8FIL^aFFZG^bFFZG^c7^ifil'
+  'regex:^' => '^8ANG^aFFZG^bFFZG^cSE^iang'
   'regex:$' => '^yKNJ'
 
 221
-  'regex:^' => '^8FIL^aFFZG^bFFZG^c7^ifil'
+  'regex:^' => '^8ANG^aFFZG^bFFZG^cSE^iang'
   'regex:$' => '^yKNJ'
 
 222
-  'regex:^' => '^8FIL^aFFZG^bFFZG^c7^ifil'
+  'regex:^' => '^8ANG^aFFZG^bFFZG^cSE^iang'
   'regex:$' => '^yKNJ'
 
 223
-  'regex:^' => '^8FIL^aFFZG^bFFZG^c7^ifil'
+  'regex:^' => '^8ANG^aFFZG^bFFZG^cSE^iang'
   'regex:$' => '^yKNJ'
index aa920a8..a940113 100644 (file)
@@ -4,13 +4,17 @@
 # UNIMARC formatu, sa vi¹estrukim odstupanjima od standarda.
 
 
-## konvertira se ako postoji polje 200^a
+## lookup rezultat za sabrana djela
+my $sabrana;
+
 
+## konvertira se ako postoji polje 200^a
 if ( rec('200','a') ) {
 
 ### LEADER
 
 ## LDR 05 - c = pregledan ; n = new
+## provjeriti za svaku bazu koje polje koristi
 ## 999^aP - SFM
 
 if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {
@@ -25,24 +29,42 @@ if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {
 
 ## LDR 07 - m - Monograph/item
 
+if ( config() =~ m/fffi/ ) { 
+       $sabrana = 
+               lookup(
+                       sub{ rec('A') },
+                       'fffi','sabrana',
+                       sub { rec('B') },
+                       sub { rec('000') }
+               );
+}
+
+if ( ! $sabrana ) {
        marc_leader('07','m');
+} else {
+       marc_leader('07','c');
+}
 
-## LDR 17 - 3
+## LDR 17 - Encoding level ; 7 - minimal level
        marc_leader('17','7');
 
-## LDR 18 
+## LDR 18 - i - isbd 
        marc_leader('18','i');
 
-## LDR 19 - razjasniti
-# nema vi¹e r, ima #, a, b ili c
+## LDR 19
+# # - Not specified or not applicable; a - Set; b - Part with independent title; c - Part with dependent title 
+
+#if ( ( ! $sabrana ) && ( rec('230') || rec('231') || rec('232') || rec('233') ) ) { 
+#      marc_leader('19','a');
+#}
 
-if ( rec('230') | rec('231') | rec('232') | rec('233') ) {
+if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) { 
        marc_leader('19','a');
 }
 
 ### 008 - All materials
 ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
-## ostaviti prazno tamo gdje nema ni¹ta 
+## provjereno: fi
 
 if ( rec('994','c') =~ m/\d{8}/ ) {
        marc_fixed('008','00',
@@ -78,31 +100,43 @@ if ( rec('994','c') =~ m/\d{8}/ ) {
 #);
 
 ## 008 06 - Type of date/Publication status
-## dodati i ostale moguænosti
-## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c
-## srediti sve moguæe upitne godine
+
+## 008 07-10 - Date 1 - 
+## srediti sve moguæe oznake za godine (06)
+## 210d kroz modify postaje 210c
 
 if ( rec('210','c') ) {
-       my $d1;
-       my $d2;
-       if ( rec('210','c') =~ m/\?/ ) {
+       my $d1 = '';
+       my $d2 = '';
+       if ( rec('210','c') =~ m/(\?)/ ) {
                marc_fixed('008','06','q');
+               if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
+                       $d1 = $1.'uu';
+               } 
+               if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
+                       $d1 = $1.'u';
+               }
+               if ( rec('210','c') =~ m/(\d{4})/ ) {
+                       $d1 = $1;
+               }
+       } elsif ( rec('210','c') =~ m/(\d{4})-/ ) {
+               if ( $sabrana ) { 
+                       marc_fixed('008','06','i');
+               } else {
+                       marc_fixed('008','06','m');
+               }
+               if ( rec('210','c') =~ m/(\d{4})-/ ) {
+                       $d1 = $1;
+                       $d2 = '9999';
+               }
+               if ( rec('210','c') =~ m/-(\d{4})/ ) {
+                       $d2 = $1;
+               }
        } else {
                marc_fixed('008','06','s');
-       }
-       if ( rec('210','c') =~ m/(\d{4})/ ) {
-               $d1 = $1;
-       } else {
-               $d1 = '';
-       }
-       if ( rec('210','c') =~ m/^.*-(\d{4})/ ) {
-               $d2 = $1;
-       } else {
-               $d2 = '',
-       }
-       if ( rec('210','c') =~ m/(\d{2})--/ ) {
-               $d1 = $1.'uu';
-               marc_fixed('008','06','u');
+               if ( rec('210','c') =~ m/(\d{4})/ ) {
+                       $d1 = $1;
+               }
        }
 
        marc_fixed('008','07',$d1);             # 07-10 - Date 1
@@ -207,7 +241,6 @@ if ( frec('10') ne ( frec('290') ) ) {
        marc('020','z',
                rec('10','z')
        );
-                       
 }
 
 #warn( 
@@ -217,9 +250,8 @@ if ( frec('10') ne ( frec('290') ) ) {
 #);
 
 ### 035$
-## Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
-## marc 035a - System Number - Voyagerov ID (001) 
-## polje 035$9 mo¾e sadr¾avati slova i razmake
+## marc 035a - System Number 
+## polje mo¾e sadr¾avati slova i razmake, problem u pretra¾ivanju ako ima zagrade, kako bi trebalo po standardu
 
 marc('035','a',
 join_with('',
@@ -241,20 +273,16 @@ join_with('',
 marc('040','a',
        'HR-ZaFF'
 );
-
 marc('040','b',
        'hrv'
 );
-
 marc('040','c',
        'HR-ZaFF'
 );
-
 marc('040','e',
        'ppiak'
 );
 
-
 ### 041 - indikatori
 ## pretpostavke o indikatorima
 ## 1. Ako postoji polje 300 i ono sadr¾i /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
@@ -264,28 +292,34 @@ marc('040','e',
 ## (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 ( 
-       grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) || 
-       grep( m/[preve|prijevod]/i, rec('200','f')) || 
-       grep( m/[preve|prijevod]/i, rec('200','g'))  
+       grep( m/prijevod/i, rec('300') ) 
+       || grep( m/nasl.*izv/i, rec('300') ) 
+#      ( frec('300') =~ m/Prijevod/ )
+#      || ( rec('300') =~ m/izvorni stvarni naslov/i )
+#      || ( rec('300') =~ m/naslov izvornika/i )
+#      grep( m/[prijevod|stvarni\snaslov]/i, rec('300') ) 
 ) {
        marc_indicators('041', 1, ' ');
-} else {
+       marc_repeatable_subfield('041','a',
+               map { lc($_) } rec('101')
+       );
+} elsif ( 
+       count( rec('101') ) > 1 
+) {
        marc_indicators('041', 0, ' ');
+       marc_repeatable_subfield('041','a',
+               map { lc($_) } rec('101')
+       );
 }
 
-### 041
-## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
-
-#_debug(2);
-
-marc_repeatable_subfield('041','a',
-       map { lc($_) } rec('101')
-);
+       ### 041
+       ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
+       ## polje se koristi kad ima vi¹e od jednog jezika, ili kad se radi o prijevodu
+       #_debug(2);
 
 #_debug(0);
 
@@ -294,6 +328,7 @@ marc_repeatable_subfield('041','a',
 
 ### 080
 ## 675 podpolja b, c, d ... - ¹to s njima? - provjeriti za svaku bazu
+## fi: abcd
 
 marc('080','a',
        rec('675','a')
@@ -341,6 +376,7 @@ marc('100','a',
 
 ### 111 i 110
 ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
+## popraviti interpunkciju
 
 # ovo vrijedi za FFSFB
 if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
@@ -373,29 +409,21 @@ marc_compose('111',
        ),
        '+',')',
 );
-
-
 } else {
-       
-marc_indicators('110', 2, ' ');
-
-marc('110','a',
-       rec('710','a')
-);
-
-marc('110','b',
-       rec('710','b')
-);
-
-       if ( rec('710','c') ) {
-       marc('110','c',
-               surround('(', ')', rec('710','c'))
+       marc_indicators('110', 2, ' ');
+       marc('110','a',
+               rec('710','a')
+       );
+       marc('110','b',
+               rec('710','b')
        );
+       if ( rec('710','c') ) {
+               marc('110','c',
+                       surround('(', ')', rec('710','c'))
+               );
        }
-
 }
 
-
 ### 245 indikatori
 ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
 ## i2 = pretpostavlja se na temelju èlana na poèetku naslova i jezika
@@ -405,7 +433,6 @@ my $i1;
 
 if ( rec('700') || rec('710') ) {
        $i1 = 1;
-
 } else {
        $i1 = 0;
 }
@@ -415,30 +442,28 @@ marc_indicators('245', $i1, 0);
 if ( rec('200','a') =~ m/^Einen / ) {
                marc_indicators('245', $i1, 6);
 } 
-
 if ( rec('200','a') =~ m/^Eine / ) {
                marc_indicators('245', $i1, 5);
 } 
-
-if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
+if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|Los|The) / ) {
                marc_indicators('245', $i1, 4);
 } 
-
-if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { 
+if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Lo|Il) / ) { 
                marc_indicators('245', $i1, 3);
 } 
-
-if ( rec('200','a') =~ m/^(A|L) / ) { 
+if ( ( rec('101') =~ m/ENG/ ) && ( rec('200','a') =~ m/^A / ) ) { 
+               marc_indicators('245', $i1, 2);
+} 
+if ( rec('200','a') =~ m/^L / ) { 
                marc_indicators('245', $i1, 2);
 } 
-
 if ( rec('200','a') =~ m/^L'/ ) { 
                marc_indicators('245', $i1, 2);
 } 
 
 
 ### 245
-## potpolja i interpunkcije pripremljeni u modify
+## postoji modify
 ## da li treba makivati razmake u inicijalima?
 
 #_debug(3);
@@ -471,7 +496,7 @@ marc_compose('245',
                        rec('200','k'),
        ),
        'c', suffix(
-               ( rec('200','f') && rec('200','c') ) ? '.' :
+               ( rec('200','f') && rec('200','c') ) ? '. ' :
                        '',
                        join_with(' ; ',
                                regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
@@ -484,7 +509,10 @@ marc_compose('245',
        ),
        ## append to last subfield
        '+', suffix('.',
-               rec('200','c'),
+               join_with(' / ',
+                       rec('200','c'),
+                       rec('200','x')
+               )
        ),
 );
 
@@ -531,7 +559,6 @@ marc('300','a',
                        rec('215','a')
        )
 );
-
 marc('300','b',
        suffix(
                ( rec('215','c') && rec('215','d') ) ? ' ; ' :
@@ -540,20 +567,19 @@ marc('300','b',
                        rec('215','c')
        )
 );
-
 marc('300','c',
        suffix(
                rec('215','e') ? ' + ' :
-                       '.',
+                       '',
                        rec('215','d')
        )
 );
-
 marc('300','e',
        rec('215','e')
 );
 
-### 362 - brojèani podaci za nakladnièku cjelinu - razjasniti upotrebu
+### 362 - brojèani podaci za nakladnièku cjelinu - to mi nemamo, polje se koristi samo za èasopise
+
 
 # if ( ! rec('225','z')  ) {
 
@@ -616,35 +642,33 @@ marc('300','e',
 
 #} else {
 
-
 ### 440 - indikatori
-## 2.ind. prema jeziku i èlanu, provjeriti
+## 2.ind. prema jeziku i èlanu, uskladiti s 245
 
 marc_indicators('440', ' ', '0');
 
-if ( rec('200','a') =~ m/^Einen / ) {
+if ( rec('225','a') =~ m/^Einen / ) {
                marc_indicators('440', ' ', 6);
 } 
 
-if ( rec('200','a') =~ m/^Eine / ) {
+if ( rec('225','a') =~ m/^Eine / ) {
                marc_indicators('440', ' ', 5);
 } 
 
-if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
+if ( rec('225','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
                marc_indicators('440', ' ', 4);
 } 
 
-if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { 
+if ( rec('225','a') =~ m/^(Um|Un|An|La|Le|Il) / ) { 
                marc_indicators('440', ' ', 3);
 } 
 
-if ( rec('200','a') =~ m/^(A|L') / ) { 
+if ( rec('225','a') =~ m/^(A|L') / ) { 
                marc_indicators('440', ' ', 2);
 } 
 
 ## 440v nije ponovljivo
 
-
 marc_template(
        from => 225, to => 440,
        subfields_rename => [
@@ -676,7 +700,7 @@ marc_template(
                'a.|h,|i ;|w',
                'a.|i',
                'a.|i ;|w',
-               # gre¹ke
+               # gre¹ke:
                'a ;|v ;|w',
                'a.|h',
                'a.|h ;|w',
@@ -686,7 +710,6 @@ marc_template(
                'i ;|w',
                'v',    
                'w',
-
        ],
 );
 
@@ -826,7 +849,7 @@ marc('504','a',
 ## NSK konvertira 327 (NP) u 501 (R)
 ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)
 ## standard i validacije dopu¹taju 501 (R) i 505 (R)
-
+## za svaku bazu posebno provjeriti sta je u poljima 327 i 330
 if ( config() =~ m/ffps|fftu/ ) {
        marc_indicators('505', '0', ' ');
        marc('505','a',
@@ -845,13 +868,8 @@ if ( config() =~ m/ffan/ ) {
 );
 }
 
-
-
-
 ### 520
 ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
-## FFPS 330 (NP) - sa¾etak
-
 if ( config() =~ m/ffps/ ) { 
        marc('520','a',
                regex('s/[\\r\\n]+/. /g',
@@ -894,54 +912,47 @@ marc('653','a',
 
 
 ### 700
-## ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
+## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!
+## ako ima samo podpolje a onda je pseudonim - popraviti indikator
 
 marc_indicators('700', 1, ' ');
 
 marc('700','a',
        rec('701', 'a'),
 );
-
 marc('700','a',
        join_with(', ',
                rec('701', 'c'),
                rec('701', 'd')
        )
 );
-
 marc('700','a',
        join_with(', ',
                rec('701', 'e'),
                rec('701', 'f')
        )
 );
-
 marc('700','a',
        join_with(', ',
                rec('701', 'g'),
                rec('701', 'h')
        )
 );
-
-
 marc('700','a',
                rec('702', 'a'),
 );
-
 marc('700','a',
        join_with(', ',
                rec('702','c'),
                rec('702','d')
        )
 );
-
 marc('700','a',
        join_with(', ',
                rec('702','e'),
                rec('702','f')
        )
 );
-
 marc('700','a',
        join_with(', ',
                rec('702','g'),
@@ -952,7 +963,7 @@ marc('700','a',
 #_debug(0);
 
 
-### 740 - nadopuniti
+### 740 - sta s tim?
 
 marc_indicators('740', 0, ' ');
 
@@ -973,7 +984,7 @@ marc('740','a',
 
 # };
 
-
+# -------------------------------------------------------------------
 ### 760 w
 ## generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
 
@@ -1042,98 +1053,90 @@ marc('740','a',
 #      rec('452','1')
 # );
 #
+# -------------------------------------------------------------------
 
-
-### 774 - Constituent Item Entry
+### 774 - Constituent Item Entry - to bi trebali koristiti ali ne koristimo jer NSK to koristi za ne¹to drugo
 ### 787 - Nonspecific Relationship Entry 
 
-marc_indicators('787','0',' ');
-
-marc_compose('787',
-       'g', rec('230','v'),
-       't', rec('230','a'),
-       'b', rec('240','a'),
-       'd', rec('250','a'),
-       'd', rec('250','d'),
-       'h', rec('260','a'),
-       'k', rec('270','a'),
-       'n', join_with('. - ',
-               rec('280'),
-       ),
-       'x', rec('290'),
-);
-
-marc_compose('787',
-       'g', rec('231','v'),
-       't', rec('231','a'),
-       'b', rec('241','a'),
-       'd', rec('251','a'),
-       'd', rec('251','d'),
-       'h', rec('261','a'),
-       'k', rec('271','a'),
-       'n', join_with('. - ',
-               rec('281'),
-       ),
-       'x', rec('291'),
-);
-
-marc_compose('787',
-       'g', rec('232','v'),
-       't', rec('232','a'),
-       'b', rec('242','a'),
-       'd', rec('252','a'),
-       'd', rec('252','d'),
-       'h', rec('262','a'),
-       'k', rec('272','a'),
-       'n', join_with('. - ',
-               rec('282'),
-       ),
-       'x', rec('292'),
-);
-
-marc_compose('787',
-       'g', rec('233','v'),
-       't', rec('233','a'),
-       'b', rec('243','a'),
-       'd', rec('253','a'),
-       'h', rec('263','a'),
-       'k', rec('273','a'),
-       'n', join_with('. - ',
-               rec('283'),
-       ),
-       'x', rec('293'),
-);
-
-
-
-### 852 - lokacija
-
-
-
-#marc('852','i',
-#      
+#marc_indicators('787','0',' ');
+#
+#marc_compose('787',
+#      'g', rec('230','v'),
+#      't', rec('230','a'),
+#      'b', rec('240','a'),
+#      'd', rec('250','a'),
+#      'd', rec('250','d'),
+#      'h', rec('260','a'),
+#      'k', rec('270','a'),
+#      'n', join_with('. - ',
+#              rec('280'),
+#      ),
+#      'x', join_with(', ',
+#              rec('290'),
+#      )
 #);
-
-       
+#marc_compose('787',
+#      'g', rec('231','v'),
+#      't', rec('231','a'),
+#      'b', rec('241','a'),
+#      'd', rec('251','a'),
+#      'd', rec('251','d'),
+#      'h', rec('261','a'),
+#      'k', rec('271','a'),
+#      'n', join_with('. - ',
+#              rec('281'),
+#      ),
+#      'x', join_with(', ',
+#              rec('291'),
+#      )
+#);
+#marc_compose('787',
+#      'g', rec('232','v'),
+#      't', rec('232','a'),
+#      'b', rec('242','a'),
+#      'd', rec('252','a'),
+#      'd', rec('252','d'),
+#      'h', rec('262','a'),
+#      'k', rec('272','a'),
+#      'n', join_with('. - ',
+#              rec('282'),
+#      ),
+#      'x', join_with(', ',
+#              rec('292'),
+#      )
+#);
+#marc_compose('787',
+#      'g', rec('233','v'),
+#      't', rec('233','a'),
+#      'b', rec('243','a'),
+#      'd', rec('253','a'),
+#      'h', rec('263','a'),
+#      'k', rec('273','a'),
+#      'n', join_with('. - ',
+#              rec('283'),
+#      ),
+#      'x', join_with(', ',
+#              rec('293'),
+#      )
+#);
+#
+### 852 - ne koristimo, koristimo  942 i 952
 
 ### 876 - item information - basic bibliographic unit
-
-marc('876','a',
-       rec('991','t'),
-);
+#marc('876','a',
+#      rec('991','t'),
+#);
 
 ### 886 - former marc
+# inicijale treba prebaciti u neko lokalno polje, a ovo polje nam ne treba
 
 marc_indicators('886', 2, ' ');
-
 marc('886','2',
        'ffmarc'
 );
-
 marc('886','a',
        '994'
 );
-
 marc('886','b',
        join_with(''.
                '##^a',
@@ -1148,15 +1151,22 @@ marc('886','b',
        )
 );
 
-### KOHA
+### KOHA items
 
 marc('942','b',
        'LIB'
 );
 
-marc('942','c',
-       'KNJ'
-);
+
+if ( grep( m/Posebni otisak/, rec('300') ) ) {
+       marc('942','c',
+               'SEP'
+       );
+} else {
+       marc('942','c',
+               'KNJ'
+       );
+}
 
 marc('942','d',
        join_with(' | ',
@@ -1164,18 +1174,18 @@ marc('942','d',
        )
 );     
 
-if ( config() =~ m/ffiz/ ) {
+if ( config() =~ m/ffan/ ) {
        my $novasig1 =
                lookup(
                        sub { rec('C') },
-                       'ffiz','mapirano',
+                       'ffan','mapirano',
                        sub { rec('B') },
                        sub { rec('990') }
                );
        my $novasig2 = 
                lookup(
                        sub { rec('C') . ' ' . rec('D') },
-                       'ffiz','starasig',
+                       'ffan','starasig',
                        sub { rec('A') },
                        sub { rec('000') },
                );
@@ -1188,204 +1198,199 @@ if ( config() =~ m/ffiz/ ) {
 }
 
 
-#if ( config() =~ m/ffsf|ffpo/ ) {
-#      my $sig1 = 
-#              lookup(
-#                      sub { rec('C') },
-#                      'ffiz','signature',
-#                      sub { rec('B') },
-#                      sub { frec('990') },
-#              );
-#      if ( rec('700','a') ) {
-#              marc('942','h',
-#                      $sig1,
-#              );
-#              if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('700','a') )
-#                                      ),
-#                                      regex('s/^.{4}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('700','a') )
-#                                      ),
-#                                      regex('s/^.{3}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^Eine / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('700','a') )
-#                                      ),
-#                                      regex('s/^.{5}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^Einen / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('700','a') )
-#                                      ),
-#                                      regex('s/^.{6}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^(A|L) / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('700','a') )
-#                                      ),
-#                                      regex('s/^.{2}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } else {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('700','a') )
-#                                      ),
-#                                      regex('s/(^.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              }
-#      } elsif ( rec('710','a') ) {
-#              marc('942','h',
-#                      $sig1,
-#              );
-#              if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('710','a') )
-#                                      ),
-#                                      regex('s/^.{4}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('710','a') )
-#                                      ),
-#                                      regex('s/^.{3}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^Eine / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('710','a') )
-#                                      ),
-#                                      regex('s/^.{5}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^Einen / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('710','a') )
-#                                      ),
-#                                      regex('s/^.{6}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } elsif ( rec('200','a') =~ m/^(A|L) / ) {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('710','a') )
-#                                      ),
-#                                      regex('s/^.{2}(.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              } else {
-#                      marc('942','i',
-#                              join_with(' ',
-#                                      regex('s/(^.{3}).*/$1/',
-#                                              uc ( rec('710','a') )
-#                                      ),
-#                                      regex('s/(^.{1}).*/$1/',
-#                                              lc ( rec('200','a') )
-#                                      )
-#                              )
-#                      );
-#              }
-#      } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
-#              marc('942','h',
-#                      $sig1,
-#              );
-#              marc('942','i',
-#                      regex('s/^.{4}(.{3}).*/$1/',
-#                              uc ( rec('200','a') )
-#                      ),
-#              );
-#                      
-#      } else {
-#              marc('942','h',
-#                      $sig1,
-#              );
-#              marc('942','i',
-#                      regex('s/(^\w{3}).*/$1/',
-#                              uc ( rec('200','a') )
-#                      )
-#              )
-#      }
-#} # if config()
-
-marc('952','8',
-       rec('991','8')
-);
-
-marc('952','a',
-       rec('991','a')
-);
-
-marc('952','b',
-       rec('991','b')
-);
-
-marc('952','c',
-       rec('991','c'),
-);
-
-marc('952','i',
-       rec('991','i')
-);
-
-marc('952','y',
-       rec('991','y')
-);
-
-
-
+if ( config() =~ m/ffsf|ffpo|fffi/ ) {
+       my $sig1 = 
+               lookup(
+                       sub { rec('C') },
+                       'fffi','signature',
+                       sub { rec('B') },
+                       sub { frec('990') },
+               );
+       if ( rec('700','a') ) {
+               marc('942','h',
+                       $sig1,
+               );
+               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('700','a') )
+                                       ),
+                                       regex('s/^.{4}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('700','a') )
+                                       ),
+                                       regex('s/^.{3}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^Eine / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('700','a') )
+                                       ),
+                                       regex('s/^.{5}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^Einen / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('700','a') )
+                                       ),
+                                       regex('s/^.{6}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^(A|L) / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('700','a') )
+                                       ),
+                                       regex('s/^.{2}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } else {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('700','a') )
+                                       ),
+                                       regex('s/(^.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               }
+       } elsif ( rec('710','a') ) {
+               marc('942','h',
+                       $sig1,
+               );
+               if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('710','a') )
+                                       ),
+                                       regex('s/^.{4}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('710','a') )
+                                       ),
+                                       regex('s/^.{3}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^Eine / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('710','a') )
+                                       ),
+                                       regex('s/^.{5}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^Einen / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('710','a') )
+                                       ),
+                                       regex('s/^.{6}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } elsif ( rec('200','a') =~ m/^(A|L) / ) {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('710','a') )
+                                       ),
+                                       regex('s/^.{2}(.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               } else {
+                       marc('942','i',
+                               join_with(' ',
+                                       regex('s/(^.{3}).*/$1/',
+                                               uc ( rec('710','a') )
+                                       ),
+                                       regex('s/(^.{1}).*/$1/',
+                                               lc ( rec('200','a') )
+                                       )
+                               )
+                       );
+               }
+       } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
+               marc('942','h',
+                       $sig1,
+               );
+               marc('942','i',
+                       regex('s/^.{4}(.{3}).*/$1/',
+                               uc ( rec('200','a') )
+                       ),
+               );
+                       
+       } else {
+               marc('942','h',
+                       $sig1,
+               );
+               marc('942','i',
+                       regex('s/(^\w{3}).*/$1/',
+                               uc ( rec('200','a') )
+                       )
+               )
+       }
+} # if config()
 
+if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) { 
+       warn "nema primjeraka";
+} else {
+       marc('952','8',
+               rec('991','8')
+       );
+       marc('952','a',
+               rec('991','a')
+       );
+       marc('952','b',
+               rec('991','b')
+       );
+       marc('952','c',
+               rec('991','c'),
+       );
+       marc('952','i',
+               rec('991','i')
+       );
+       marc('952','y',
+               rec('991','y')
+       );
+}
 } # polje 200a
 # } sig
index 0ef0913..8855f13 100644 (file)
@@ -1,7 +1,7 @@
 0 
 10 
 101 
-200 a! c d e* f g k v x
+200 a! c d e* f g k v x
 205 a! f 
 210 a* b c* d e g
 215 a c d e
 222
 223
 225 a d e f h i v w 
-230 a d e f g 
-231 a d e f g 
-232 a d e f g 
-233 a d e f g 
+230 a d e f g v 
+231 a d e f g v 
+232 a d e f g v 
+233 a d e f g v 
 240 a
 241 a
 242 a