"Orpopoikasten" listaaminen

Alla olevalla TAMKin Hannu Hahdon käyttämällä menetelmällä voidaan luoda listaus tietokannassa olevista osakohdetietueista, jotka eivät kiinnity mihinkään emotietueeseen.

  1. Ota käyttöön Savonian Jouni Jääskeläisen report_subfield-skripti. Sen voi kopioida esimerkiksi TAMKin hakemistosta Armaksella /m1/groupcron/tamk/scripts/report_subfield.pl. Skriptillä voi tarkistaa kaikki jonkin yksittäisen osakentän esiintymät bib- ja holdings-tietueissa.
  2. Tee skriptillä listaus tietokannan kaikista 773$w- ja 035$9-osakentistä. Tulostustiedostoon tulee listaus tietueista ja kentistä siten, että ensimmäisessä sarakkeessa on bib-id ja toisessa osakenttien sisältö. Sarakkeita erottaa tabulaattori tähän tapaan:

     

    17012   2piramk133127
    29623   2piramk155248
    41418   PIRA011504
    41419   PIRA011504
  3. Poista bib-id-sarake. Se onnistuu esimerkiksi awk:lla käskyllä:

    awk '{print $2;}' bib-773w.txt > bib-773w_eiIDt.txt
    Lopputuloksena on listaus 773$w- ja 035$9-osakenttien sisällöstä tyyliin:

    2piramk133127
    2piramk155248
    PIRA011504
    PIRA011504
  4. Järjestä tulokset aakkosnumeeriseen järjestykseen:


    sort –n bib-773w_eiIDt.txt > bib-773w_eiIDt.txt.sorted
  5. Poista tulostiedostosta tuplat:

     

    uniq bib-773w_eiIDt.txt.sorted > bib-773w_eiIDt.txt.sorted.uniq
  6. Lopputuloksena on kaksi tiedostoa, joissa on vain 773$w-osakenttien ja vastaavasti 035$9-osakenttien uniikit arvot, kummassakin tiedostossa vain yhden kerran. Yhdistä  tiedostot cat-komennolla uudeksi tiedostoksi.
  7. Jätä komennolla uniq –d tiedostosta jäljelle vain ne rivit, jotka esiintyivät siinä kahteen kertaan, siis sama osakentän sisältö on sekä jossain 773$w-osakentässä että jossain 035$9-osakentässä.
  8. Yhdistä tämä tiedosto cat-komennolla siihen tiedostoon, jossa on tuplat poistettuina listaus 773$w-osakentän arvoista.
  9. Poista uniq –u tiedostosta kaikki muut rivit paitsi ne, jotka esiintyvät vain yhteen kertaan, ts. rivi esiintyy jossain 773$w-osakentässä mutta ei missään 035$9-osakentässä.

 


SQL:n avulla vastaava listaus voidaan tuottaa seuraavalla kyselyllä, jota ARSCAssa on käytetty:

select bib_id from bib_index bi, 
(select comp.bib_id as comp_bib_id 
from bib_index comp, bib_index host 
where 
comp.normal_heading = host.normal_heading and 
comp.index_code = '773W' and 
host.index_code in ('001A', '0359')) linked_comps 
where 
bi.bib_id = linked_comps.comp_bib_id (+) and 
bi.index_code = '773W' and 
linked_comps.comp_bib_id is null;

 

Accessissa asia hoituu näin:

1. Tallenna tämä kysely nimellä "linked_comps":

SELECT BIB_INDEX.BIB_ID AS comp_bib_id
FROM BIB_INDEX AS BIB_INDEX_1 INNER JOIN BIB_INDEX ON BIB_INDEX_1.NORMAL_HEADING = BIB_INDEX.NORMAL_HEADING
WHERE (((BIB_INDEX.INDEX_CODE)="773W") AND ((BIB_INDEX_1.INDEX_CODE)="001A" Or (BIB_INDEX_1.INDEX_CODE)="0359"));

2. Aja tämä kysely:

SELECT BIB_INDEX.BIB_ID
FROM BIB_INDEX LEFT JOIN linked_comps ON BIB_INDEX.BIB_ID = linked_comps.comp_bib_id
WHERE (((BIB_INDEX.INDEX_CODE)="773W") AND ((linked_comps.comp_bib_id) Is Null));

Puuttuvien kenttien tarkistaminen

Tietueista puuttuvien (osa)kenttien (esim. 245$a, 300, 336/337) selvittäminen onnistuu kätevästi report_subfield-skriptillä (ks. yllä). Esimerkiksi päänimekkeettömien listaaminen:

./report_subfield.pl --subfield=245a --output1=bib-245a.txt --user=tunnus --password=salasana

Mikäli kannassa on päänimekkeettömiä bib-tietueita, niiden määrä on tulostiedostoon tulevien tietueiden ja kannan kokonaistietuemäärän erotus.

  • No labels