From: Dobrica Pavlinusic Date: Sun, 4 Feb 2007 12:37:42 +0000 (+0000) Subject: local X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=9ec683090617949dd066e6326369cfc79646ba58;p=webpac2 local git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@795 07558da8-63fa-0310-ba24-9fe276d99e06 --- diff --git a/conf/mjesec.yml b/conf/mjesec.yml index 799a4c3..f64b3df 100644 --- a/conf/mjesec.yml +++ b/conf/mjesec.yml @@ -478,10 +478,10 @@ databases: path: '/backup/isis_backup/A108-1/ISISDATA/latest/LIBRI/LIBRI' encoding: 'cp852' #limit: 10 - #modify_file: 'conf/modify/common.pl' + modify_file: 'conf/modify/common.pl' normalize: - - path: 'conf/normalize/minimal.pl' - - path: 'conf/normalize/ff-dupli.pl' + - path: 'conf/normalize/ff-nakladnicka.pl' + - path: 'conf/normalize/ff-libri.pl' fftu: name: 'Turkologija, Filozofski fakultet u Zagrebu' @@ -567,10 +567,10 @@ databases: # which tag to use in normalize xml for data? # tag: 'isis' # path to normalization xml - #- path: 'conf/normalize/ff-dupli.pl' #- path: 'conf/normalize/ff-nakladnicka.pl' - - path: 'conf/normalize/minimal.pl' - - path: 'conf/normalize/ff-dupli.pl' + #- path: 'conf/normalize/minimal.pl' + #- path: 'conf/normalize/ff-dupli.pl' + path: 'conf/normalize/ffps-spec.pl' # another input database - name: peri @@ -619,8 +619,10 @@ databases: #limit: 10 modify_file: 'conf/modify/common.pl' normalize: - - path: 'conf/normalize/ff-nakladnicka.pl' + - path: 'conf/normalize/ff-nakl-nsk.pl' + # - path: 'conf/normalize/ff-nakladnicka.pl' - path: 'conf/normalize/ff-libri.pl' + # - path: 'conf/normalize/ff-viseraz.pl' # - path: 'conf/normalize/minimal.pl' # - path: 'conf/normalize/ff-dupli.pl' - name: mlibri @@ -839,13 +841,13 @@ databases: # normalize: # path: 'conf/normalize/common.pl' -# nsk: -# name: 'Nacionalna i sveucilisna knjiznica' -# input: -# name: baza -# type: marc -# path: '/backup/data/NSK/BBaza.ISO' -# encoding: 'ISO-8859-2' -# normalize: -# path: 'conf/normalize/marc-nsk.pl' + nsk: + name: 'Nacionalna i sveucilisna knjiznica' + input: + name: baza + type: marc + path: '/backup/data/NSK/BBaza.ISO' + encoding: 'ISO-8859-2' + normalize: + path: 'conf/normalize/marc-nsk.pl' diff --git a/conf/modify/common.pl b/conf/modify/common.pl index 89458b9..2d56340 100644 --- a/conf/modify/common.pl +++ b/conf/modify/common.pl @@ -1,12 +1,11 @@ # this is pseudo hash/yaml format for regex mappings # FFSF - nekoliko zaredanih ISBN, odvojenih s '. - ' + 10 '*' 'regex:^' => '^a' '. -' => '^a' -# '. -' => '^c' -# '. -' => '^d' ';' => '^a' 101 @@ -32,12 +31,13 @@ '^e' '^d' => ' = ' '^k' => ' ; ' + '^e' => ' : ' '*' '^g' => ' ; ' 205 '^a' - ' \/ ' => '^f' + ' / ' => '^f' 210 '^a' @@ -86,7 +86,10 @@ 225 '*' - ')(' => '^b' + ')(' => '^b' + '^a' + ' : ' => '^e' + ' / ' => '^f' 250 @@ -96,7 +99,7 @@ 464 '^a' - '^f' => ' \/ ' + '^f' => ' / ' '^g' => ', ' diff --git a/conf/normalize/ff-libri.pl b/conf/normalize/ff-libri.pl index a4c01cd..466b87d 100644 --- a/conf/normalize/ff-libri.pl +++ b/conf/normalize/ff-libri.pl @@ -1,12 +1,18 @@ +################################################################################## +## Ova datoteka sadr¾i pravila za generiranje MARC21 ISO 2709 izlazne datoteke. ## +## Ulazni format je CDS/ISIS sa zapisima u UNIMARC-u. ## +################################################################################## + + # konvertira se ako postoji polje 200^a if ( rec('200','a') ) { ### LEADER # raspraviti 17,18 -# u nekim knji¾nicama koristi se 999a i 999b +# u nekim knji¾nicama koristi se 999a i 999b, a u nekima samo 999 -if ( rec('999') && first(rec('999')) =~ m/pregledan/i) { +if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) { marc_leader('05','c'); } else { marc_leader('05','n'); @@ -303,7 +309,10 @@ marc_indicators('440', ' ', '0'); marc('440','a', join_with(' : ', rec('225','a'), - rec('225','e') + join_with(' / ', + rec('225','e'), + rec('225','f') + ) ) ) ; @@ -356,6 +365,9 @@ marc('500','a', rec('314') ); +### 502 - bilje¹ka o disertacijama +# odgovarajuæeg polja nema u originalnim podacima. mo¾da se mo¾e pretpostaviti? + ### 504 marc('504','a', @@ -598,141 +610,6 @@ if ($series_key) { # -### vi¹erazinci -# odvojiti u posebnu datoteku i dokumentirati - - -if ( rec('230') ) { - - marc_duplicate(); - - marc_remove('035'); - marc('035','6', - join_with('', - config(), - rec('000'), - '-', - id(), - ) - ); - - - marc_remove('245'); - - if ( rec('230','a') ) { - marc_compose('245', - 'a', suffix( - rec('230','b') ? '. ' : - rec('230','k') ? ' ; ' : - rec('230','d') ? ' = ' : - rec('230','e') ? ' : ' : - rec('230','f') ? ' / ' : - '.', - rec('230','a') - ), - 'b', - join_with(' ; ', - rec('230','k'), - ), - 'b', rec('230','d'), - 'b', - join_with(' : ', - rec('230','e'), - ), - 'c', - join_with(' ; ', - rec('230','f'), - ), - ); - - } else { - - marc_compose('245', - 'a', suffix( - rec('230','b') ? '. ' : - rec('230','k') ? ' ; ' : - rec('230','d') ? ' = ' : - rec('230','e') ? ' : ' : - rec('230','f') ? ' / ' : - '.', - rec('200','a') - ), - 'b', - join_with(' ; ', - rec('230','k'), - ), - 'b', rec('230','d'), - 'b', - join_with(' : ', - rec('230','e'), - ), - 'c', - join_with(' ; ', - rec('230','f'), - ), - 'n', rec('230','v'), - ); - - } - - marc_remove('260'); - -# marc_original_order('260', '250'); - - marc('260','c', - rec1('251') - ); - - -# marc('260','a', -# rec('251','a') -# ); -# marc('260','b', -# rec('251','c') -# ); -# marc('260','c', -# rec('251','d'), -# rec1('251') -# ); - - marc_remove('300'); - marc('300','a', - rec('260') - ); - - marc_remove('440'); - marc('440','a', - rec('270') - ); - - marc_remove('500'); - marc('500','a', - rec('280') - ); - - marc_remove('020'); - marc('020','a', - rec('290') - ); - - marc_indicators('774', 0, ' '); - marc('774','g', - rec('230','v') - ); - - marc('774','t', - rec('200','a') - ); - - marc('774','w', - join_with('', - config(), - rec('000') - ) - ); - - -} ################################## ## ## @@ -772,4 +649,4 @@ if ( rec('200') =~ m/prev/ ) { -} +} # polje 200a diff --git a/conf/normalize/ff-nakladnicka.pl b/conf/normalize/ff-nakladnicka.pl index 98a2566..0cbff0f 100644 --- a/conf/normalize/ff-nakladnicka.pl +++ b/conf/normalize/ff-nakladnicka.pl @@ -1,19 +1,20 @@ if ( rec('225','a') # da li je nakladnicka cjelina? - && # i - count( lookup( - sub { 1 }, - 'ffsf','blibri', - sub { - join_with('', - rec('225','a'), - rec('210','a'), - rec('210','b'), - ) - } - ) ) > 1 +# && # i +# count( lookup( +# sub { 1 }, +# 'ffsf','blibri', +# sub { +# join_with('', +# rec('225','a'), +# rec('210','a'), +# rec('210','b'), +# ) +# } +# ) ) > 1 ) { + my $series_key = join_with('', rec('225','a'), @@ -39,7 +40,7 @@ set( $series_key => $series ); # Leader marc_leader('05','n'); marc_leader('06','a'); -marc_leader('07','s'); +marc_leader('07','c'); marc_leader('18','i'); marc('035','6', $series ); @@ -66,13 +67,13 @@ marc_repeatable_subfield('041','a', marc_indicators('245', 0, 0); -if ( ( rec('200','a') =~ m/^Die /) || - ( rec('200','a') =~ m/^Das /) || - ( rec('200','a') =~ m/^The /) ) { +if ( ( rec('225','a') =~ m/^Die /) || + ( rec('225','a') =~ m/^Das /) || + ( rec('225','a') =~ m/^The /) ) { marc_indicators('245', 0, 4); } -if ( ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) +if ( ( rec('225','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) { marc_indicators('245', 0, 2); } @@ -86,6 +87,10 @@ marc('245','a', ), ); +marc('245','c', + rec('225','f') +); + marc('245','n', rec('225','h'), ); @@ -121,6 +126,7 @@ marc('900','a', ) ); + marc_duplicate(); marc_remove('*'); diff --git a/conf/validate/ffsfb-libri b/conf/validate/ffsfb-libri index 47ac14c..837c064 100644 --- a/conf/validate/ffsfb-libri +++ b/conf/validate/ffsfb-libri @@ -12,8 +12,6 @@ 233 a e f v 240 241 -242 -243 250 251 252 @@ -36,7 +34,6 @@ 293 300 320 -327 330 423 z a b c 464 a f c g x y