marc_leader('07','m');
marc_leader('18','i');
+# pojasniti upotrebu 19 lidera!
+
if ( rec('230') ) {
marc_leader('19','r');
}
### 001 - Voyager
+### Pojasniti upotrebu polja 006
+
### 007
+### pojasniti upotrebu polja
marc_fixed('007',00,'ta');
#)
#);
-## FIXME treba velika slova pretvoriti u mala
marc_fixed('008','35',
first( lc(rec('101')) )
);
+### 020
+# postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
+
+marc('020','a',
+ regex('s/ ISBN //g',
+ rec('10')
+ )
+);
+
### 035$6
# Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
-# marc 035a - System Number - NSK zapisuje Voyagerov ID (001) - kako?
+# marc 035a - System Number - NSK zapisuje Voyagerov ID (001)
# kako mora izgledati polje 035$9? mo¾e li sadr¾avati slova i razmake?
-
marc('035','6',
join_with('',
# config('input normalize path'),
# config('name'),
config(),
- 'L',
+ ' L',
# config('input name'),
# id(),
# rec('994','a'),
);
-### 020
-# postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
-
-marc('020','a',
- regex('s/ ISBN //g',
- rec('10')
- )
-);
-
### 040
# za sve je isti
+# treba utvrditi toènu oznaku za ustanovu
marc('040','a',
'HR FFZG'
#if ( rec('675') =~ m/\d=\d/ ) {
-if ( grep( m/Prijevod/, rec('300')) || grep( m/Izv. stv. nasl./, rec('300') ) ) {
+if ( grep( m/prijevod/i, rec('300')) || grep( m/prevedeno/i, rec('300')) || grep( m/izv.*stv.*nasl/i, rec('300')) || grep( m/izvornik/i, rec('300')) || grep( m/preve/i, rec('200','f')) || grep( m/preve/i, rec('200','g')) || grep( m/prijevod/i, rec('200','f')) || grep( m/prijevod/i, rec('200','g')) ) {
marc_indicators('041', 1, ' ');
} else {
marc_indicators('041', 0, ' ');
);
#_debug(0);
+### 044
+
### 080
# 675 podpolja b, c, d ... - ¹to s njima ???
rec('675','a')
);
+marc('080','a',
+ rec('675','b')
+);
+
+marc('080','a',
+ rec('675','c')
+);
+
+marc('080','a',
+ rec('675','d')
+);
+
### 084 - other classification (R)
# NSK ga koristi za struènu oznaku NSK iz polja 681
# provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
# ovo vrijedi za FFSFB
-if ( rec('710','f') ) {
+if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
marc_indicators('111', 2, ' ');
marc_compose('111',
- 'a', rec('710','a'),
+ 'a', suffix(
+ rec('710','b') ? '.' :
+ '',
+ rec('710','a'),
+ ),
'e', rec('710','b'),
- 'n', rec('710','d'),
- 'd', rec('710','f'),
- 'c', rec('710','e'),
+ 'n', prefix(
+ rec('710','d') ? '(' :
+ '',
+ rec('710','d')
+ ),
+ 'd', prefix(
+ ( ! rec('710','d') ) ? '(' :
+ ( ! rec('710','e') ) ? '(' :
+ '; ',
+ rec('710','f'),
+ ),
+ 'c', prefix(
+ ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
+ ( ! rec('710','d') && ! rec('710','f') ) ? '(' :
+ '',
+ rec('710','e'),
+ ),
+ '+',')',
);
} else {
marc_indicators('110', 2, ' ');
+
marc('110','a',
rec('710','a')
);
+marc('110','b',
+ rec('710','b')
+);
+if ( rec('710','c') ) {
marc('110','c',
- rec('710','c')
+ surround('(', ')', rec('710','c'))
);
+}
}
}
### 245
-# redoslijed polja va¾an
# podpolja i interpunkcije pripremljeni u modify
#_debug(3);
marc_compose('245',
'a', suffix(
- ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :
- ( rec('200','p') && rec('200','c') ) ? ' : ' :
+ ( ! ( 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','p') && rec('200','f') ) ? ' / ' :
- ( rec('200','p') && rec('200','c') ) ? '. ' :
+ ( 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','p'),
+ rec('200','k'),
),
'c', suffix(
( rec('200','f') && rec('200','c') ) ? '. ' :
'+', rec('200','c'),
);
+#marc_compose('245',
+# 'a', suffix(
+# ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :
+# ( ! rec('200','p') && rec('200','c') ) ? ' : ' :
+# '',
+# rec('200','a'),
+# ),
+# 'b', suffix(
+# ( rec('200','p') && rec('200','f') ) ? ' / ' :
+# ( rec('200','p') && rec('200','c') ) ? '. ' :
+# '',
+# rec('200','p'),
+# ),
+# 'c', suffix(
+# ( rec('200','f') && rec('200','c') ) ? '. ' :
+# '',
+# rec('200','f'),
+# ),
+# '+', rec('200','c'),
+#);
+
#_debug(0);
#marc_compose('245',
### 250
+## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
marc_compose('250',
'a',suffix(
'b', rec('205','f'),
);
-#marc('250','b',
-# rec('205','f')
-#);
### 260
### 300
-# provjeriti interpunkcije !!
+# urediti interpunkcije za sve kombinacije
marc('300','a',
suffix(
rec('215','e')
);
+### 362
+# brojèani podaci za nakladnièku cjelinu
### 440
# 2.ind. prema jeziku i èlanu
#_debug(3);
-marc('440',
- 'a', suffix( rec('225','f'),
- rec('225','a'),
- ),
-);
+marc_original_order('440','225');
-# join_with(' / ',
-# join_with(' ',
+
+#marc_compose('440',
+# 'a', suffix(
+# rec('225','i') ? '. ' :
+# '',
# rec('225','a'),
-# rec('225','p'),
-# ),
-# rec('225','f')
# ),
+# 'p', suffix(
+# ( ! rec('225','x') && rec('225','i') && rec('225','v') ) ? ' ; ' :
+# ( rec('225','i') && rec('225','x') ) ? ', ' :
+# '',
+# rec('225','i'),
+# ),
+# 'x', suffix(
+# ( rec('225','x') && rec('225','v') ) ? ' ; ' :
+# '',
+# rec('225','x'),
+# ),
+# 'v', rec('225','v'),
+#);
-#_debug(0);
-
-marc('440','n',
- rec('225','h')
-);
-
-marc('440','p',
- rec('225','i')
-);
+## ovo radi samo kad 225 nije ponovljivo
-marc('440','v',
- rec('225','v'),
-);
+#if (
+# count( lookup(
+# sub { 1 },
+# 'ffps','libri',
+# sub { rec('225','a') }
+# ) ) > 1
+#) {
-marc('440','x',
- rec('225','x')
-);
+#marc_compose('440',
+# 'a', suffix(
+# ( rec('225','x') ) ? ', ' :
+# ( rec('225','v') || rec('225','w') ) ? ' ; ' :
+# ( rec('225','h') || rec('225','i') ) ? '. ' :
+# '',
+# join_with(' / ',
+# join_with(' : ',
+# join_with(' = ',
+# rec('225','a'),
+# rec('225','d'),
+# ),
+# rec('225','e'),
+# ),
+# rec('225','f'),
+# ),
+# ),
+# 'x', suffix(
+# ( rec('225','x') && rec('225','v') ) ? ' ; ' :
+# ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '. ' :
+# '',
+# rec('225','x'),
+# ),
+# 'v', suffix(
+# ( rec('225','v') && rec('225','h') || rec('225','i') ) ? '. ' :
+# '',
+# join_with('; ',
+# rec('225','v'),
+# )
+# ),
+# 'n', suffix(
+# ( rec('225','h') && rec('225','p') || rec('225','y') ) ? ', ' :
+# '',
+# rec('225','h'),
+# ),
+# 'p', suffix(
+# ( rec('225','i') && rec('225','x') ) ? ', ' :
+# ( rec('225','i') && rec('225','v') ) ? ' ; ' :
+# '',
+# rec('225','i'),
+# ),
+# 'x', suffix(
+# ( rec('225','y') && rec('225','v') ) ? ' ; ' :
+# '',
+# rec('225','y'),
+# ),
+# 'v', rec('225','w'),
+# );
+#
+# marc_compose('440',
+# 'a', suffix(
+# rec('225','k') ? ' ; ' :
+# '',
+# join_with(' / ',
+# rec('225','b'),
+# rec('225','j')
+# ),
+# ),
+# 'v',
+# rec('225','k'),
+# );
+#
+#
+# marc_compose('440',
+# 'a', suffix(
+# rec('225','s') ? ' ; ' :
+# '',
+# join_with(' / ',
+# rec('225','c'),
+# rec('225','r')
+# ),
+# ),
+# 'v',
+# rec('225','s'),
+# );
+#}
-### 490
+#if ( rec('225','i') ) {
+# marc('440','p',
+# prefix('. ',
+# rec('225','i')
+# ),
+# );
+#}
#
-#marc('490','a',
-# rec('225','a')
-#);
+#if ( rec('225','v') ) {
+# marc('440','v',
+# prefix(' ; ',
+# rec('225','v'),
+# ),
+# );
+#}
+
+#_debug(0);
### 50x
marc('700','a',
- rec('702','a'),
+ join_with(', ',
+ rec('702', 'a'),
+ rec('702', 'b')
+ )
);
### generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
if (
- rec('225','a') # da li je nakladnicka cjelina?
+ rec('225','a') # da li je nakladnièka cjelina?
) {
my $series_key =
warn "nije novi";
} else {
-
$series = join_with('',
config(),
'LS',
set( $series_key => $series );
-}
-}
+} # $series
+} # nakladnièka cjelina
my $series_key = join_with('',
rec('225','a'),
$series = join_with('',
config(),
- 'LS',
+ ' LS',
rec('000')
);
-#set( $series_key => $series );
+set( $series_key => $series );
# Leader
marc_leader('05','n');
marc_leader('06','a');
marc_leader('07','s');
+marc_leader('17','7');
marc_leader('18','i');
## 008
marc_compose('245',
'a', suffix(
- ( ! rec('225','p') && ( rec('225','f') || rec('225','c') ) ) ? ' / ' :
- ( rec('225','p') && rec('225','c') ) ? ' : ' :
+ ( ! ( rec('225','d') || rec('225','e') ) ) && ( rec('225','f') ) ? ' / ' :
+ ( rec('225','d') ) ? ' = ' :
+ ( rec('225','e') ) ? ' : ' :
+ ( rec('225','i') ) ? '. ' :
'',
- first(rec('225','a')),
+ rec('225','a'),
),
'b', suffix(
- ( rec('225','p') && rec('225','f') ) ? ' / ' :
- ( rec('225','p') && rec('225','c') ) ? '. ' :
+ ( rec('225','d') && rec('225','f') ) ? ' / ' :
'',
- rec('225','p'),
+ rec('225','d'),
+ ),
+ 'b', suffix(
+ ( rec('225','e') && rec('225','f') ) ? ' / ' :
+ '',
+ rec('225','e'),
),
'c', suffix(
- ( rec('225','f') && rec('225','c') ) ? '. ' :
+ ( rec('225','f') && rec('225','i') ) ? '. ' :
'',
rec('225','f'),
),
+ 'p', rec('225','i'),
);
+#marc_compose('245',
+# 'a', suffix(
+# ( ! rec('225','p') && ( rec('225','f') || rec('225','c') ) ) ? ' / ' :
+# ( rec('225','p') && rec('225','c') ) ? ' : ' :
+# '',
+# first(rec('225','a')),
+# ),
+# 'b', suffix(
+# ( rec('225','p') && rec('225','f') ) ? ' / ' :
+# ( rec('225','p') && rec('225','c') ) ? '. ' :
+# '',
+# rec('225','p'),
+# ),
+# 'c', suffix(
+# ( rec('225','f') && rec('225','c') ) ? '. ' :
+# '',
+# rec('225','f'),
+# ),
+#);
+
marc_original_order('260', '210');
marc_remove('260','c');
#_debug(0);
-marc_duplicate();
-marc_remove('*');
+#marc_duplicate();
+#marc_remove('*');
} # $series
-}
+} # nakladnièka cjelina