configuration files for FF journals databases conversion
authorMarijana Glavica <mglavica@ffzg.hr>
Mon, 27 Jul 2009 14:21:15 +0000 (14:21 +0000)
committerMarijana Glavica <mglavica@ffzg.hr>
Mon, 27 Jul 2009 14:21:15 +0000 (14:21 +0000)
git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@1253 07558da8-63fa-0310-ba24-9fe276d99e06

conf/ffcasopisi/config.yml [new file with mode: 0644]
conf/ffcasopisi/csv2marc.pl [new file with mode: 0644]
conf/ffcasopisi/peri2marc.pl [new file with mode: 0644]
conf/ffcasopisi/sigxls2marc.pl [new file with mode: 0644]
conf/mjesec-ffcasopisi-signature.yml [deleted file]
conf/normalize/ff-peri.pl [deleted file]
conf/normalize/ffcasopisi/csv.pl [deleted file]
conf/normalize/ffcasopisi/signature_zs.pl [deleted file]

diff --git a/conf/ffcasopisi/config.yml b/conf/ffcasopisi/config.yml
new file mode 100644 (file)
index 0000000..c87e186
--- /dev/null
@@ -0,0 +1,103 @@
+--- #YAML:1.0
+# DO NOT USE TABS FOR INDENTATION OR label/value SEPARATION!!!
+
+# encoding of this configuration file
+config_encoding: 'ISO-8859-2'
+# encoding in Catalyst.
+catalyst_encoding: 'UTF-8'
+# relative path to sites templates under Catalyst root
+sites_root: 'sites'
+
+# which indexing engine to use? (hyperestraier is default)
+#use_indexer: 'hyperestraier'
+use_indexer: 'hyperestraier-native'
+#use_indexer: 'kinosearch'
+
+# configuration for Hyper Estraier full text search engine
+hyperestraier:
+  #url: 'http://localhost:1978/node/webpac2'
+  masterurl: 'http://localhost:1978'
+  defaultnode: 'webpac2'
+#  defaultnode: 'ps'
+  defaultdepth: 1
+  user: 'admin'
+  passwd: 'admin'
+  # don't turn this on! it will spit huge amounts of output
+  #debug: 1
+  #
+  #
+  path: 'casket/'
+  # number of results on each page
+  hits_on_page: 10
+  # number of results to fetch for suggestion (it will fold multiple sameones)
+  hits_for_suggest: 20
+  #
+  # options used while indexing
+  #
+  # which tag type to use for search engine (used while indexing)
+  type: 'search'
+  #
+
+# options for pager
+pager:
+  # how many pages to show for navigation?
+  max_pages: 20
+
+# configuration for KinoSearch search engine library
+kinosearch:
+  index_path: './kinosearch/'
+  database: 'unconfigured database name'
+  label: 'unconfigured database label'
+  encoding: 'iso-8859-2'
+  # clean database before opening? (WARNING: this erases existing database)
+  clean: 1
+  # which field type to index?
+  type: 'search'
+
+webpac:
+  # default template to use
+  template: 'html_ffzg_results_short.tt'
+  # path to database files
+  db_path: '/data/webpac2/db'
+  # path to templates used by WebPAC::Output
+  template_path: '/data/webpac2/conf/output/tt'
+  # default template for results
+  default_template: 'html_ffzg.tt'
+  # default user editable css file
+  default_css: 'user.css'
+  css_path: 'root/css'
+  # encoding comming from webpac
+  webpac_encoding: 'iso-8859-2'
+  # encoding expected by Catalyst
+  out_encoding: 'utf-8'
+  # define different input formats (types) and perl modules to handle them
+  inputs:
+    isis: 'WebPAC::Input::ISIS'
+    marc: 'WebPAC::Input::MARC'
+    excel: 'WebPAC::Input::Excel'
+  # define delimiters for validation
+  delimiters:
+    - ' ; '
+    - ' : '
+    - ' / '
+    - ' = '
+editor:
+  # open this record when opening editor
+  # (it will also be used to deduce default database and input)
+  default_record_uri: 'ps/peri/1'
+
+# directives after this are used when indexing using core WebPAC modules
+
+databases:
+
+  csig:
+    name: 'Casopisi signature'
+    input:
+      - name: csig
+        type: excel
+        path: '/data/FF/casopisi/Casopisi-signature-20090515.xls'
+#        encoding: 'windows-1250'
+        normalize:
+          path: 'conf/ffcasopisi/sigxls2marc.pl'
+
+
diff --git a/conf/ffcasopisi/csv2marc.pl b/conf/ffcasopisi/csv2marc.pl
new file mode 100644 (file)
index 0000000..60c6c1e
--- /dev/null
@@ -0,0 +1,650 @@
+
+### LEADER
+
+## LDR 05 - n - new
+marc_leader('05','n');
+
+## LDR 06 - a - language material 
+marc_leader('06','a');
+
+## LDR 07 - Bibliographic level 
+marc_leader('07','s');
+
+## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
+marc_leader('17','u');
+
+## LDR 18 - i - isbd 
+marc_leader('18','i');
+
+### 008 - All materials
+marc_fixed('008','00', '090512');      # 00-05 - Date entered on file
+
+## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije?
+## c - Continuing resource currently published
+## d - Continuing resource ceased publication
+
+marc_fixed('008','06','|');            # 06 - Type of date/Publication status, s = single know date, | = no attempt to code
+marc_fixed('008','07','||||');
+marc_fixed('008','11','||||');
+marc_fixed('008','15','xx ');
+                                       # 18-34 - Material specific coded elements 
+                                       # 35-37 - Language
+marc_fixed('008','38','|');            # 38 - Modified record
+marc_fixed('008','39','d');            # 39 - Cataloging source
+
+### 008 - Continuing resources
+
+marc_fixed('008','18', '|');   # 18 - Frequency - ovo treba popuniti iz polja 326
+marc_fixed('008','19', '|');   # 19 - Regularity
+                               # 20 - Undefined, ontains a blank (#) or fill character (|)
+
+marc_fixed('008','21', 'p');   # 21 - Type of continuing resource
+
+                               # 22 - Form of original item - blank
+                               # 23 - Form of item
+                               # 24 - Nature of entire work
+                               # 25-27 - Nature of contents
+                               # 28 - Government publication
+                               # 29 - Conference publication
+                               # 30-32 - Undefined
+                               # 33 - Original alphabet or script of title
+                               # 34 - Entry convention
+marc_fixed('008','22', ' ');
+marc_fixed('008','23', ' ');
+marc_fixed('008','24', '|');
+marc_fixed('008','25', '|||');
+marc_fixed('008','28', ' ');
+marc_fixed('008','29', ' ');
+marc_fixed('008','33', '|');
+marc_fixed('008','34', '|');
+
+### 022
+
+marc('022','a',
+       rec('F')
+);
+
+### 035$a
+
+if ( rec('B') ) {
+       marc('035','a',
+               join_with(' ',
+                       'HR-ZaFF',
+                       join_with('',
+                               suffix('P',
+                                       lc( rec('A') )
+                               ),
+                               rec('B')
+                       ),
+               )
+       );
+}
+
+### 040
+# za sve je isti
+# treba utvrditi toènu oznaku za ustanovu
+
+marc('040','a',
+       'HR FFZG'
+);
+
+marc('040','b',
+       'hrv'
+);
+
+marc('040','c',
+       'HR-ZaFF'
+);
+
+marc('040','e',
+       'ppiak'
+);
+
+
+#_debug(3);
+
+## iz nsk
+#if ( rec('11') ) {
+#marc('210','a',
+#      lookup(
+#              sub { rec('531','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#}
+
+# ### 222 indikatori
+# # drugi indikator prema èlanu
+# 
+# marc_indicators('222',' ','0');
+# 
+# ### 222 - Key title
+# # pronaæi prikadan izvor podataka - nsk baza, issn baze
+# 
+# marc('222','a',
+#      rec('530')
+# );
+# 
+# # iz nsk:
+# #if ( rec('11') ) {
+# #marc('222','a',
+# #    lookup(
+# #            sub { rec('530','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #}
+
+### 245 indikatori
+# generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek). 
+# potrebna naknadna kontrola
+
+marc_indicators('245', 0, 0);
+
+if (   ( rec('E') =~ m/^Die /) || 
+       ( rec('E') =~ m/^Das /) || 
+       ( rec('E') =~ m/^Der /) || 
+       ( rec('E') =~ m/^Les /) || 
+       ( rec('E') =~ m/^The /) ) {
+               marc_indicators('245', 0, 4);
+
+} 
+
+if (   ( rec('E') =~ m/^Un /) || 
+       ( rec('E') =~ m/^An /) ||
+       ( rec('E') =~ m/^La /) ||
+       ( rec('E') =~ m/^Le /) ||
+       ( rec('E') =~ m/^Il /) ) {
+               marc_indicators('245', 0, 3);
+} 
+
+if (   ( rec('E') =~ m/^A /) || 
+       ( rec('E') =~ m/^L'/) ) {
+               marc_indicators('245', 0, 2);
+} 
+
+### 245
+
+if ( rec('E') =~ m/:/ ) {
+       marc('245','a',
+               suffix(' :',
+                       regex('s/(^.*):.*/$1/',
+                               rec('E')
+                       )
+               )
+       );
+       marc('245','b',
+               regex('s/^.*: (.*)/$1/',
+                       rec('E')
+               )
+       );
+} else {
+       marc('245','a',
+               rec('E')
+       );
+}
+
+# ### 246 inikatori
+# # prema jeziku - provjera
+# 
+# if (         ( rec('200','a') =~ m/^Die /) || 
+#      ( rec('200','a') =~ m/^Das /) || 
+#      ( rec('200','a') =~ m/^The /) ) {
+#              marc_indicators('246', 0, 4);
+# } else {
+#      marc_indicators('246', 0, 0);
+# }
+# 
+# ### 246
+# # povuæi podatke iz prikladnog izvora (nsk, issn)
+# 
+# marc('246','a',
+#      rec('532')
+# );
+# 
+# ## iz nsk:
+# #    marc('246','a',
+# #            lookup(
+# #                    sub { rec('532','a') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            )
+# #    );
+# 
+# #_debug(0);
+# 
+# 
+# ## 260 - izdavanje
+# # provjeriti interpunkcije !!, u NSK nesto ne stima
+# 
+# marc_original_order('260','210');
+# 
+# ## lookup u NSK:
+# # if ( rec('11') ) {
+# #    marc_repeatable_subfield('260','a',
+# #            lookup(
+# #                    sub { rec('210','a') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            ) 
+# #    );
+# #    marc_repeatable_subfield('260','b',
+# #            lookup(
+# #                    sub { rec('210','c') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            ) 
+# #    );
+# #    marc('260','c',
+# #            lookup(
+# #                    sub { rec('210','d') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            ) 
+# #    );
+# # } else {
+# #    marc_original_order('260', '210');
+# # }
+# 
+# 
+# ### 300
+# 
+# marc('300','a',
+#      suffix(
+#              ( rec('215','a') && rec('215','c') )    ?  ' : ' :
+#              ( rec('215','a') && rec('215','d') )    ?  ' ; ' :
+#              ( rec('215','a') && rec('215','e') )    ?  ' + ' :
+#                                 ' ',
+#                      rec('215','a')
+#      )
+# );
+# 
+# marc('300','b',
+#      suffix(
+#              ( rec('215','c') && rec('215','d') )    ?  ' ; ' :
+#              ( rec('215','c') && rec('215','e') )    ?  ' + ' :
+#                                                         ' ',
+#                      rec('215','c')
+#      )
+# );
+# 
+# marc('300','c',
+#      suffix(
+#              rec('215','e') ? ' + ' :
+#                               ' ',
+#                      rec('215','d')
+#      )
+# );
+# 
+# marc('300','e',
+#      rec('215','e')
+# );
+# 
+# ### 310 - current stated publication frequency
+# # potrebno ujednaèiti, koristi se i u polju 008
+# 
+# marc('310','a',
+#      rec('326')
+# );
+# 
+# ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
+# 
+# # marc('321','a',
+# #    ovo bi trebalo procitati iz NSK konvertiranih podataka
+# #);
+# 
+# marc_indicators('362', 0, ' ');
+# 
+# ### 362
+# #
+# if ( rec('207','a') ) {
+#      marc('362','a',
+#              rec('207','a'),
+#      );
+# } 
+# 
+# ## lookup iz nsk
+# #else {
+# #    if ( rec('11') ) {
+# #            marc('362','a',
+# #                    lookup(
+# #                            sub { rec('207','a') },
+# #                            'nsk','bbaza',
+# #                            sub { first( rec('011','a') ) },
+# #                            sub { rec('11') },
+# #                    ) 
+# #            );
+# #    }
+# #}
+# 
+# ### 490 ind.
+# 
+# marc_indicators('490', '0', ' ');
+# 
+# ### 490
+# 
+# marc('490','a',
+#      join_with('. ',
+#              join_with(' / ',
+#                      join_with(' : ',
+#                              join_with(' = ',
+#                                      rec('225','a'),
+#                                      rec('225','d')
+#                              ),
+#                              rec('225','e')
+#                      ),
+#                      join_with(' ; ',
+#                              rec('225','f'),
+#                              rec('225','g')
+#                      ),
+#              ),
+#              rec('225','h')
+#      )
+# );
+# 
+# marc('490','v',
+#      rec('225','v')
+# );
+# 
+# marc('490','x',
+#      rec('225','x')
+# );
+# 
+# if ( rec('11') ) {
+#      marc('999','a',
+#              lookup(
+#                      sub { rec('110','a'), },
+#                      'nsk','bbaza',
+#                      sub { rec('011','a') }, 
+#                      sub { rec('11') } 
+#              )
+#      );
+# }
+# 
+# 
+# #marc('998','a',
+# #    lookup(
+# #            sub { rec('H') },
+# #            'ffsf','xls',
+# #            sub { rec('A') },
+# #            sub { $id },
+# #    ),
+# #);
+
+
+### 500
+# lookup
+# 
+# 
+# marc('500','a',
+#      rec(''),
+# );
+#  
+# 
+# ### 534 - napomena o pretisku
+# 
+# marc('534','a',
+#      rec('324')
+# );
+# 
+# ## potencijalno za izvuæi iz NSK
+# #if ( rec('11') ) {
+# #marc('546','a',
+# #    lookup(
+# #            sub { rec('302','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #
+# #marc('550','a',
+# #    lookup(
+# #            sub { rec('314','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #
+# #marc('555','a',
+# #    lookup(
+# #            sub { rec('320','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #
+# #
+# ## marc('562','a',
+# ##   lookup(
+# ##           sub { rec('316','a') },
+# ##           'nsk','bbaza',
+# ##           sub { rec('011','a') },
+# ##           sub { rec('11') },
+# ##   ) 
+# ## );
+# #}
+
+
+if ( rec('B') ) {
+       marc('996','a',
+               lc( rec('A') )
+       );
+
+       marc('996','b',
+               'peri'
+       );
+
+       marc('996','c',
+               rec('B')
+       );
+}
+
+# 
+# ### 653 indikatori
+# marc_indicators('653', 0, ' ');
+# 
+# ### 653
+# 
+# marc('653','a',
+#      rec('610')
+# );
+# 
+# # marc_indicators('655', ' ', 4);
+# # marc('655','a',
+# #    lookup(
+# #            sub { rec('608','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# # );
+# 
+# 
+# #_debug(2);
+# 
+# ### 700 indikatori
+# 
+# marc_indicators('700', 1, ' ');
+# 
+# ### 700
+# 
+# marc('700','a',
+#      rec('702','a'),
+# );
+# 
+# marc('700','a',
+#      join_with(', ',
+#              rec('702','c'),
+#              rec('702','d')
+#      )
+# );
+# 
+#  
+# #_debug(0);
+# 
+# ### 710 indikatori
+# 
+# marc_indicators('710', '2', ' ');
+# 
+# ### 710
+# marc('710','a',
+#      rec('710','a')
+# );
+# 
+# ### 770 indikatori
+# 
+# marc_indicators('770', 0, ' ');
+# 
+# ### 770
+# marc('770','t',
+#      rec('421','a'),
+# );
+# 
+# ### 772 indikatori
+# marc_indicators('772', 0, ' ');
+# 
+# ### 772
+# marc('772','t',
+#      rec('422','a'),
+# );
+# 
+# ### 773 indikatori
+# 
+# if ( rec('225','a') ) {
+# 
+# marc_indicators('773', 0, ' ');
+# 
+# ### 773
+# ## da li je bitan redoslijed potpolja?
+# 
+# marc('773','w',
+#      lookup(
+#              sub { rec('000') },
+#              'ffsf','peri',
+#              sub { rec('200','a') },
+#              sub { 
+#                      regex('s/ ; //g',
+#                              rec('225','a')
+#                      )
+#              },
+#      )
+# );
+# 
+# }
+# 
+# 
+# ### 777 indikatori
+# 
+# marc_indicators('777', 0, ' ');
+# 
+# ### 777
+# 
+# marc('777','t',
+#      rec('423','a'),
+# );
+# 
+# ### 780 indikatori
+# 
+# marc_indicators('780', 0, 0);
+# 
+# ### 780
+# marc('780','t',
+#      rec('430','a'),
+# );
+# 
+# ### 785 indikatori
+# 
+# marc_indicators('785', 0, 0);
+# 
+# ### 785
+# marc('785','t',
+#      rec('440','a'),
+# );
+# 
+# ### 852
+# 
+# marc('852','j',
+#      join_with(' ',
+#              rec('990')
+#      )
+# );
+# 
+# ### 876
+# 
+# marc('876','a',
+#      rec('991','a')
+# );
+
+marc('942','d',
+       rec('C')
+);
+
+
+
+# 
+# ### 992
+# 
+# marc('992','a',
+#      join_with(' ; ', 
+#              rec('992')
+#      )
+# );
+# 
+# 
+### polja za probu
+
+
+#marc('998','a',
+#      lookup(
+#              sub { rec('200','a') },
+#              'ffiz','peri',
+#              sub { rec('200','a'), },
+#              sub { rec('225','a'), }
+#      )
+#);
+
+# 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') },
+#              )
+#      )
+# );
+
diff --git a/conf/ffcasopisi/peri2marc.pl b/conf/ffcasopisi/peri2marc.pl
new file mode 100644 (file)
index 0000000..3769bbf
--- /dev/null
@@ -0,0 +1,746 @@
+if ( rec('200','a') ) {
+
+### LEADER
+
+## LDR 05 - n - new
+marc_leader('05','n');
+
+## LDR 06 - a - language material 
+marc_leader('06','a');
+
+## LDR 07 - Bibliographic level 
+#  izvuci podatke iz tablice (za po i sf)
+
+if ( rec('225','a') ) {
+       marc_leader('07','d');  
+} else {
+       marc_leader('07','s');  
+}
+
+## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
+marc_leader('17','u');
+
+## LDR 18 - i - isbd 
+marc_leader('18','i');
+
+
+## LDR 19 - Multipart resource record level ; # - Not specified or not applicable, a - Set, b - Part with independent title, c - Part with dependent title 
+# tematski brojevi imaju vezu u 
+
+if ( rec('225','a') ) {
+       marc_leader('19','a');
+}
+
+### 008 - All materials
+
+marc_fixed('008','00', '010101');      # 00-05 - Date entered on file
+
+## za 008 06 treba i lookup u tablicu gdje postoji podatak o tome jel tekuci casopis ili nije?
+## c - Continuing resource currently published
+## d - Continuing resource ceased publication
+
+my $year = rec('210','c');
+
+#if ( rec('210','c') ) {
+#      marc_fixed('008','06','s');             # 06 - Type of date/Publication status, s = single know date
+#      
+##     warn "## year = $year";
+#
+#      if ( $year =~ m/^(\d{4})/ ) {
+##     warn "## $1 ##\n";
+#              marc_fixed('008','07',$1);              # 07-10 - Date 1
+#      }
+#
+#      if ( $year =~ m/^\d{4}-(\d{4})/ ) {
+##     warn "## $1 ##";
+#              marc_fixed('008','11',$1);              # 11-14 - Date 2 
+#              marc_fixed('008','06','d');
+#      }
+#      
+#} else {
+#      marc_fixed('008','06','n');             # 06 - n = unknown date
+#}
+
+if ( rec('210','c') ) {
+       my $d1 = '';
+       my $d2 = '';
+       if ( rec('210','c') =~ m/(\d{4})-/ ) {
+               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;
+               }
+               if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
+                       $d1 = $1.'uu';
+               } 
+               if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
+                       $d1 = $1.'u';
+               }
+       }
+       marc_fixed('008','07',$d1);             # 07-10 - Date 1
+       marc_fixed('008','11',$d2);             # 07-10 - Date 1
+} else {
+       marc_fixed('008','06','n');             # 06 - n = unknown date
+       marc_fixed('008','07','uuuu');
+}
+
+marc_fixed('008','15',                 # 15-17 - Place of publication, production, or execution
+       lc ( rec('102') ) 
+);
+
+
+
+marc_fixed('008','35',
+       first( lc(rec('101')) )         # 35-37 - Language
+);
+                                       # 38 - Modified record
+                                       # 39 - Cataloging source
+
+### 008 - Continuing resources
+
+if ( ! rec('225','a') ) {
+
+marc_fixed('008','18', 'u');   # 18 - Frequency - ovo treba popuniti iz polja 326
+marc_fixed('008','19', 'u');   # 19 - Regularity
+                               # 20 - Undefined, ontains a blank (#) or fill character (|)
+
+# za polje 008 21 treba lookup u tablicu:
+marc_fixed('008','21', 'p');   # 21 - Type of continuing resource
+
+                               # 22 - Form of original item - blank
+                               # 23 - Form of item
+                               # 24 - Nature of entire work
+                               # 25-27 - Nature of contents
+                               # 28 - Government publication
+                               # 29 - Conference publication
+                               # 30-32 - Undefined
+                               # 33 - Original alphabet or script of title
+                               # 34 - Entry convention
+} 
+
+## 022
+# if ( ! rec('225','a') ) {
+#      marc('022','a',
+#              rec('11')
+#      );
+# }
+#
+
+### 022
+
+#if ( ! rec('225','a') ) {
+       marc('022','a',
+               rec('11')
+       );
+#}
+
+### 035$6
+# privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
+
+my $id;
+
+$id = ( 
+       join_with('',
+               uc( config() ),
+               ' P',
+               rec('000')
+       )
+);
+
+marc('035','6', $id);
+
+### 040
+# za sve je isti
+# treba utvrditi toènu oznaku za ustanovu
+
+marc('040','a',
+       'HR FFZG'
+);
+
+marc('040','b',
+       'hrv'
+);
+
+marc('040','e',
+       'HR PPIAK'
+);
+
+### 041 - indikatori
+
+marc_indicators('041', 0, ' ');
+
+### 041
+
+marc_repeatable_subfield('041','a',
+       rec('101')
+);
+
+
+#_debug(3);
+
+### 044 - zemlja izdavanja
+
+marc('044','a',
+       rec('102')
+);
+
+### 080
+
+marc('080','a',
+       rec('675','a')
+);
+
+### 210 indikatori
+# marc_indicators('210', '1',' ');
+
+### 210 - ABBREVIATED TITLE 
+# pronaæi prikladan izvor podataka (nsk baza, issn baza)
+
+## iz nsk
+#if ( rec('11') ) {
+#marc('210','a',
+#      lookup(
+#              sub { rec('531','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#}
+
+### 222 indikatori
+# drugi indikator prema èlanu
+
+marc_indicators('222',' ','0');
+
+### 222 - Key title
+# pronaæi prikadan izvor podataka - nsk baza, issn baze
+
+marc('222','a',
+       rec('530')
+);
+
+# iz nsk:
+#if ( rec('11') ) {
+#marc('222','a',
+#      lookup(
+#              sub { rec('530','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#}
+
+### 245 indikatori
+# generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek). 
+# potrebna naknadna kontrola
+
+marc_indicators('245', 0, 0);
+
+if (   ( rec('200','a') =~ m/^Die /) || 
+       ( rec('200','a') =~ m/^Das /) || 
+       ( rec('200','a') =~ m/^Der /) || 
+       ( rec('200','a') =~ m/^Les /) || 
+       ( rec('200','a') =~ m/^The /) ) {
+               marc_indicators('245', 0, 4);
+
+} 
+
+if (   ( rec('200','a') =~ m/^Un /) || 
+       ( rec('200','a') =~ m/^An /) ||
+       ( rec('200','a') =~ m/^La /) ||
+       ( rec('200','a') =~ m/^Le /) ||
+       ( rec('200','a') =~ m/^Il /) ) {
+               marc_indicators('245', 0, 3);
+} 
+
+if (   ( rec('200','a') =~ m/^A /) || 
+       ( rec('200','a') =~ m/^L'/) ) {
+               marc_indicators('245', 0, 2);
+} 
+
+### 245
+
+marc_compose('245',
+       'a', suffix(
+               ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :  
+               ( rec('200','d') ) ? ' =' :
+               ( rec('200','e') ) ? ' :' :
+               ( rec('200','k') ) ? ' ;' :
+                       '', 
+                       rec('200','a'),
+       ),
+       'b', suffix(
+               ( rec('200','d') && rec('200','f') ) ? ' /' : 
+               ( rec('200','d') && rec('200','c') ) ? '.'  : 
+                       '',
+                       rec('200','d'),
+       ),
+       'b', suffix(
+               ( rec('200','e') && rec('200','f') ) ? ' /' : 
+               ( rec('200','e') && rec('200','c') ) ? '.'  : 
+                       '',
+                       rec('200','e'),
+       ),
+       'b', suffix(
+               ( rec('200','k') && rec('200','f') ) ? ' /' : 
+               ( rec('200','k') && rec('200','c') ) ? '.'  : 
+                       '',
+                       rec('200','k'),
+       ),
+       'c', suffix(
+               ( rec('200','f') && rec('200','c') ) ? '.' :
+                       '',
+                       rec('200','f'),
+       ),
+       '+', suffix('.',
+               rec('200','c'),
+       )
+);
+
+### 246 inikatori
+# prema jeziku - provjera
+
+if (   ( rec('200','a') =~ m/^Die /) || 
+       ( rec('200','a') =~ m/^Das /) || 
+       ( rec('200','a') =~ m/^The /) ) {
+               marc_indicators('246', 0, 4);
+} else {
+       marc_indicators('246', 0, 0);
+}
+
+### 246
+# povuæi podatke iz prikladnog izvora (nsk, issn)
+
+marc('246','a',
+       rec('532')
+);
+
+## iz nsk:
+#      marc('246','a',
+#              lookup(
+#                      sub { rec('532','a') },
+#                      'nsk','bbaza',
+#                      sub { rec('011','a') },
+#                      sub { rec('11') },
+#              )
+#      );
+
+#_debug(0);
+
+
+## 260 - izdavanje
+# provjeriti interpunkcije !!, u NSK nesto ne stima
+
+marc_original_order('260','210');
+
+## lookup u NSK:
+# if ( rec('11') ) {
+#      marc_repeatable_subfield('260','a',
+#              lookup(
+#                      sub { rec('210','a') },
+#                      'nsk','bbaza',
+#                      sub { rec('011','a') },
+#                      sub { rec('11') },
+#              ) 
+#      );
+#      marc_repeatable_subfield('260','b',
+#              lookup(
+#                      sub { rec('210','c') },
+#                      'nsk','bbaza',
+#                      sub { rec('011','a') },
+#                      sub { rec('11') },
+#              ) 
+#      );
+#      marc('260','c',
+#              lookup(
+#                      sub { rec('210','d') },
+#                      'nsk','bbaza',
+#                      sub { rec('011','a') },
+#                      sub { rec('11') },
+#              ) 
+#      );
+# } else {
+#      marc_original_order('260', '210');
+# }
+
+
+### 300
+
+marc('300','a',
+       suffix(
+               ( rec('215','a') && rec('215','c') )    ?  ' : ' :
+               ( rec('215','a') && rec('215','d') )    ?  ' ; ' :
+               ( rec('215','a') && rec('215','e') )    ?  ' + ' :
+                                  ' ',
+                       rec('215','a')
+       )
+);
+
+marc('300','b',
+       suffix(
+               ( rec('215','c') && rec('215','d') )    ?  ' ; ' :
+               ( rec('215','c') && rec('215','e') )    ?  ' + ' :
+                                                          ' ',
+                       rec('215','c')
+       )
+);
+
+marc('300','c',
+       suffix(
+               rec('215','e') ? ' + ' :
+                                ' ',
+                       rec('215','d')
+       )
+);
+
+marc('300','e',
+       rec('215','e')
+);
+
+### 310 - current stated publication frequency
+# potrebno ujednaèiti, koristi se i u polju 008
+
+marc('310','a',
+       rec('326')
+);
+
+### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
+
+# marc('321','a',
+#      ovo bi trebalo procitati iz NSK konvertiranih podataka
+#);
+
+marc_indicators('362', 0, ' ');
+
+### 362
+#
+if ( rec('207','a') ) {
+       marc('362','a',
+               rec('207','a'),
+       );
+} 
+
+## lookup iz nsk
+#else {
+#      if ( rec('11') ) {
+#              marc('362','a',
+#                      lookup(
+#                              sub { rec('207','a') },
+#                              'nsk','bbaza',
+#                              sub { first( rec('011','a') ) },
+#                              sub { rec('11') },
+#                      ) 
+#              );
+#      }
+#}
+
+### 490 ind.
+
+marc_indicators('490', '0', ' ');
+
+### 490
+
+marc('490','a',
+       join_with('. ',
+               join_with(' / ',
+                       join_with(' : ',
+                               join_with(' = ',
+                                       rec('225','a'),
+                                       rec('225','d')
+                               ),
+                               rec('225','e')
+                       ),
+                       join_with(' ; ',
+                               rec('225','f'),
+                               rec('225','g')
+                       ),
+               ),
+               rec('225','h')
+       )
+);
+
+marc('490','v',
+       rec('225','v')
+);
+
+marc('490','x',
+       rec('225','x')
+);
+
+if ( rec('11') ) {
+       marc('999','a',
+               lookup(
+                       sub { rec('110','a'), },
+                       'nsk','bbaza',
+                       sub { rec('011','a') }, 
+                       sub { rec('11') } 
+               )
+       );
+}
+
+
+#marc('998','a',
+#      lookup(
+#              sub { rec('H') },
+#              'ffsf','xls',
+#              sub { rec('A') },
+#              sub { $id },
+#      ),
+#);
+
+
+### 5xx
+# koje podatke povuæi iz drugih baza?
+
+marc('500','a',
+       rec('300','a'),
+);
+
+### 534 - napomena o pretisku
+
+marc('534','a',
+       rec('324')
+);
+
+## potencijalno za izvuæi iz NSK
+#if ( rec('11') ) {
+#marc('546','a',
+#      lookup(
+#              sub { rec('302','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#
+#marc('550','a',
+#      lookup(
+#              sub { rec('314','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#
+#marc('555','a',
+#      lookup(
+#              sub { rec('320','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#
+#
+## marc('562','a',
+##     lookup(
+##             sub { rec('316','a') },
+##             'nsk','bbaza',
+##             sub { rec('011','a') },
+##             sub { rec('11') },
+##     ) 
+## );
+#}
+
+### 653 indikatori
+marc_indicators('653', 0, ' ');
+
+### 653
+
+marc('653','a',
+       rec('610')
+);
+
+# marc_indicators('655', ' ', 4);
+# marc('655','a',
+#      lookup(
+#              sub { rec('608','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+# );
+
+
+#_debug(2);
+
+### 700 indikatori
+
+marc_indicators('700', 1, ' ');
+
+### 700
+
+marc('700','a',
+       rec('702','a'),
+);
+
+marc('700','a',
+       join_with(', ',
+               rec('702','c'),
+               rec('702','d')
+       )
+);
+
+#_debug(0);
+
+### 710 indikatori
+
+marc_indicators('710', '2', ' ');
+
+### 710
+marc('710','a',
+       rec('710','a')
+);
+
+### 770 indikatori
+
+marc_indicators('770', 0, ' ');
+
+### 770
+marc('770','t',
+       rec('421','a'),
+);
+
+### 772 indikatori
+marc_indicators('772', 0, ' ');
+
+### 772
+marc('772','t',
+       rec('422','a'),
+);
+
+### 773 indikatori
+
+if ( rec('225','a') ) {
+
+marc_indicators('773', 0, ' ');
+
+### 773
+## da li je bitan redoslijed potpolja?
+
+marc('773','w',
+       lookup(
+               sub { rec('000') },
+               'ffsf','peri',
+               sub { rec('200','a') },
+               sub { 
+                       regex('s/ ; //g',
+                               rec('225','a')
+                       )
+               },
+       )
+);
+
+}
+
+
+### 777 indikatori
+
+marc_indicators('777', 0, ' ');
+
+### 777
+
+marc('777','t',
+       rec('423','a'),
+);
+
+### 780 indikatori
+
+marc_indicators('780', 0, 0);
+
+### 780
+marc('780','t',
+       rec('430','a'),
+);
+
+### 785 indikatori
+
+marc_indicators('785', 0, 0);
+
+### 785
+marc('785','t',
+       rec('440','a'),
+);
+
+### 852
+
+marc('852','j',
+       join_with(' ',
+               rec('990')
+       )
+);
+
+### 876
+
+marc('876','a',
+       rec('991','a')
+);
+
+### 992
+
+marc('992','a',
+       join_with(' ; ', 
+               rec('992')
+       )
+);
+
+
+### polja za probu
+
+
+#marc('998','a',
+#      lookup(
+#              sub { rec('200','a') },
+#              'ffiz','peri',
+#              sub { rec('200','a'), },
+#              sub { rec('225','a'), }
+#      )
+#);
+
+# 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') },
+#              )
+#      )
+# );
+
+}# 200a
diff --git a/conf/ffcasopisi/sigxls2marc.pl b/conf/ffcasopisi/sigxls2marc.pl
new file mode 100644 (file)
index 0000000..60c6c1e
--- /dev/null
@@ -0,0 +1,650 @@
+
+### LEADER
+
+## LDR 05 - n - new
+marc_leader('05','n');
+
+## LDR 06 - a - language material 
+marc_leader('06','a');
+
+## LDR 07 - Bibliographic level 
+marc_leader('07','s');
+
+## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
+marc_leader('17','u');
+
+## LDR 18 - i - isbd 
+marc_leader('18','i');
+
+### 008 - All materials
+marc_fixed('008','00', '090512');      # 00-05 - Date entered on file
+
+## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije?
+## c - Continuing resource currently published
+## d - Continuing resource ceased publication
+
+marc_fixed('008','06','|');            # 06 - Type of date/Publication status, s = single know date, | = no attempt to code
+marc_fixed('008','07','||||');
+marc_fixed('008','11','||||');
+marc_fixed('008','15','xx ');
+                                       # 18-34 - Material specific coded elements 
+                                       # 35-37 - Language
+marc_fixed('008','38','|');            # 38 - Modified record
+marc_fixed('008','39','d');            # 39 - Cataloging source
+
+### 008 - Continuing resources
+
+marc_fixed('008','18', '|');   # 18 - Frequency - ovo treba popuniti iz polja 326
+marc_fixed('008','19', '|');   # 19 - Regularity
+                               # 20 - Undefined, ontains a blank (#) or fill character (|)
+
+marc_fixed('008','21', 'p');   # 21 - Type of continuing resource
+
+                               # 22 - Form of original item - blank
+                               # 23 - Form of item
+                               # 24 - Nature of entire work
+                               # 25-27 - Nature of contents
+                               # 28 - Government publication
+                               # 29 - Conference publication
+                               # 30-32 - Undefined
+                               # 33 - Original alphabet or script of title
+                               # 34 - Entry convention
+marc_fixed('008','22', ' ');
+marc_fixed('008','23', ' ');
+marc_fixed('008','24', '|');
+marc_fixed('008','25', '|||');
+marc_fixed('008','28', ' ');
+marc_fixed('008','29', ' ');
+marc_fixed('008','33', '|');
+marc_fixed('008','34', '|');
+
+### 022
+
+marc('022','a',
+       rec('F')
+);
+
+### 035$a
+
+if ( rec('B') ) {
+       marc('035','a',
+               join_with(' ',
+                       'HR-ZaFF',
+                       join_with('',
+                               suffix('P',
+                                       lc( rec('A') )
+                               ),
+                               rec('B')
+                       ),
+               )
+       );
+}
+
+### 040
+# za sve je isti
+# treba utvrditi toènu oznaku za ustanovu
+
+marc('040','a',
+       'HR FFZG'
+);
+
+marc('040','b',
+       'hrv'
+);
+
+marc('040','c',
+       'HR-ZaFF'
+);
+
+marc('040','e',
+       'ppiak'
+);
+
+
+#_debug(3);
+
+## iz nsk
+#if ( rec('11') ) {
+#marc('210','a',
+#      lookup(
+#              sub { rec('531','a') },
+#              'nsk','bbaza',
+#              sub { rec('011','a') },
+#              sub { rec('11') },
+#      ) 
+#);
+#}
+
+# ### 222 indikatori
+# # drugi indikator prema èlanu
+# 
+# marc_indicators('222',' ','0');
+# 
+# ### 222 - Key title
+# # pronaæi prikadan izvor podataka - nsk baza, issn baze
+# 
+# marc('222','a',
+#      rec('530')
+# );
+# 
+# # iz nsk:
+# #if ( rec('11') ) {
+# #marc('222','a',
+# #    lookup(
+# #            sub { rec('530','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #}
+
+### 245 indikatori
+# generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek). 
+# potrebna naknadna kontrola
+
+marc_indicators('245', 0, 0);
+
+if (   ( rec('E') =~ m/^Die /) || 
+       ( rec('E') =~ m/^Das /) || 
+       ( rec('E') =~ m/^Der /) || 
+       ( rec('E') =~ m/^Les /) || 
+       ( rec('E') =~ m/^The /) ) {
+               marc_indicators('245', 0, 4);
+
+} 
+
+if (   ( rec('E') =~ m/^Un /) || 
+       ( rec('E') =~ m/^An /) ||
+       ( rec('E') =~ m/^La /) ||
+       ( rec('E') =~ m/^Le /) ||
+       ( rec('E') =~ m/^Il /) ) {
+               marc_indicators('245', 0, 3);
+} 
+
+if (   ( rec('E') =~ m/^A /) || 
+       ( rec('E') =~ m/^L'/) ) {
+               marc_indicators('245', 0, 2);
+} 
+
+### 245
+
+if ( rec('E') =~ m/:/ ) {
+       marc('245','a',
+               suffix(' :',
+                       regex('s/(^.*):.*/$1/',
+                               rec('E')
+                       )
+               )
+       );
+       marc('245','b',
+               regex('s/^.*: (.*)/$1/',
+                       rec('E')
+               )
+       );
+} else {
+       marc('245','a',
+               rec('E')
+       );
+}
+
+# ### 246 inikatori
+# # prema jeziku - provjera
+# 
+# if (         ( rec('200','a') =~ m/^Die /) || 
+#      ( rec('200','a') =~ m/^Das /) || 
+#      ( rec('200','a') =~ m/^The /) ) {
+#              marc_indicators('246', 0, 4);
+# } else {
+#      marc_indicators('246', 0, 0);
+# }
+# 
+# ### 246
+# # povuæi podatke iz prikladnog izvora (nsk, issn)
+# 
+# marc('246','a',
+#      rec('532')
+# );
+# 
+# ## iz nsk:
+# #    marc('246','a',
+# #            lookup(
+# #                    sub { rec('532','a') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            )
+# #    );
+# 
+# #_debug(0);
+# 
+# 
+# ## 260 - izdavanje
+# # provjeriti interpunkcije !!, u NSK nesto ne stima
+# 
+# marc_original_order('260','210');
+# 
+# ## lookup u NSK:
+# # if ( rec('11') ) {
+# #    marc_repeatable_subfield('260','a',
+# #            lookup(
+# #                    sub { rec('210','a') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            ) 
+# #    );
+# #    marc_repeatable_subfield('260','b',
+# #            lookup(
+# #                    sub { rec('210','c') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            ) 
+# #    );
+# #    marc('260','c',
+# #            lookup(
+# #                    sub { rec('210','d') },
+# #                    'nsk','bbaza',
+# #                    sub { rec('011','a') },
+# #                    sub { rec('11') },
+# #            ) 
+# #    );
+# # } else {
+# #    marc_original_order('260', '210');
+# # }
+# 
+# 
+# ### 300
+# 
+# marc('300','a',
+#      suffix(
+#              ( rec('215','a') && rec('215','c') )    ?  ' : ' :
+#              ( rec('215','a') && rec('215','d') )    ?  ' ; ' :
+#              ( rec('215','a') && rec('215','e') )    ?  ' + ' :
+#                                 ' ',
+#                      rec('215','a')
+#      )
+# );
+# 
+# marc('300','b',
+#      suffix(
+#              ( rec('215','c') && rec('215','d') )    ?  ' ; ' :
+#              ( rec('215','c') && rec('215','e') )    ?  ' + ' :
+#                                                         ' ',
+#                      rec('215','c')
+#      )
+# );
+# 
+# marc('300','c',
+#      suffix(
+#              rec('215','e') ? ' + ' :
+#                               ' ',
+#                      rec('215','d')
+#      )
+# );
+# 
+# marc('300','e',
+#      rec('215','e')
+# );
+# 
+# ### 310 - current stated publication frequency
+# # potrebno ujednaèiti, koristi se i u polju 008
+# 
+# marc('310','a',
+#      rec('326')
+# );
+# 
+# ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
+# 
+# # marc('321','a',
+# #    ovo bi trebalo procitati iz NSK konvertiranih podataka
+# #);
+# 
+# marc_indicators('362', 0, ' ');
+# 
+# ### 362
+# #
+# if ( rec('207','a') ) {
+#      marc('362','a',
+#              rec('207','a'),
+#      );
+# } 
+# 
+# ## lookup iz nsk
+# #else {
+# #    if ( rec('11') ) {
+# #            marc('362','a',
+# #                    lookup(
+# #                            sub { rec('207','a') },
+# #                            'nsk','bbaza',
+# #                            sub { first( rec('011','a') ) },
+# #                            sub { rec('11') },
+# #                    ) 
+# #            );
+# #    }
+# #}
+# 
+# ### 490 ind.
+# 
+# marc_indicators('490', '0', ' ');
+# 
+# ### 490
+# 
+# marc('490','a',
+#      join_with('. ',
+#              join_with(' / ',
+#                      join_with(' : ',
+#                              join_with(' = ',
+#                                      rec('225','a'),
+#                                      rec('225','d')
+#                              ),
+#                              rec('225','e')
+#                      ),
+#                      join_with(' ; ',
+#                              rec('225','f'),
+#                              rec('225','g')
+#                      ),
+#              ),
+#              rec('225','h')
+#      )
+# );
+# 
+# marc('490','v',
+#      rec('225','v')
+# );
+# 
+# marc('490','x',
+#      rec('225','x')
+# );
+# 
+# if ( rec('11') ) {
+#      marc('999','a',
+#              lookup(
+#                      sub { rec('110','a'), },
+#                      'nsk','bbaza',
+#                      sub { rec('011','a') }, 
+#                      sub { rec('11') } 
+#              )
+#      );
+# }
+# 
+# 
+# #marc('998','a',
+# #    lookup(
+# #            sub { rec('H') },
+# #            'ffsf','xls',
+# #            sub { rec('A') },
+# #            sub { $id },
+# #    ),
+# #);
+
+
+### 500
+# lookup
+# 
+# 
+# marc('500','a',
+#      rec(''),
+# );
+#  
+# 
+# ### 534 - napomena o pretisku
+# 
+# marc('534','a',
+#      rec('324')
+# );
+# 
+# ## potencijalno za izvuæi iz NSK
+# #if ( rec('11') ) {
+# #marc('546','a',
+# #    lookup(
+# #            sub { rec('302','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #
+# #marc('550','a',
+# #    lookup(
+# #            sub { rec('314','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #
+# #marc('555','a',
+# #    lookup(
+# #            sub { rec('320','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# #);
+# #
+# #
+# ## marc('562','a',
+# ##   lookup(
+# ##           sub { rec('316','a') },
+# ##           'nsk','bbaza',
+# ##           sub { rec('011','a') },
+# ##           sub { rec('11') },
+# ##   ) 
+# ## );
+# #}
+
+
+if ( rec('B') ) {
+       marc('996','a',
+               lc( rec('A') )
+       );
+
+       marc('996','b',
+               'peri'
+       );
+
+       marc('996','c',
+               rec('B')
+       );
+}
+
+# 
+# ### 653 indikatori
+# marc_indicators('653', 0, ' ');
+# 
+# ### 653
+# 
+# marc('653','a',
+#      rec('610')
+# );
+# 
+# # marc_indicators('655', ' ', 4);
+# # marc('655','a',
+# #    lookup(
+# #            sub { rec('608','a') },
+# #            'nsk','bbaza',
+# #            sub { rec('011','a') },
+# #            sub { rec('11') },
+# #    ) 
+# # );
+# 
+# 
+# #_debug(2);
+# 
+# ### 700 indikatori
+# 
+# marc_indicators('700', 1, ' ');
+# 
+# ### 700
+# 
+# marc('700','a',
+#      rec('702','a'),
+# );
+# 
+# marc('700','a',
+#      join_with(', ',
+#              rec('702','c'),
+#              rec('702','d')
+#      )
+# );
+# 
+#  
+# #_debug(0);
+# 
+# ### 710 indikatori
+# 
+# marc_indicators('710', '2', ' ');
+# 
+# ### 710
+# marc('710','a',
+#      rec('710','a')
+# );
+# 
+# ### 770 indikatori
+# 
+# marc_indicators('770', 0, ' ');
+# 
+# ### 770
+# marc('770','t',
+#      rec('421','a'),
+# );
+# 
+# ### 772 indikatori
+# marc_indicators('772', 0, ' ');
+# 
+# ### 772
+# marc('772','t',
+#      rec('422','a'),
+# );
+# 
+# ### 773 indikatori
+# 
+# if ( rec('225','a') ) {
+# 
+# marc_indicators('773', 0, ' ');
+# 
+# ### 773
+# ## da li je bitan redoslijed potpolja?
+# 
+# marc('773','w',
+#      lookup(
+#              sub { rec('000') },
+#              'ffsf','peri',
+#              sub { rec('200','a') },
+#              sub { 
+#                      regex('s/ ; //g',
+#                              rec('225','a')
+#                      )
+#              },
+#      )
+# );
+# 
+# }
+# 
+# 
+# ### 777 indikatori
+# 
+# marc_indicators('777', 0, ' ');
+# 
+# ### 777
+# 
+# marc('777','t',
+#      rec('423','a'),
+# );
+# 
+# ### 780 indikatori
+# 
+# marc_indicators('780', 0, 0);
+# 
+# ### 780
+# marc('780','t',
+#      rec('430','a'),
+# );
+# 
+# ### 785 indikatori
+# 
+# marc_indicators('785', 0, 0);
+# 
+# ### 785
+# marc('785','t',
+#      rec('440','a'),
+# );
+# 
+# ### 852
+# 
+# marc('852','j',
+#      join_with(' ',
+#              rec('990')
+#      )
+# );
+# 
+# ### 876
+# 
+# marc('876','a',
+#      rec('991','a')
+# );
+
+marc('942','d',
+       rec('C')
+);
+
+
+
+# 
+# ### 992
+# 
+# marc('992','a',
+#      join_with(' ; ', 
+#              rec('992')
+#      )
+# );
+# 
+# 
+### polja za probu
+
+
+#marc('998','a',
+#      lookup(
+#              sub { rec('200','a') },
+#              'ffiz','peri',
+#              sub { rec('200','a'), },
+#              sub { rec('225','a'), }
+#      )
+#);
+
+# 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') },
+#              )
+#      )
+# );
+
diff --git a/conf/mjesec-ffcasopisi-signature.yml b/conf/mjesec-ffcasopisi-signature.yml
deleted file mode 100644 (file)
index 2c83706..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
---- #YAML:1.0
-# DO NOT USE TABS FOR INDENTATION OR label/value SEPARATION!!!
-
-# encoding of this configuration file
-config_encoding: 'ISO-8859-2'
-# encoding in Catalyst.
-catalyst_encoding: 'UTF-8'
-# relative path to sites templates under Catalyst root
-sites_root: 'sites'
-
-# which indexing engine to use? (hyperestraier is default)
-#use_indexer: 'hyperestraier'
-use_indexer: 'hyperestraier-native'
-#use_indexer: 'kinosearch'
-
-# configuration for Hyper Estraier full text search engine
-hyperestraier:
-  #url: 'http://localhost:1978/node/webpac2'
-  masterurl: 'http://localhost:1978'
-  defaultnode: 'webpac2'
-#  defaultnode: 'ps'
-  defaultdepth: 1
-  user: 'admin'
-  passwd: 'admin'
-  # don't turn this on! it will spit huge amounts of output
-  #debug: 1
-  #
-  #
-  path: 'casket/'
-  # number of results on each page
-  hits_on_page: 10
-  # number of results to fetch for suggestion (it will fold multiple sameones)
-  hits_for_suggest: 20
-  #
-  # options used while indexing
-  #
-  # which tag type to use for search engine (used while indexing)
-  type: 'search'
-  #
-
-# options for pager
-pager:
-  # how many pages to show for navigation?
-  max_pages: 20
-
-# configuration for KinoSearch search engine library
-kinosearch:
-  index_path: './kinosearch/'
-  database: 'unconfigured database name'
-  label: 'unconfigured database label'
-  encoding: 'iso-8859-2'
-  # clean database before opening? (WARNING: this erases existing database)
-  clean: 1
-  # which field type to index?
-  type: 'search'
-
-webpac:
-  # default template to use
-  template: 'html_ffzg_results_short.tt'
-  # path to database files
-  db_path: '/data/webpac2/db'
-  # path to templates used by WebPAC::Output
-  template_path: '/data/webpac2/conf/output/tt'
-  # default template for results
-  default_template: 'html_ffzg.tt'
-  # default user editable css file
-  default_css: 'user.css'
-  css_path: 'root/css'
-  # encoding comming from webpac
-  webpac_encoding: 'iso-8859-2'
-  # encoding expected by Catalyst
-  out_encoding: 'utf-8'
-  # define different input formats (types) and perl modules to handle them
-  inputs:
-    isis: 'WebPAC::Input::ISIS'
-    marc: 'WebPAC::Input::MARC'
-    excel: 'WebPAC::Input::Excel'
-  # define delimiters for validation
-  delimiters:
-    - ' ; '
-    - ' : '
-    - ' / '
-    - ' = '
-editor:
-  # open this record when opening editor
-  # (it will also be used to deduce default database and input)
-  default_record_uri: 'ps/peri/1'
-
-# directives after this are used when indexing using core WebPAC modules
-
-databases:
-
-  csig:
-    name: 'Casopisi signature'
-    input:
-      - name: csig
-        type: excel
-        path: '/data/FF/casopisi/Casopisi-signature-20090515.xls'
-#        encoding: 'windows-1250'
-        normalize:
-          path: 'conf/normalize/ffcasopisi/signature_zs.pl'
-
-
diff --git a/conf/normalize/ff-peri.pl b/conf/normalize/ff-peri.pl
deleted file mode 100644 (file)
index 3769bbf..0000000
+++ /dev/null
@@ -1,746 +0,0 @@
-if ( rec('200','a') ) {
-
-### LEADER
-
-## LDR 05 - n - new
-marc_leader('05','n');
-
-## LDR 06 - a - language material 
-marc_leader('06','a');
-
-## LDR 07 - Bibliographic level 
-#  izvuci podatke iz tablice (za po i sf)
-
-if ( rec('225','a') ) {
-       marc_leader('07','d');  
-} else {
-       marc_leader('07','s');  
-}
-
-## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
-marc_leader('17','u');
-
-## LDR 18 - i - isbd 
-marc_leader('18','i');
-
-
-## LDR 19 - Multipart resource record level ; # - Not specified or not applicable, a - Set, b - Part with independent title, c - Part with dependent title 
-# tematski brojevi imaju vezu u 
-
-if ( rec('225','a') ) {
-       marc_leader('19','a');
-}
-
-### 008 - All materials
-
-marc_fixed('008','00', '010101');      # 00-05 - Date entered on file
-
-## za 008 06 treba i lookup u tablicu gdje postoji podatak o tome jel tekuci casopis ili nije?
-## c - Continuing resource currently published
-## d - Continuing resource ceased publication
-
-my $year = rec('210','c');
-
-#if ( rec('210','c') ) {
-#      marc_fixed('008','06','s');             # 06 - Type of date/Publication status, s = single know date
-#      
-##     warn "## year = $year";
-#
-#      if ( $year =~ m/^(\d{4})/ ) {
-##     warn "## $1 ##\n";
-#              marc_fixed('008','07',$1);              # 07-10 - Date 1
-#      }
-#
-#      if ( $year =~ m/^\d{4}-(\d{4})/ ) {
-##     warn "## $1 ##";
-#              marc_fixed('008','11',$1);              # 11-14 - Date 2 
-#              marc_fixed('008','06','d');
-#      }
-#      
-#} else {
-#      marc_fixed('008','06','n');             # 06 - n = unknown date
-#}
-
-if ( rec('210','c') ) {
-       my $d1 = '';
-       my $d2 = '';
-       if ( rec('210','c') =~ m/(\d{4})-/ ) {
-               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;
-               }
-               if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
-                       $d1 = $1.'uu';
-               } 
-               if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
-                       $d1 = $1.'u';
-               }
-       }
-       marc_fixed('008','07',$d1);             # 07-10 - Date 1
-       marc_fixed('008','11',$d2);             # 07-10 - Date 1
-} else {
-       marc_fixed('008','06','n');             # 06 - n = unknown date
-       marc_fixed('008','07','uuuu');
-}
-
-marc_fixed('008','15',                 # 15-17 - Place of publication, production, or execution
-       lc ( rec('102') ) 
-);
-
-
-
-marc_fixed('008','35',
-       first( lc(rec('101')) )         # 35-37 - Language
-);
-                                       # 38 - Modified record
-                                       # 39 - Cataloging source
-
-### 008 - Continuing resources
-
-if ( ! rec('225','a') ) {
-
-marc_fixed('008','18', 'u');   # 18 - Frequency - ovo treba popuniti iz polja 326
-marc_fixed('008','19', 'u');   # 19 - Regularity
-                               # 20 - Undefined, ontains a blank (#) or fill character (|)
-
-# za polje 008 21 treba lookup u tablicu:
-marc_fixed('008','21', 'p');   # 21 - Type of continuing resource
-
-                               # 22 - Form of original item - blank
-                               # 23 - Form of item
-                               # 24 - Nature of entire work
-                               # 25-27 - Nature of contents
-                               # 28 - Government publication
-                               # 29 - Conference publication
-                               # 30-32 - Undefined
-                               # 33 - Original alphabet or script of title
-                               # 34 - Entry convention
-} 
-
-## 022
-# if ( ! rec('225','a') ) {
-#      marc('022','a',
-#              rec('11')
-#      );
-# }
-#
-
-### 022
-
-#if ( ! rec('225','a') ) {
-       marc('022','a',
-               rec('11')
-       );
-#}
-
-### 035$6
-# privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
-
-my $id;
-
-$id = ( 
-       join_with('',
-               uc( config() ),
-               ' P',
-               rec('000')
-       )
-);
-
-marc('035','6', $id);
-
-### 040
-# za sve je isti
-# treba utvrditi toènu oznaku za ustanovu
-
-marc('040','a',
-       'HR FFZG'
-);
-
-marc('040','b',
-       'hrv'
-);
-
-marc('040','e',
-       'HR PPIAK'
-);
-
-### 041 - indikatori
-
-marc_indicators('041', 0, ' ');
-
-### 041
-
-marc_repeatable_subfield('041','a',
-       rec('101')
-);
-
-
-#_debug(3);
-
-### 044 - zemlja izdavanja
-
-marc('044','a',
-       rec('102')
-);
-
-### 080
-
-marc('080','a',
-       rec('675','a')
-);
-
-### 210 indikatori
-# marc_indicators('210', '1',' ');
-
-### 210 - ABBREVIATED TITLE 
-# pronaæi prikladan izvor podataka (nsk baza, issn baza)
-
-## iz nsk
-#if ( rec('11') ) {
-#marc('210','a',
-#      lookup(
-#              sub { rec('531','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#}
-
-### 222 indikatori
-# drugi indikator prema èlanu
-
-marc_indicators('222',' ','0');
-
-### 222 - Key title
-# pronaæi prikadan izvor podataka - nsk baza, issn baze
-
-marc('222','a',
-       rec('530')
-);
-
-# iz nsk:
-#if ( rec('11') ) {
-#marc('222','a',
-#      lookup(
-#              sub { rec('530','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#}
-
-### 245 indikatori
-# generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek). 
-# potrebna naknadna kontrola
-
-marc_indicators('245', 0, 0);
-
-if (   ( rec('200','a') =~ m/^Die /) || 
-       ( rec('200','a') =~ m/^Das /) || 
-       ( rec('200','a') =~ m/^Der /) || 
-       ( rec('200','a') =~ m/^Les /) || 
-       ( rec('200','a') =~ m/^The /) ) {
-               marc_indicators('245', 0, 4);
-
-} 
-
-if (   ( rec('200','a') =~ m/^Un /) || 
-       ( rec('200','a') =~ m/^An /) ||
-       ( rec('200','a') =~ m/^La /) ||
-       ( rec('200','a') =~ m/^Le /) ||
-       ( rec('200','a') =~ m/^Il /) ) {
-               marc_indicators('245', 0, 3);
-} 
-
-if (   ( rec('200','a') =~ m/^A /) || 
-       ( rec('200','a') =~ m/^L'/) ) {
-               marc_indicators('245', 0, 2);
-} 
-
-### 245
-
-marc_compose('245',
-       'a', suffix(
-               ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :  
-               ( rec('200','d') ) ? ' =' :
-               ( rec('200','e') ) ? ' :' :
-               ( rec('200','k') ) ? ' ;' :
-                       '', 
-                       rec('200','a'),
-       ),
-       'b', suffix(
-               ( rec('200','d') && rec('200','f') ) ? ' /' : 
-               ( rec('200','d') && rec('200','c') ) ? '.'  : 
-                       '',
-                       rec('200','d'),
-       ),
-       'b', suffix(
-               ( rec('200','e') && rec('200','f') ) ? ' /' : 
-               ( rec('200','e') && rec('200','c') ) ? '.'  : 
-                       '',
-                       rec('200','e'),
-       ),
-       'b', suffix(
-               ( rec('200','k') && rec('200','f') ) ? ' /' : 
-               ( rec('200','k') && rec('200','c') ) ? '.'  : 
-                       '',
-                       rec('200','k'),
-       ),
-       'c', suffix(
-               ( rec('200','f') && rec('200','c') ) ? '.' :
-                       '',
-                       rec('200','f'),
-       ),
-       '+', suffix('.',
-               rec('200','c'),
-       )
-);
-
-### 246 inikatori
-# prema jeziku - provjera
-
-if (   ( rec('200','a') =~ m/^Die /) || 
-       ( rec('200','a') =~ m/^Das /) || 
-       ( rec('200','a') =~ m/^The /) ) {
-               marc_indicators('246', 0, 4);
-} else {
-       marc_indicators('246', 0, 0);
-}
-
-### 246
-# povuæi podatke iz prikladnog izvora (nsk, issn)
-
-marc('246','a',
-       rec('532')
-);
-
-## iz nsk:
-#      marc('246','a',
-#              lookup(
-#                      sub { rec('532','a') },
-#                      'nsk','bbaza',
-#                      sub { rec('011','a') },
-#                      sub { rec('11') },
-#              )
-#      );
-
-#_debug(0);
-
-
-## 260 - izdavanje
-# provjeriti interpunkcije !!, u NSK nesto ne stima
-
-marc_original_order('260','210');
-
-## lookup u NSK:
-# if ( rec('11') ) {
-#      marc_repeatable_subfield('260','a',
-#              lookup(
-#                      sub { rec('210','a') },
-#                      'nsk','bbaza',
-#                      sub { rec('011','a') },
-#                      sub { rec('11') },
-#              ) 
-#      );
-#      marc_repeatable_subfield('260','b',
-#              lookup(
-#                      sub { rec('210','c') },
-#                      'nsk','bbaza',
-#                      sub { rec('011','a') },
-#                      sub { rec('11') },
-#              ) 
-#      );
-#      marc('260','c',
-#              lookup(
-#                      sub { rec('210','d') },
-#                      'nsk','bbaza',
-#                      sub { rec('011','a') },
-#                      sub { rec('11') },
-#              ) 
-#      );
-# } else {
-#      marc_original_order('260', '210');
-# }
-
-
-### 300
-
-marc('300','a',
-       suffix(
-               ( rec('215','a') && rec('215','c') )    ?  ' : ' :
-               ( rec('215','a') && rec('215','d') )    ?  ' ; ' :
-               ( rec('215','a') && rec('215','e') )    ?  ' + ' :
-                                  ' ',
-                       rec('215','a')
-       )
-);
-
-marc('300','b',
-       suffix(
-               ( rec('215','c') && rec('215','d') )    ?  ' ; ' :
-               ( rec('215','c') && rec('215','e') )    ?  ' + ' :
-                                                          ' ',
-                       rec('215','c')
-       )
-);
-
-marc('300','c',
-       suffix(
-               rec('215','e') ? ' + ' :
-                                ' ',
-                       rec('215','d')
-       )
-);
-
-marc('300','e',
-       rec('215','e')
-);
-
-### 310 - current stated publication frequency
-# potrebno ujednaèiti, koristi se i u polju 008
-
-marc('310','a',
-       rec('326')
-);
-
-### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
-
-# marc('321','a',
-#      ovo bi trebalo procitati iz NSK konvertiranih podataka
-#);
-
-marc_indicators('362', 0, ' ');
-
-### 362
-#
-if ( rec('207','a') ) {
-       marc('362','a',
-               rec('207','a'),
-       );
-} 
-
-## lookup iz nsk
-#else {
-#      if ( rec('11') ) {
-#              marc('362','a',
-#                      lookup(
-#                              sub { rec('207','a') },
-#                              'nsk','bbaza',
-#                              sub { first( rec('011','a') ) },
-#                              sub { rec('11') },
-#                      ) 
-#              );
-#      }
-#}
-
-### 490 ind.
-
-marc_indicators('490', '0', ' ');
-
-### 490
-
-marc('490','a',
-       join_with('. ',
-               join_with(' / ',
-                       join_with(' : ',
-                               join_with(' = ',
-                                       rec('225','a'),
-                                       rec('225','d')
-                               ),
-                               rec('225','e')
-                       ),
-                       join_with(' ; ',
-                               rec('225','f'),
-                               rec('225','g')
-                       ),
-               ),
-               rec('225','h')
-       )
-);
-
-marc('490','v',
-       rec('225','v')
-);
-
-marc('490','x',
-       rec('225','x')
-);
-
-if ( rec('11') ) {
-       marc('999','a',
-               lookup(
-                       sub { rec('110','a'), },
-                       'nsk','bbaza',
-                       sub { rec('011','a') }, 
-                       sub { rec('11') } 
-               )
-       );
-}
-
-
-#marc('998','a',
-#      lookup(
-#              sub { rec('H') },
-#              'ffsf','xls',
-#              sub { rec('A') },
-#              sub { $id },
-#      ),
-#);
-
-
-### 5xx
-# koje podatke povuæi iz drugih baza?
-
-marc('500','a',
-       rec('300','a'),
-);
-
-### 534 - napomena o pretisku
-
-marc('534','a',
-       rec('324')
-);
-
-## potencijalno za izvuæi iz NSK
-#if ( rec('11') ) {
-#marc('546','a',
-#      lookup(
-#              sub { rec('302','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#
-#marc('550','a',
-#      lookup(
-#              sub { rec('314','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#
-#marc('555','a',
-#      lookup(
-#              sub { rec('320','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#
-#
-## marc('562','a',
-##     lookup(
-##             sub { rec('316','a') },
-##             'nsk','bbaza',
-##             sub { rec('011','a') },
-##             sub { rec('11') },
-##     ) 
-## );
-#}
-
-### 653 indikatori
-marc_indicators('653', 0, ' ');
-
-### 653
-
-marc('653','a',
-       rec('610')
-);
-
-# marc_indicators('655', ' ', 4);
-# marc('655','a',
-#      lookup(
-#              sub { rec('608','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-# );
-
-
-#_debug(2);
-
-### 700 indikatori
-
-marc_indicators('700', 1, ' ');
-
-### 700
-
-marc('700','a',
-       rec('702','a'),
-);
-
-marc('700','a',
-       join_with(', ',
-               rec('702','c'),
-               rec('702','d')
-       )
-);
-
-#_debug(0);
-
-### 710 indikatori
-
-marc_indicators('710', '2', ' ');
-
-### 710
-marc('710','a',
-       rec('710','a')
-);
-
-### 770 indikatori
-
-marc_indicators('770', 0, ' ');
-
-### 770
-marc('770','t',
-       rec('421','a'),
-);
-
-### 772 indikatori
-marc_indicators('772', 0, ' ');
-
-### 772
-marc('772','t',
-       rec('422','a'),
-);
-
-### 773 indikatori
-
-if ( rec('225','a') ) {
-
-marc_indicators('773', 0, ' ');
-
-### 773
-## da li je bitan redoslijed potpolja?
-
-marc('773','w',
-       lookup(
-               sub { rec('000') },
-               'ffsf','peri',
-               sub { rec('200','a') },
-               sub { 
-                       regex('s/ ; //g',
-                               rec('225','a')
-                       )
-               },
-       )
-);
-
-}
-
-
-### 777 indikatori
-
-marc_indicators('777', 0, ' ');
-
-### 777
-
-marc('777','t',
-       rec('423','a'),
-);
-
-### 780 indikatori
-
-marc_indicators('780', 0, 0);
-
-### 780
-marc('780','t',
-       rec('430','a'),
-);
-
-### 785 indikatori
-
-marc_indicators('785', 0, 0);
-
-### 785
-marc('785','t',
-       rec('440','a'),
-);
-
-### 852
-
-marc('852','j',
-       join_with(' ',
-               rec('990')
-       )
-);
-
-### 876
-
-marc('876','a',
-       rec('991','a')
-);
-
-### 992
-
-marc('992','a',
-       join_with(' ; ', 
-               rec('992')
-       )
-);
-
-
-### polja za probu
-
-
-#marc('998','a',
-#      lookup(
-#              sub { rec('200','a') },
-#              'ffiz','peri',
-#              sub { rec('200','a'), },
-#              sub { rec('225','a'), }
-#      )
-#);
-
-# 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') },
-#              )
-#      )
-# );
-
-}# 200a
diff --git a/conf/normalize/ffcasopisi/csv.pl b/conf/normalize/ffcasopisi/csv.pl
deleted file mode 100644 (file)
index 60c6c1e..0000000
+++ /dev/null
@@ -1,650 +0,0 @@
-
-### LEADER
-
-## LDR 05 - n - new
-marc_leader('05','n');
-
-## LDR 06 - a - language material 
-marc_leader('06','a');
-
-## LDR 07 - Bibliographic level 
-marc_leader('07','s');
-
-## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
-marc_leader('17','u');
-
-## LDR 18 - i - isbd 
-marc_leader('18','i');
-
-### 008 - All materials
-marc_fixed('008','00', '090512');      # 00-05 - Date entered on file
-
-## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije?
-## c - Continuing resource currently published
-## d - Continuing resource ceased publication
-
-marc_fixed('008','06','|');            # 06 - Type of date/Publication status, s = single know date, | = no attempt to code
-marc_fixed('008','07','||||');
-marc_fixed('008','11','||||');
-marc_fixed('008','15','xx ');
-                                       # 18-34 - Material specific coded elements 
-                                       # 35-37 - Language
-marc_fixed('008','38','|');            # 38 - Modified record
-marc_fixed('008','39','d');            # 39 - Cataloging source
-
-### 008 - Continuing resources
-
-marc_fixed('008','18', '|');   # 18 - Frequency - ovo treba popuniti iz polja 326
-marc_fixed('008','19', '|');   # 19 - Regularity
-                               # 20 - Undefined, ontains a blank (#) or fill character (|)
-
-marc_fixed('008','21', 'p');   # 21 - Type of continuing resource
-
-                               # 22 - Form of original item - blank
-                               # 23 - Form of item
-                               # 24 - Nature of entire work
-                               # 25-27 - Nature of contents
-                               # 28 - Government publication
-                               # 29 - Conference publication
-                               # 30-32 - Undefined
-                               # 33 - Original alphabet or script of title
-                               # 34 - Entry convention
-marc_fixed('008','22', ' ');
-marc_fixed('008','23', ' ');
-marc_fixed('008','24', '|');
-marc_fixed('008','25', '|||');
-marc_fixed('008','28', ' ');
-marc_fixed('008','29', ' ');
-marc_fixed('008','33', '|');
-marc_fixed('008','34', '|');
-
-### 022
-
-marc('022','a',
-       rec('F')
-);
-
-### 035$a
-
-if ( rec('B') ) {
-       marc('035','a',
-               join_with(' ',
-                       'HR-ZaFF',
-                       join_with('',
-                               suffix('P',
-                                       lc( rec('A') )
-                               ),
-                               rec('B')
-                       ),
-               )
-       );
-}
-
-### 040
-# za sve je isti
-# treba utvrditi toènu oznaku za ustanovu
-
-marc('040','a',
-       'HR FFZG'
-);
-
-marc('040','b',
-       'hrv'
-);
-
-marc('040','c',
-       'HR-ZaFF'
-);
-
-marc('040','e',
-       'ppiak'
-);
-
-
-#_debug(3);
-
-## iz nsk
-#if ( rec('11') ) {
-#marc('210','a',
-#      lookup(
-#              sub { rec('531','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#}
-
-# ### 222 indikatori
-# # drugi indikator prema èlanu
-# 
-# marc_indicators('222',' ','0');
-# 
-# ### 222 - Key title
-# # pronaæi prikadan izvor podataka - nsk baza, issn baze
-# 
-# marc('222','a',
-#      rec('530')
-# );
-# 
-# # iz nsk:
-# #if ( rec('11') ) {
-# #marc('222','a',
-# #    lookup(
-# #            sub { rec('530','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #}
-
-### 245 indikatori
-# generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek). 
-# potrebna naknadna kontrola
-
-marc_indicators('245', 0, 0);
-
-if (   ( rec('E') =~ m/^Die /) || 
-       ( rec('E') =~ m/^Das /) || 
-       ( rec('E') =~ m/^Der /) || 
-       ( rec('E') =~ m/^Les /) || 
-       ( rec('E') =~ m/^The /) ) {
-               marc_indicators('245', 0, 4);
-
-} 
-
-if (   ( rec('E') =~ m/^Un /) || 
-       ( rec('E') =~ m/^An /) ||
-       ( rec('E') =~ m/^La /) ||
-       ( rec('E') =~ m/^Le /) ||
-       ( rec('E') =~ m/^Il /) ) {
-               marc_indicators('245', 0, 3);
-} 
-
-if (   ( rec('E') =~ m/^A /) || 
-       ( rec('E') =~ m/^L'/) ) {
-               marc_indicators('245', 0, 2);
-} 
-
-### 245
-
-if ( rec('E') =~ m/:/ ) {
-       marc('245','a',
-               suffix(' :',
-                       regex('s/(^.*):.*/$1/',
-                               rec('E')
-                       )
-               )
-       );
-       marc('245','b',
-               regex('s/^.*: (.*)/$1/',
-                       rec('E')
-               )
-       );
-} else {
-       marc('245','a',
-               rec('E')
-       );
-}
-
-# ### 246 inikatori
-# # prema jeziku - provjera
-# 
-# if (         ( rec('200','a') =~ m/^Die /) || 
-#      ( rec('200','a') =~ m/^Das /) || 
-#      ( rec('200','a') =~ m/^The /) ) {
-#              marc_indicators('246', 0, 4);
-# } else {
-#      marc_indicators('246', 0, 0);
-# }
-# 
-# ### 246
-# # povuæi podatke iz prikladnog izvora (nsk, issn)
-# 
-# marc('246','a',
-#      rec('532')
-# );
-# 
-# ## iz nsk:
-# #    marc('246','a',
-# #            lookup(
-# #                    sub { rec('532','a') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            )
-# #    );
-# 
-# #_debug(0);
-# 
-# 
-# ## 260 - izdavanje
-# # provjeriti interpunkcije !!, u NSK nesto ne stima
-# 
-# marc_original_order('260','210');
-# 
-# ## lookup u NSK:
-# # if ( rec('11') ) {
-# #    marc_repeatable_subfield('260','a',
-# #            lookup(
-# #                    sub { rec('210','a') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            ) 
-# #    );
-# #    marc_repeatable_subfield('260','b',
-# #            lookup(
-# #                    sub { rec('210','c') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            ) 
-# #    );
-# #    marc('260','c',
-# #            lookup(
-# #                    sub { rec('210','d') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            ) 
-# #    );
-# # } else {
-# #    marc_original_order('260', '210');
-# # }
-# 
-# 
-# ### 300
-# 
-# marc('300','a',
-#      suffix(
-#              ( rec('215','a') && rec('215','c') )    ?  ' : ' :
-#              ( rec('215','a') && rec('215','d') )    ?  ' ; ' :
-#              ( rec('215','a') && rec('215','e') )    ?  ' + ' :
-#                                 ' ',
-#                      rec('215','a')
-#      )
-# );
-# 
-# marc('300','b',
-#      suffix(
-#              ( rec('215','c') && rec('215','d') )    ?  ' ; ' :
-#              ( rec('215','c') && rec('215','e') )    ?  ' + ' :
-#                                                         ' ',
-#                      rec('215','c')
-#      )
-# );
-# 
-# marc('300','c',
-#      suffix(
-#              rec('215','e') ? ' + ' :
-#                               ' ',
-#                      rec('215','d')
-#      )
-# );
-# 
-# marc('300','e',
-#      rec('215','e')
-# );
-# 
-# ### 310 - current stated publication frequency
-# # potrebno ujednaèiti, koristi se i u polju 008
-# 
-# marc('310','a',
-#      rec('326')
-# );
-# 
-# ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
-# 
-# # marc('321','a',
-# #    ovo bi trebalo procitati iz NSK konvertiranih podataka
-# #);
-# 
-# marc_indicators('362', 0, ' ');
-# 
-# ### 362
-# #
-# if ( rec('207','a') ) {
-#      marc('362','a',
-#              rec('207','a'),
-#      );
-# } 
-# 
-# ## lookup iz nsk
-# #else {
-# #    if ( rec('11') ) {
-# #            marc('362','a',
-# #                    lookup(
-# #                            sub { rec('207','a') },
-# #                            'nsk','bbaza',
-# #                            sub { first( rec('011','a') ) },
-# #                            sub { rec('11') },
-# #                    ) 
-# #            );
-# #    }
-# #}
-# 
-# ### 490 ind.
-# 
-# marc_indicators('490', '0', ' ');
-# 
-# ### 490
-# 
-# marc('490','a',
-#      join_with('. ',
-#              join_with(' / ',
-#                      join_with(' : ',
-#                              join_with(' = ',
-#                                      rec('225','a'),
-#                                      rec('225','d')
-#                              ),
-#                              rec('225','e')
-#                      ),
-#                      join_with(' ; ',
-#                              rec('225','f'),
-#                              rec('225','g')
-#                      ),
-#              ),
-#              rec('225','h')
-#      )
-# );
-# 
-# marc('490','v',
-#      rec('225','v')
-# );
-# 
-# marc('490','x',
-#      rec('225','x')
-# );
-# 
-# if ( rec('11') ) {
-#      marc('999','a',
-#              lookup(
-#                      sub { rec('110','a'), },
-#                      'nsk','bbaza',
-#                      sub { rec('011','a') }, 
-#                      sub { rec('11') } 
-#              )
-#      );
-# }
-# 
-# 
-# #marc('998','a',
-# #    lookup(
-# #            sub { rec('H') },
-# #            'ffsf','xls',
-# #            sub { rec('A') },
-# #            sub { $id },
-# #    ),
-# #);
-
-
-### 500
-# lookup
-# 
-# 
-# marc('500','a',
-#      rec(''),
-# );
-#  
-# 
-# ### 534 - napomena o pretisku
-# 
-# marc('534','a',
-#      rec('324')
-# );
-# 
-# ## potencijalno za izvuæi iz NSK
-# #if ( rec('11') ) {
-# #marc('546','a',
-# #    lookup(
-# #            sub { rec('302','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #
-# #marc('550','a',
-# #    lookup(
-# #            sub { rec('314','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #
-# #marc('555','a',
-# #    lookup(
-# #            sub { rec('320','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #
-# #
-# ## marc('562','a',
-# ##   lookup(
-# ##           sub { rec('316','a') },
-# ##           'nsk','bbaza',
-# ##           sub { rec('011','a') },
-# ##           sub { rec('11') },
-# ##   ) 
-# ## );
-# #}
-
-
-if ( rec('B') ) {
-       marc('996','a',
-               lc( rec('A') )
-       );
-
-       marc('996','b',
-               'peri'
-       );
-
-       marc('996','c',
-               rec('B')
-       );
-}
-
-# 
-# ### 653 indikatori
-# marc_indicators('653', 0, ' ');
-# 
-# ### 653
-# 
-# marc('653','a',
-#      rec('610')
-# );
-# 
-# # marc_indicators('655', ' ', 4);
-# # marc('655','a',
-# #    lookup(
-# #            sub { rec('608','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# # );
-# 
-# 
-# #_debug(2);
-# 
-# ### 700 indikatori
-# 
-# marc_indicators('700', 1, ' ');
-# 
-# ### 700
-# 
-# marc('700','a',
-#      rec('702','a'),
-# );
-# 
-# marc('700','a',
-#      join_with(', ',
-#              rec('702','c'),
-#              rec('702','d')
-#      )
-# );
-# 
-#  
-# #_debug(0);
-# 
-# ### 710 indikatori
-# 
-# marc_indicators('710', '2', ' ');
-# 
-# ### 710
-# marc('710','a',
-#      rec('710','a')
-# );
-# 
-# ### 770 indikatori
-# 
-# marc_indicators('770', 0, ' ');
-# 
-# ### 770
-# marc('770','t',
-#      rec('421','a'),
-# );
-# 
-# ### 772 indikatori
-# marc_indicators('772', 0, ' ');
-# 
-# ### 772
-# marc('772','t',
-#      rec('422','a'),
-# );
-# 
-# ### 773 indikatori
-# 
-# if ( rec('225','a') ) {
-# 
-# marc_indicators('773', 0, ' ');
-# 
-# ### 773
-# ## da li je bitan redoslijed potpolja?
-# 
-# marc('773','w',
-#      lookup(
-#              sub { rec('000') },
-#              'ffsf','peri',
-#              sub { rec('200','a') },
-#              sub { 
-#                      regex('s/ ; //g',
-#                              rec('225','a')
-#                      )
-#              },
-#      )
-# );
-# 
-# }
-# 
-# 
-# ### 777 indikatori
-# 
-# marc_indicators('777', 0, ' ');
-# 
-# ### 777
-# 
-# marc('777','t',
-#      rec('423','a'),
-# );
-# 
-# ### 780 indikatori
-# 
-# marc_indicators('780', 0, 0);
-# 
-# ### 780
-# marc('780','t',
-#      rec('430','a'),
-# );
-# 
-# ### 785 indikatori
-# 
-# marc_indicators('785', 0, 0);
-# 
-# ### 785
-# marc('785','t',
-#      rec('440','a'),
-# );
-# 
-# ### 852
-# 
-# marc('852','j',
-#      join_with(' ',
-#              rec('990')
-#      )
-# );
-# 
-# ### 876
-# 
-# marc('876','a',
-#      rec('991','a')
-# );
-
-marc('942','d',
-       rec('C')
-);
-
-
-
-# 
-# ### 992
-# 
-# marc('992','a',
-#      join_with(' ; ', 
-#              rec('992')
-#      )
-# );
-# 
-# 
-### polja za probu
-
-
-#marc('998','a',
-#      lookup(
-#              sub { rec('200','a') },
-#              'ffiz','peri',
-#              sub { rec('200','a'), },
-#              sub { rec('225','a'), }
-#      )
-#);
-
-# 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') },
-#              )
-#      )
-# );
-
diff --git a/conf/normalize/ffcasopisi/signature_zs.pl b/conf/normalize/ffcasopisi/signature_zs.pl
deleted file mode 100644 (file)
index 60c6c1e..0000000
+++ /dev/null
@@ -1,650 +0,0 @@
-
-### LEADER
-
-## LDR 05 - n - new
-marc_leader('05','n');
-
-## LDR 06 - a - language material 
-marc_leader('06','a');
-
-## LDR 07 - Bibliographic level 
-marc_leader('07','s');
-
-## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
-marc_leader('17','u');
-
-## LDR 18 - i - isbd 
-marc_leader('18','i');
-
-### 008 - All materials
-marc_fixed('008','00', '090512');      # 00-05 - Date entered on file
-
-## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije?
-## c - Continuing resource currently published
-## d - Continuing resource ceased publication
-
-marc_fixed('008','06','|');            # 06 - Type of date/Publication status, s = single know date, | = no attempt to code
-marc_fixed('008','07','||||');
-marc_fixed('008','11','||||');
-marc_fixed('008','15','xx ');
-                                       # 18-34 - Material specific coded elements 
-                                       # 35-37 - Language
-marc_fixed('008','38','|');            # 38 - Modified record
-marc_fixed('008','39','d');            # 39 - Cataloging source
-
-### 008 - Continuing resources
-
-marc_fixed('008','18', '|');   # 18 - Frequency - ovo treba popuniti iz polja 326
-marc_fixed('008','19', '|');   # 19 - Regularity
-                               # 20 - Undefined, ontains a blank (#) or fill character (|)
-
-marc_fixed('008','21', 'p');   # 21 - Type of continuing resource
-
-                               # 22 - Form of original item - blank
-                               # 23 - Form of item
-                               # 24 - Nature of entire work
-                               # 25-27 - Nature of contents
-                               # 28 - Government publication
-                               # 29 - Conference publication
-                               # 30-32 - Undefined
-                               # 33 - Original alphabet or script of title
-                               # 34 - Entry convention
-marc_fixed('008','22', ' ');
-marc_fixed('008','23', ' ');
-marc_fixed('008','24', '|');
-marc_fixed('008','25', '|||');
-marc_fixed('008','28', ' ');
-marc_fixed('008','29', ' ');
-marc_fixed('008','33', '|');
-marc_fixed('008','34', '|');
-
-### 022
-
-marc('022','a',
-       rec('F')
-);
-
-### 035$a
-
-if ( rec('B') ) {
-       marc('035','a',
-               join_with(' ',
-                       'HR-ZaFF',
-                       join_with('',
-                               suffix('P',
-                                       lc( rec('A') )
-                               ),
-                               rec('B')
-                       ),
-               )
-       );
-}
-
-### 040
-# za sve je isti
-# treba utvrditi toènu oznaku za ustanovu
-
-marc('040','a',
-       'HR FFZG'
-);
-
-marc('040','b',
-       'hrv'
-);
-
-marc('040','c',
-       'HR-ZaFF'
-);
-
-marc('040','e',
-       'ppiak'
-);
-
-
-#_debug(3);
-
-## iz nsk
-#if ( rec('11') ) {
-#marc('210','a',
-#      lookup(
-#              sub { rec('531','a') },
-#              'nsk','bbaza',
-#              sub { rec('011','a') },
-#              sub { rec('11') },
-#      ) 
-#);
-#}
-
-# ### 222 indikatori
-# # drugi indikator prema èlanu
-# 
-# marc_indicators('222',' ','0');
-# 
-# ### 222 - Key title
-# # pronaæi prikadan izvor podataka - nsk baza, issn baze
-# 
-# marc('222','a',
-#      rec('530')
-# );
-# 
-# # iz nsk:
-# #if ( rec('11') ) {
-# #marc('222','a',
-# #    lookup(
-# #            sub { rec('530','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #}
-
-### 245 indikatori
-# generiraju se prema èlanu, trebalo bi mo¾da i prema jeziku (jezika nema uvijek). 
-# potrebna naknadna kontrola
-
-marc_indicators('245', 0, 0);
-
-if (   ( rec('E') =~ m/^Die /) || 
-       ( rec('E') =~ m/^Das /) || 
-       ( rec('E') =~ m/^Der /) || 
-       ( rec('E') =~ m/^Les /) || 
-       ( rec('E') =~ m/^The /) ) {
-               marc_indicators('245', 0, 4);
-
-} 
-
-if (   ( rec('E') =~ m/^Un /) || 
-       ( rec('E') =~ m/^An /) ||
-       ( rec('E') =~ m/^La /) ||
-       ( rec('E') =~ m/^Le /) ||
-       ( rec('E') =~ m/^Il /) ) {
-               marc_indicators('245', 0, 3);
-} 
-
-if (   ( rec('E') =~ m/^A /) || 
-       ( rec('E') =~ m/^L'/) ) {
-               marc_indicators('245', 0, 2);
-} 
-
-### 245
-
-if ( rec('E') =~ m/:/ ) {
-       marc('245','a',
-               suffix(' :',
-                       regex('s/(^.*):.*/$1/',
-                               rec('E')
-                       )
-               )
-       );
-       marc('245','b',
-               regex('s/^.*: (.*)/$1/',
-                       rec('E')
-               )
-       );
-} else {
-       marc('245','a',
-               rec('E')
-       );
-}
-
-# ### 246 inikatori
-# # prema jeziku - provjera
-# 
-# if (         ( rec('200','a') =~ m/^Die /) || 
-#      ( rec('200','a') =~ m/^Das /) || 
-#      ( rec('200','a') =~ m/^The /) ) {
-#              marc_indicators('246', 0, 4);
-# } else {
-#      marc_indicators('246', 0, 0);
-# }
-# 
-# ### 246
-# # povuæi podatke iz prikladnog izvora (nsk, issn)
-# 
-# marc('246','a',
-#      rec('532')
-# );
-# 
-# ## iz nsk:
-# #    marc('246','a',
-# #            lookup(
-# #                    sub { rec('532','a') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            )
-# #    );
-# 
-# #_debug(0);
-# 
-# 
-# ## 260 - izdavanje
-# # provjeriti interpunkcije !!, u NSK nesto ne stima
-# 
-# marc_original_order('260','210');
-# 
-# ## lookup u NSK:
-# # if ( rec('11') ) {
-# #    marc_repeatable_subfield('260','a',
-# #            lookup(
-# #                    sub { rec('210','a') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            ) 
-# #    );
-# #    marc_repeatable_subfield('260','b',
-# #            lookup(
-# #                    sub { rec('210','c') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            ) 
-# #    );
-# #    marc('260','c',
-# #            lookup(
-# #                    sub { rec('210','d') },
-# #                    'nsk','bbaza',
-# #                    sub { rec('011','a') },
-# #                    sub { rec('11') },
-# #            ) 
-# #    );
-# # } else {
-# #    marc_original_order('260', '210');
-# # }
-# 
-# 
-# ### 300
-# 
-# marc('300','a',
-#      suffix(
-#              ( rec('215','a') && rec('215','c') )    ?  ' : ' :
-#              ( rec('215','a') && rec('215','d') )    ?  ' ; ' :
-#              ( rec('215','a') && rec('215','e') )    ?  ' + ' :
-#                                 ' ',
-#                      rec('215','a')
-#      )
-# );
-# 
-# marc('300','b',
-#      suffix(
-#              ( rec('215','c') && rec('215','d') )    ?  ' ; ' :
-#              ( rec('215','c') && rec('215','e') )    ?  ' + ' :
-#                                                         ' ',
-#                      rec('215','c')
-#      )
-# );
-# 
-# marc('300','c',
-#      suffix(
-#              rec('215','e') ? ' + ' :
-#                               ' ',
-#                      rec('215','d')
-#      )
-# );
-# 
-# marc('300','e',
-#      rec('215','e')
-# );
-# 
-# ### 310 - current stated publication frequency
-# # potrebno ujednaèiti, koristi se i u polju 008
-# 
-# marc('310','a',
-#      rec('326')
-# );
-# 
-# ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310
-# 
-# # marc('321','a',
-# #    ovo bi trebalo procitati iz NSK konvertiranih podataka
-# #);
-# 
-# marc_indicators('362', 0, ' ');
-# 
-# ### 362
-# #
-# if ( rec('207','a') ) {
-#      marc('362','a',
-#              rec('207','a'),
-#      );
-# } 
-# 
-# ## lookup iz nsk
-# #else {
-# #    if ( rec('11') ) {
-# #            marc('362','a',
-# #                    lookup(
-# #                            sub { rec('207','a') },
-# #                            'nsk','bbaza',
-# #                            sub { first( rec('011','a') ) },
-# #                            sub { rec('11') },
-# #                    ) 
-# #            );
-# #    }
-# #}
-# 
-# ### 490 ind.
-# 
-# marc_indicators('490', '0', ' ');
-# 
-# ### 490
-# 
-# marc('490','a',
-#      join_with('. ',
-#              join_with(' / ',
-#                      join_with(' : ',
-#                              join_with(' = ',
-#                                      rec('225','a'),
-#                                      rec('225','d')
-#                              ),
-#                              rec('225','e')
-#                      ),
-#                      join_with(' ; ',
-#                              rec('225','f'),
-#                              rec('225','g')
-#                      ),
-#              ),
-#              rec('225','h')
-#      )
-# );
-# 
-# marc('490','v',
-#      rec('225','v')
-# );
-# 
-# marc('490','x',
-#      rec('225','x')
-# );
-# 
-# if ( rec('11') ) {
-#      marc('999','a',
-#              lookup(
-#                      sub { rec('110','a'), },
-#                      'nsk','bbaza',
-#                      sub { rec('011','a') }, 
-#                      sub { rec('11') } 
-#              )
-#      );
-# }
-# 
-# 
-# #marc('998','a',
-# #    lookup(
-# #            sub { rec('H') },
-# #            'ffsf','xls',
-# #            sub { rec('A') },
-# #            sub { $id },
-# #    ),
-# #);
-
-
-### 500
-# lookup
-# 
-# 
-# marc('500','a',
-#      rec(''),
-# );
-#  
-# 
-# ### 534 - napomena o pretisku
-# 
-# marc('534','a',
-#      rec('324')
-# );
-# 
-# ## potencijalno za izvuæi iz NSK
-# #if ( rec('11') ) {
-# #marc('546','a',
-# #    lookup(
-# #            sub { rec('302','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #
-# #marc('550','a',
-# #    lookup(
-# #            sub { rec('314','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #
-# #marc('555','a',
-# #    lookup(
-# #            sub { rec('320','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# #);
-# #
-# #
-# ## marc('562','a',
-# ##   lookup(
-# ##           sub { rec('316','a') },
-# ##           'nsk','bbaza',
-# ##           sub { rec('011','a') },
-# ##           sub { rec('11') },
-# ##   ) 
-# ## );
-# #}
-
-
-if ( rec('B') ) {
-       marc('996','a',
-               lc( rec('A') )
-       );
-
-       marc('996','b',
-               'peri'
-       );
-
-       marc('996','c',
-               rec('B')
-       );
-}
-
-# 
-# ### 653 indikatori
-# marc_indicators('653', 0, ' ');
-# 
-# ### 653
-# 
-# marc('653','a',
-#      rec('610')
-# );
-# 
-# # marc_indicators('655', ' ', 4);
-# # marc('655','a',
-# #    lookup(
-# #            sub { rec('608','a') },
-# #            'nsk','bbaza',
-# #            sub { rec('011','a') },
-# #            sub { rec('11') },
-# #    ) 
-# # );
-# 
-# 
-# #_debug(2);
-# 
-# ### 700 indikatori
-# 
-# marc_indicators('700', 1, ' ');
-# 
-# ### 700
-# 
-# marc('700','a',
-#      rec('702','a'),
-# );
-# 
-# marc('700','a',
-#      join_with(', ',
-#              rec('702','c'),
-#              rec('702','d')
-#      )
-# );
-# 
-#  
-# #_debug(0);
-# 
-# ### 710 indikatori
-# 
-# marc_indicators('710', '2', ' ');
-# 
-# ### 710
-# marc('710','a',
-#      rec('710','a')
-# );
-# 
-# ### 770 indikatori
-# 
-# marc_indicators('770', 0, ' ');
-# 
-# ### 770
-# marc('770','t',
-#      rec('421','a'),
-# );
-# 
-# ### 772 indikatori
-# marc_indicators('772', 0, ' ');
-# 
-# ### 772
-# marc('772','t',
-#      rec('422','a'),
-# );
-# 
-# ### 773 indikatori
-# 
-# if ( rec('225','a') ) {
-# 
-# marc_indicators('773', 0, ' ');
-# 
-# ### 773
-# ## da li je bitan redoslijed potpolja?
-# 
-# marc('773','w',
-#      lookup(
-#              sub { rec('000') },
-#              'ffsf','peri',
-#              sub { rec('200','a') },
-#              sub { 
-#                      regex('s/ ; //g',
-#                              rec('225','a')
-#                      )
-#              },
-#      )
-# );
-# 
-# }
-# 
-# 
-# ### 777 indikatori
-# 
-# marc_indicators('777', 0, ' ');
-# 
-# ### 777
-# 
-# marc('777','t',
-#      rec('423','a'),
-# );
-# 
-# ### 780 indikatori
-# 
-# marc_indicators('780', 0, 0);
-# 
-# ### 780
-# marc('780','t',
-#      rec('430','a'),
-# );
-# 
-# ### 785 indikatori
-# 
-# marc_indicators('785', 0, 0);
-# 
-# ### 785
-# marc('785','t',
-#      rec('440','a'),
-# );
-# 
-# ### 852
-# 
-# marc('852','j',
-#      join_with(' ',
-#              rec('990')
-#      )
-# );
-# 
-# ### 876
-# 
-# marc('876','a',
-#      rec('991','a')
-# );
-
-marc('942','d',
-       rec('C')
-);
-
-
-
-# 
-# ### 992
-# 
-# marc('992','a',
-#      join_with(' ; ', 
-#              rec('992')
-#      )
-# );
-# 
-# 
-### polja za probu
-
-
-#marc('998','a',
-#      lookup(
-#              sub { rec('200','a') },
-#              'ffiz','peri',
-#              sub { rec('200','a'), },
-#              sub { rec('225','a'), }
-#      )
-#);
-
-# 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') },
-#              )
-#      )
-# );
-