"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.
- 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.
- 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
- 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
Järjestä tulokset aakkosnumeeriseen järjestykseen:
sort –n bib-773w_eiIDt.txt > bib-773w_eiIDt.txt.sortedPoista tulostiedostosta tuplat:
uniq bib-773w_eiIDt.txt.sorted > bib-773w_eiIDt.txt.sorted.uniq
- 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.
- 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ä.
- Yhdistä tämä tiedosto cat-komennolla siihen tiedostoon, jossa on tuplat poistettuina listaus 773$w-osakentän arvoista.
- 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.