From 1ac66190d192e81968c6108454ab4085410bf8b6 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sat, 6 Sep 2008 10:54:35 +0000 Subject: [PATCH] local git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@1112 07558da8-63fa-0310-ba24-9fe276d99e06 --- conf/mjesec.yml | 534 ++++++++++++++++++------- conf/modify/common.pl | 113 +++--- conf/normalize/ff-libri.pl | 787 +++++++++++++++++++------------------ conf/validate/fffi-libri | 10 +- 4 files changed, 857 insertions(+), 587 deletions(-) diff --git a/conf/mjesec.yml b/conf/mjesec.yml index 703f455..a756e03 100644 --- a/conf/mjesec.yml +++ b/conf/mjesec.yml @@ -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' diff --git a/conf/modify/common.pl b/conf/modify/common.pl index 34e3d36..7687cb8 100644 --- a/conf/modify/common.pl +++ b/conf/modify/common.pl @@ -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' '*' @@ -105,8 +97,6 @@ '*' 'regex:$' => '.' - - # priprema za konverziju u 440 #225 @@ -210,12 +200,6 @@ # '[Der]' => 'Der' # '[Le]' => 'Le' - - - - - - #330 # '*' # '><' => '^a' @@ -243,10 +227,36 @@ # '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' @@ -258,15 +268,14 @@ '^c' => ' : ' '^d' => ' ; ' - 270 '^a' ' ; ' => '^v' -231 - '^a' - '^e' => ' : ' - '^f' => ' / ' +#231 +# '^a' +# '^e' => ' : ' +# '^f' => ' / ' 251 '^a' @@ -278,15 +287,14 @@ '^c' => ' : ' '^d' => ' ; ' - 271 '^a' ' ; ' => '^v' -232 - '^a' - '^e' => ' : ' - '^f' => ' / ' +#232 +# '^a' +# '^e' => ' : ' +# '^f' => ' / ' 252 '^a' @@ -303,10 +311,10 @@ '^a' ' ; ' => '^v' -233 - '^a' - '^e' => ' : ' - '^f' => ' / ' +#233 +# '^a' +# '^e' => ' : ' +# '^f' => ' / ' 253 '^a' @@ -323,15 +331,15 @@ '^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' @@ -342,29 +350,26 @@ '^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' diff --git a/conf/normalize/ff-libri.pl b/conf/normalize/ff-libri.pl index aa920a8..a940113 100644 --- a/conf/normalize/ff-libri.pl +++ b/conf/normalize/ff-libri.pl @@ -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 diff --git a/conf/validate/fffi-libri b/conf/validate/fffi-libri index 0ef0913..8855f13 100644 --- a/conf/validate/fffi-libri +++ b/conf/validate/fffi-libri @@ -1,7 +1,7 @@ 0 10 101 -200 a! c d e* f g j 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 @@ -10,10 +10,10 @@ 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 d e f g k v -233 a d e f g k v +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 -- 2.20.1