Konverzija podataka
Jednostavna detekcija krivih podataka u poljima: Revision 1

Najprije treba napraviti dump svih podataka. Za to postoji skripta dump_libri.sh u kojoj su naredbe za dump podataka za svaku pojedinačnu knjižnicu, npr. za anglistiku:

dump_isisdb.pl /backup/isis_backup/A105-1/isisdata/latest/LIBRI/LIBRI > /data/isis_data/an/dump.fflibri

na taj smo dobili tekstualne datoteke koje možemo dalje procesirati.

Za dobivanje popisa svih datuma unosa dobivenih u svim bazama, koristi se ova komanda:

grep ^994.*^c /data/isis_data/*/dump.fflibri | sed -e 's/.*^c\(.*\)/\1/g' | sort -nr | uniq -c > datum_unosa.txt

Iz dobivene datoteke izbrišemo sve slučajeve koji su dobri, a ostavimo krive i snimimo to u tablicu krivi_datum_unosa.xls

U conf/mjesec.yml dodamo ove linije:

za tablicu s greskama:

  datumi:
    name: 'Nevaljali datumi'
    input:
      - name: tablica                                                                                                          
        type: excel
        path: '/data/isis_data/greske/datum_unosa.xls'
        encoding: 'windows-1250'
        normalize:
          - path: 'conf/normalize/common.pl'

i za svaku pojedinačnu bazu:

  ffiz:
    name: 'Informacijske znanosti, Filozofski fakultet u Zagrebu'
    input:
      - name: libri
        type: isis
        path: '/backup/isis_backup/A129-2/isisdata/latest/LIBRI/LIBRI'
        encoding: 'cp852'
        normalize:
          - path: 'conf/normalize/report-sorted-txt.pl'
    output:
      - module: 'Sorted'
        path: 'out/report/mfn/iz/'

u normalizacijskoj datoteci treba stajati ovaj kod:

my $datum =
        lookup(
                sub { 1 },
                'datumi','tablica',
                sub { rec('A') },
                sub { rec('994','c') } 
        );
    
if ( $datum ) {
        sorted('mfn s krivim datumom',
                join_with(' - ',
                        prefix('MFN ',
                                rec('000'),
                        ),
                        rec('994','c'),                                                                     
                )                                                                                                              
        );
}