From d51cf2a214cdf5c5157f52368e5eab0917397731 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 23 Aug 2007 19:23:53 +0000 Subject: [PATCH] more local changes git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@880 07558da8-63fa-0310-ba24-9fe276d99e06 --- conf/mjesec.yml | 28 ++- conf/modify/common.pl | 144 +++++++------ conf/normalize/ff-peri.pl | 436 ++++++++++++++++++++++---------------- 3 files changed, 358 insertions(+), 250 deletions(-) diff --git a/conf/mjesec.yml b/conf/mjesec.yml index ba82d32..a75c2ed 100644 --- a/conf/mjesec.yml +++ b/conf/mjesec.yml @@ -75,6 +75,7 @@ webpac: isis: 'WebPAC::Input::ISIS' marc: 'WebPAC::Input::MARC' excel: 'WebPAC::Input::Excel' + dbf: 'WebPAC::Input::DBF' # define delimiters for validation delimiters: - ' ; ' @@ -189,6 +190,7 @@ databases: # - to: emerald # credit: 10000 + ffan: name: 'Anglistika, Filozofski fakultet u Zagrebu' input: @@ -198,7 +200,8 @@ databases: encoding: 'cp852' modify_file: 'conf/modify/common.pl' normalize: - path: 'conf/normalize/minimal.pl' + path: 'conf/normalize/ff-libri.pl' + ffar: name: 'Arheologija, Filozofski fakultet u Zagrebu' input: @@ -231,7 +234,7 @@ databases: path: '/backup/isis_backup/A102-1B/ISISDATA/latest/LIBRI/LIBRI' encoding: 'cp852' #limit: 10 - #modify_file: 'conf/modify/common.pl' + modify_file: 'conf/modify/common.pl' normalize: path: 'conf/normalize/minimal.pl' @@ -317,7 +320,7 @@ databases: #limit: 10 modify_file: 'conf/modify/common.pl' normalize: - path: 'conf/normalize/minimal.pl' + path: 'conf/normalize/ff-libri.pl' fftu: name: 'Turkologija, Filozofski fakultet u Zagrebu' @@ -399,7 +402,7 @@ databases: # which tag to use in normalize xml for data? # tag: 'isis' # path to normalization xml - path: 'conf/normalize/minimal.pl' + path: 'conf/normalize/ff-libri.pl' ffro: @@ -407,7 +410,7 @@ databases: input: - name: libri type: isis - path: '/backup/isis_backup/A224-6/isisdata/latest/LIBRI/LIBRI' + path: '/backup/isis_backup/A224-6/isisdata/20070605/LIBRI/LIBRI' encoding: 'cp852' #limit: 10 modify_file: 'conf/modify/common.pl' @@ -429,14 +432,20 @@ databases: ffsf: name: 'Slavenska filologija, Filozofski fakulteti u Zagrebu' input: + - name: naklb + type: isis + path: '/backup/isis_backup/A125-3/ISISDATA/latest/LIBRI/LIBRI' + encoding: 'cp852' + modify_file: 'conf/modify/ff-nakladnicka.pl' + normalize: + path: 'conf/normalize/ff-nakladnicka.pl' - name: librib type: isis path: '/backup/isis_backup/A125-3/ISISDATA/latest/LIBRI/LIBRI' encoding: 'cp852' - #limit: 10 modify_file: 'conf/modify/common.pl' normalize: - path: 'conf/normalize/minimal.pl' + path: 'conf/normalize/ff-libri.pl' - name: librim type: isis path: '/backup/isis_backup/A121-1/ISISDATA/latest/LIBRI/LIBRI' @@ -475,7 +484,7 @@ databases: input: - name: libri type: isis - path: '/backup/isis_backup/A121-1/ISISDATA/latest/LIBRI/LIBRI' + path: '/backup/isis_backup/A112-1/ISISDATA/latest/LIBRI/LIBRI' encoding: 'cp852' #limit: 10 modify_file: 'conf/modify/common.pl' @@ -493,3 +502,6 @@ databases: #modify_file: 'conf/modify/common.pl' normalize: path: 'conf/normalize/minimal.pl' + + + diff --git a/conf/modify/common.pl b/conf/modify/common.pl index cd67e94..5ff5ba9 100644 --- a/conf/modify/common.pl +++ b/conf/modify/common.pl @@ -6,6 +6,7 @@ '*' 'regex:^' => '^a' '. -' => '^a' + ' ; ' => '^a' ';' => '^a' 101 @@ -30,6 +31,7 @@ ' = ' => '^d' ' : ' => '^e' ' ; ' => '^k' + '^g' => '^f' '^d' '^e' => ' : ' '^k' => ' ; ' @@ -41,12 +43,16 @@ '^e' '^d' => ' = ' '^k' => ' ; ' + '^g' => '^f' '^e' => ' : ' '^e' => ' : ' + '^f' + '^f' => ' ; ' + '^d' => ' = ' '*' - '^d' => ' = ^p' - '^e' => ' : ^p' - '^k' => ' ; ^p' +# '^d' => '^p' +# '^e' => ' : ^p' +# '^k' => ' ; ^p' '^g' => ' ; ' 205 @@ -85,84 +91,89 @@ ' : ' => ' : ^f' - -# staro -# -#210 -# '^a' -# ' ; ' => '^a' -# ' ; ' => '^a' -# ' ; ' => '^a' -# ' ; ' => '^a' -# ' ; ' => '^a' -# '^c' -# ' : ' => '^c' -# ' : ' => '^c' -# ' : ' => '^c' -# ' : ' => '^c' -# ' : ' => '^c' -# ' : ' => '^c' -# ' ; ' => '^a' -# ' ; ' => '^a' -# ' ; ' => '^a' -# ' ; ' => '^a' -# '*' -# '^c' => ' : ^b' -# '^d' => '^c' -# '^a' -# '^a' => ' ; ^x' -# '^c' => ', ^c' -# '^x' -# '^a' => ' ; ^x' -# '^a' => ' ; ^x' -# '^a' => ' ; ^x' -# '^a' => ' ; ^x' -# '^b' -# '^a' => ' ; ^x' -# '^a' => ' ; ^x' -# '^a' => ' ; ^x' -# '^a' => ' ; ^x' -# '^c' => ', ^c' -# '*' -# '^x' => '^a' -# '^y' => '^a' -# '^c' -# '. (' => '. ^e(' -# '^e' -# ' : ' => ' : ^f' - # priprema za konverziju u 440 +225 + '^a' + '^v' => ' ; ^v' + '^w' => ' ; ^v' + '^d' => ' = ' + '^e' => ' : ' + '^f' => ' / ' + '^h' => '. ^n' + '^i' => '. ^p' + '^n' + '^v' => ' ; ^v' + '^w' => ' ; ^v' + '^i' => ', ^p' + '^p' + '^v' => ' ; ^v' + '^w' => ' ; ^v' + '^v' + '^w' => ' ; ' + '^x' => ', ^x' + #225 # '^a' -# ' : ' => '^e' # ' = ' => '^d' # ' / ' => '^f' +# ' : ' => '^e' +# ', ISSN ' => '^x' +## ' ; ' => '^v' +# ') (' => '^b' +# ')(' => '^b' # '^d' +# ' / ' => '^f' # '^e' => ' : ' +# '^d' => ' = ' +# ', ISSN ' => '^x' # '^e' # ' / ' => '^f' # '^d' => ' = ' -# '^e' => ' : ' -# '^a' -# '^d' => ' = ^p' -# '^e' => ' : ^p' -# '^k' => ' ; ^p' -# '^f' => ' / ^f' +# ', ISSN ' => '^x' +# '^f' +# '^d' => ' = ' +# ', ISSN ' => '^x' +# ') (' => '^b' +# ')(' => '^b' +# '^i' +# ', ISSN ' => '^y' +# ') (' => '^b' +# ')(' => '^b' +# ' ; ' => '^w' # '^v' -# '^w' => ', ' +# ') (' => '^b' +# ')(' => '^b' +# '] (' => '^b' +# '^w' +# ') (' => '^b' +# ')(' => '^b' +# '^b' +# ' / ' => '^j' +# ' ; ' => '^k' +# '^i' => '^l' +# ') (' => '^c' +# ')(' => '^c' +# '^j' +# ') (' => '^c' +# ')(' => '^c' +# ' ; ' => '^k' +# '^c' +# ' / ' => '^r' +# ' ; ' => '^s' # '*' -# ', ISSN ' => '^x' # '[The]' => 'The' # '[A]' => 'A' # '[Der]' => 'Der' # '[Le]' => 'Le' -225 - '^a' - '^e' => ' : ' - '^f' => ' / ' - +#225 +# '^a' +# '^e' => ' : ' +# '^f' => ' / ' +# '*' +# '^w' => '^v' +# ', ISSN ' => '^x' 250 '*' @@ -195,3 +206,10 @@ # '^a' => '^g' +326 + '*' + 'g1' => 'a' + 'g6' => 'b' + 'g4' => 'q' + 'g' => 'a' + 'g2' => 'f' diff --git a/conf/normalize/ff-peri.pl b/conf/normalize/ff-peri.pl index 9f9d833..da6f110 100644 --- a/conf/normalize/ff-peri.pl +++ b/conf/normalize/ff-peri.pl @@ -1,39 +1,69 @@ if ( rec('200','a') ) { -# Leader -# raspraviti 17,18 - -# u nekim knji¾nicama koristi se 999a i 999b +# LEADER +# raspraviti 17,18 -# vrijedi za ffan... +marc_leader('05','n'); +marc_leader('06','a'); -if ( rec('999') && first(rec('999')) =~ m/pregledan/i) { - marc_leader('05','c'); +if ( rec('225','a') ) { + marc_leader('07','b'); } else { - marc_leader('05','n'); + marc_leader('07','s'); } - marc_leader('06','a'); - marc_leader('07','s'); - marc_leader('18','i'); +marc_leader('18','i'); +if ( rec('225','a') ) { marc_leader('19','r'); - +} # 001 polje - Voyager +# 007 +marc_fixed('007',00,'ta'); + + +## 008 +marc_fixed('008','00', '070707'); +marc_fixed('008','06', '|'); # Type of date/Publication status +marc_fixed('008','07', '|'); # Date 1 +marc_fixed('008','08', '|'); +marc_fixed('008','09', '|'); +marc_fixed('008','10', '|'); +marc_fixed('008','11', '|'); # Date 2 +marc_fixed('008','12', '|'); +marc_fixed('008','13', '|'); +marc_fixed('008','14', '|'); +marc_fixed('008','15', # Place of publication, production, or execution + lookup( + sub { rec('102','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ), +); +marc_fixed('008','18', ''); +marc_fixed('008','35', # Language + rec('101') +); +marc_fixed('008','39','|'); # Cataloging source + +## 022 + +if ( ! rec('225','a') ) { + marc('022','a', + rec('11') + ); +} + # privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku marc('035','6', -join_with('', -# config('input normalize path'), -# config('name'), - config(), - 'L', -# config('input name'), -# id(), -# rec('994','a'), + join_with('', + uc( config() ), + ' P', rec('000') ) ); @@ -43,13 +73,6 @@ join_with('', # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - ' -marc('020','a', - rec('10') -); - -marc('022','a', - rec('11') -); # u polje 040a mo¾da jo¹ dodati prefiks HR # NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?) @@ -89,47 +112,89 @@ if ( ( rec('200','a') =~ m/^Die /) || #_debug(3); +marc('044','a', + lookup( + sub { rec('102','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ), +); + +marc('080','a', + rec('675','a') +); + +marc_indicators('100', 1, ' '); +marc('100','a', + join_with(', ', + rec('700', 'a'), + rec('700', 'b') + ) +); + +marc_indicators('110', 2, ' '); +marc('110','a', + rec('710','a') +); + +marc('110','c', + rec('710','c') +); + +marc('222','a', + lookup( + sub { rec('530','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) +); + +### 245 indikatori + marc_compose('245', 'a', suffix( - rec('200','b') ? '. ' : - rec('200','k') ? ' ; ' : - rec('200','d') ? ' = ' : - rec('200','e') ? ' : ' : - rec('200','f') ? ' / ' : - '.', - rec('200','a') + ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' : + ( rec('200','d') ) ? ' = ' : + ( rec('200','e') ) ? ' : ' : + ( rec('200','k') ) ? ' ; ' : + '', + rec('200','a'), ), - 'h', rec('200','b'), 'b', suffix( - ( rec('200','k') && rec('200','f') ) ? ' / ' : - ' ', - join_with(' ; ', - rec('200','k'), - ), + ( rec('200','d') && rec('200','f') ) ? ' / ' : + ( rec('200','d') && rec('200','c') ) ? '. ' : + '', + rec('200','d'), ), 'b', suffix( - ( rec('200','d') && rec('200','f') ) ? ' / ' : - ' ', - rec('200','d'), + ( rec('200','e') && rec('200','f') ) ? ' / ' : + ( rec('200','e') && rec('200','c') ) ? '. ' : + '', + rec('200','e'), ), 'b', suffix( - ( rec('200','e') && rec('200','f') ) ? ' / ' : - ' ', - join_with(' : ', - rec('200','e'), - ), + ( rec('200','k') && rec('200','f') ) ? ' / ' : + ( rec('200','k') && rec('200','c') ) ? '. ' : + '', + rec('200','k'), ), - -# ovo trenutno radi za sluèaj kad f nije ponovljivo i kad uvijek postoje c i f u paru !!! - 'c', join_with('. ', - rec('200','f'), - rec('200','c'), + 'c', suffix( + ( rec('200','f') && rec('200','c') ) ? '. ' : + '', + rec('200','f'), ), -# FIXME append to last subfield -# '+', prefix('. ', rec('200','c') ), - + '+', rec('200','c'), ); +## 246 + +marc_indicators('246', 1, 3); + +marc('246','a', + rec('532') +); #_debug(0); @@ -184,46 +249,67 @@ marc('300','e', rec('215','e') ); - -# provjeriti - -marc_indicators('490', 0, ' '); - -marc('490','a', - rec('225','a') +marc('310','a', + lookup( + sub { rec('326','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) +); + +marc('321','a', + rec('326') ); -marc('490','v', - join_with(', ', - rec('225','v'), - rec('225','w') +marc_indicators('362', 0, ' '); + +marc('362','a', + lookup( + sub { rec('207','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, ), ); -marc('490','x', - rec('225','x') -); -#marc('490','a', -# join_with(' : ', -# rec('225','a'), -# join_with(" = ", -# rec('225','d'), -# join_with(" / ", -# rec('225','e'), -# rec('225','f') -# ) -# ) -# ) -#); +marc('500','a', + lookup( + sub { rec('300','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) +); + +marc('500','a', + lookup( + sub { rec('302','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) +); + +marc('504','a', + lookup( + sub { rec('320','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) +); -#marc('490','v', -# join2_with(225, 'v', ' , ', 225,'w'); -# join_with(', ', -# rec('225','v'), -# rec('225','w') -# ) -#); +marc('562','a', + lookup( + sub { rec('316','a') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) +); + #marc('500','a', # rec('300') @@ -276,11 +362,14 @@ if ( config() =~ m/fftu/ ) { # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik -marc_indicators('246', 1, 3); -marc('246','a', - rec('532') + +### 534 + +marc('534','a', + rec('324') ); + marc_indicators('655', ' ', 4); marc('655','a', rec('608') @@ -293,27 +382,12 @@ marc('653','a', # 675 podpolja c, d ... - ¹to s njima ??? -marc('080','a', - rec('675','a') -); - # 084 je other classification (R) # NSK ga koristi za struènu oznaku NSK iz polja 681 # NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom # -# polje 686 koristi FFPS -marc('084','a', - rec('686') -); -marc_indicators('100', 1, ' '); -marc('100','a', - join_with(', ', - rec('700', 'a'), - rec('700', 'b') - ) -); #_debug(2); @@ -387,43 +461,6 @@ marc('700','a', #_debug(0); -if ( rec('710','f') ) { - -marc_indicators('111', 2, ' '); -marc('111','a', - rec('710','a') -); - -marc('111','c', - rec('710','e') -); - -marc('111','d', - rec('710','f') -); - -marc('111','e', - rec('710','b') -); - -marc('111','n', - rec('710','d') -); - - -} else { - -marc_indicators('110', 2, ' '); -marc('110','a', - rec('710','a') -); - -marc('110','c', - rec('710','c') -); - -}; - marc_indicators('740', 0, ' '); @@ -442,54 +479,95 @@ marc('740','a', ); }; -marc('500','a', - lookup( - sub { rec('304','a') }, - 'nsk','baza', - sub { rec('200','a') }, - ) +marc_indicators('770', 0, ' '); +marc('770','t', + rec('430','a'), ); -marc('500','a', - lookup( - sub { rec('306','a') }, - 'nsk','baza', - sub { rec('200','a') }, - ) +marc('770','x', + rec('430','b'), ); -marc('500','a', - lookup( - sub { rec('314','a') }, - 'nsk','baza', - sub { rec('200','a') }, - ) +if ( rec('225','a') ) { + +marc_indicators('773', 0, ' '); +marc('773','g', + rec('207','a') ); -marc('500','a', - lookup( - sub { rec('316','a') }, - 'nsk','baza', - sub { rec('200','a') }, - ) +marc('773','t', + join_with(' : ', + rec('225','a'), + rec('225','e') + ), ); -marc('504','a', +marc('773','w', lookup( - sub { rec('320','a') }, - 'nsk','baza', + sub { + join_with('', + uc( config() ), + ' P', + rec('000') + ), + }, + 'ffsf','peri', sub { rec('200','a') }, - ) + sub { rec('225','a') }, + ) ); -marc('900','a', - sort( - lookup( - sub { rec('000') }, - 'ffps','peri', - sub { rec('200','a') }, - ) +} + +marc('852','j', + join_with(' ', + rec('990') + ) +); + +marc('876','a', + rec('991','a') +); + +marc('992','a', + join_with(' ; ', + rec('992') ) ); + + +marc('997','a', + sort( + lookup( + sub { rec('001') }, + 'nsk','bbaza', + sub { rec('011','a') }, + sub { rec('11') }, + ) + ) +); + +marc('998','a', + sort( + lookup( + sub { rec('001') }, + 'nsk','bbaza', + sub { first(rec('200','a')) . first(rec('200','e')) }, + sub { rec('200','a') . rec('200','e') }, + ) + ) +); + +marc('998','a', + sort( + lookup( + sub { rec('001') }, + 'nsk','bbaza', + sub { first(rec('200','a')) }, + sub { rec('200','a') }, + ) + ) +); + } -- 2.20.1