Q. Ethan McCallum: Bad Data–Mapping the World of Data Problems

O’Reilly on vastikään julkaissut huonoa dataa käsittelevän oppaan Q. Ethan McCallum ja työryhmä: Bad Data Handbook – Mapping the World Of Data Problems (O’Reilly Media, 2012, ISBN 9781449321871).

Q. Ethan McCallum: Bad Data Handbook–Mapping the World of Data Problems

Q. Ethan McCallum: Bad Data Handbook–Mapping the World of Data Problems

Miltäs tämän teoksen MARC-tietue mahtaa näyttää? Ai täydelliseltä ja tyhjentävältä? Kiva. Entäs 5 vuoden päästä kun tietueparka on vedetty läpi parista formaattikonversiosta ja järjestelmäuudistuksesta?

Ostin e-kirjana, tästä on luultavasti iloa nykyisessä työssäni kun siivoan PIKI-kirjastojen tietokantaa.

Mainokset

Vaskin asiasanat, jotka eivät ole YSAssa

Sanaston pengontaa

Kävin läpi Vaski-kirjastojen aineistotietokannan ja etsin asiasanat, jotka eivät esiinny tesauruksessa. Ohessa lista yleisimmistä:

esiintymien lkm termi
202 sotaromaanit
108 Lieto-kokoelma
100 korjausoppaat
66 eräkirjat
38 matkakirjat
29 sisustusoppaat
27 Suomen historia
23 kansanmusiikki: Venäjä
23 jouluaskartelu
22 posliinimaalaus
21 viihdetaiteilija : Suomi
21 salapoliisiromaanit
20 Yhdistyneet kansakunnat
20 kirjasto- ja informaatiopalveluala
20 1980-LUKU
18 vaateompelu
17 rock and roll
16 MURRENÄYTTEET
16 itämaiset taistelulajit
15 sosiaali- ja terveydenhuolto
15 rajavartiolaitos
15 paperiaskartelu
15 laivaluettelo
15 DVD-elokuvat
14 tiedeakatemiat
14 Suomen taideyhdistys
14 piirroselokuvat
13 tabulatuurinotaatiot
13 ranskalainen keittiö
13 nuorten aikuisten kirjat
13 Jeesus Kristus
13 äänentoistotekniikka
13 šamanismi
12 YKSINLAULU
12 vauvanhoito
12 Titanic
12 tilastollinen tutkimus
12 punk rock
12 kaupunkihistoriat
12 historia : 1900-luku
12 arabialainen musiikki
12 1960-luku
11 tšekin kieli
11 säveltäjät : Suomi
11 rentoutuminen
11 muodin historia
11 kuultokudos
10 varastaminen
10 Uusi testamentti
10 taitelijat
10 seminaarit (kokoukset)
10 samanismi
10 rockmusiikki
10 kiinalainen keittiö
10 1800-LUKU

Ohjelman (kts. alla) antamista tiedoista näkee myös, että esim. asiasana muodin historia (jota ei ole YSAssa) esiintyy Vaskin tietueissa Ppro853_137785, Ppro853_541141, Ppro853_541143, Ppro853_541144, Ppro853_541145, Ppro853_541146, Ppro853_541634, Ppro853_561083, Ppro853_561086, Ppro853_561087 sekä Ppro853_561088.

Eri asiasanoja joilla on vain yksi esiintymä Vaskissa löysin 1761 kappaletta. Kymmesti esiintyviä asiasanoja on kahdeksan kappaletta. Miten tällaista dataa olisi parasta havainnoillistaa? Ideoita vastaanotetaan.

Vaski on FinMARC 1998 -muotoa ja kyseisen standardin mukaan kentässä 652 olevat asiasanat ovat peräisin Yleisestä suomalaisesta asiasanastosta, eli YSA:sta (kansainvälisessä MARC21:ssä asia ilmaistaan hieman toisin, kuvaamalla asiasanakenttien osakentässä ‡2 mikä sanasto on kyseessä, tyyliin 650 #7 ‡a bibliografinen valvonta ‡2 ysa).

Tein aiemmin pienen työkalun jolle voi antaa yksittäisiä MARC-tietueita ja se kyselee ONKI-palvelun ohjelmointirajapintaa (APIa) käyttäen ovatko tietueen asiasanat YSO-ontologiassa. Kun YSA julkaisiin vastikään avoimena datana, tuli nyt tekemäni massakäsittely helpommaksi. Työn voi nykyään tehdä omalla koneella, pommittamatta ONKIn rajapintaa noin suurella kyselymäärällä.

Prosessi

Noukin ensin YSA:n SKOS-muotoisesta tiedostosta varsinaiset sanat (prefLabel ja altLabel) tekstitiedostoon yhdeksi pitkäksi, pitkäksi listaksi. 14.6.2011 lataamassani tesauruksessa oli 36991 termiä.

Sekä MARC-data että sanasto ovat saatavilla myös XML:nä, jonka käyttäminen olisi oikeaoppisempaa, mutta en nyt jaksanut säätää niiden kanssa sillä XML:n käsittelytyökalut ovat minulle aika tuntemattomia. Sensijaan olen tottunut operoimaan unixin komentoriviltä ja opettelen myös Perliä.

Tässä kirjoittamani Perl-kielinen ohjelma jota käytin:

#!/usr/bin/perl

use MARC::Batch;

my $file = "vaski-kunnostettu.mrc";
my $batch = MARC::Batch->new('USMARC', $file);
my $sanasto = "~/ysa.lista.alt_too";

$batch->strict_off();
while (my $record = $batch->next()) {
        for my $termi ($record->subfield('652', 'a')) {
        if (system("grep -q -i \"$termi\" $sanasto")) {
            print($termi, ";", $record->field('001')->as_string,"\n");
        }
    }
}

Kuten ehkä huomaat, tämä on hyvin kaukana elegantista. Ensinnäkin käsiteltävät tiedostot on nimetty ohjelman sisällä ja toisekseen kukin termi etsitään sanastosta käyttäen ulkoista ohjelmaa. Tämä aiheuttaa yhden forkin per asiasana, joka on huono asia. Oikeasti vertailu pitäisi tehdä tämän ohjelman sisällä, lukemalla asiasanat tiedostosta yksiulotteiseen taulokkoon tai listaan. Mutta toimii tämä näinkin, kun huonoa ohjelmistosuunnittelua voi korvata prosessoriteholla 🙂 Miniläppärini (joka on ainoa käyttämäni työväline) rouskutteli tätä useita tunteja.

Mutta tämän ei olekaan tarkoitus olla eleganttia. Tämän on tarkoitus osoittaa kirjastoammattilaisille, että me itse voimme ottaa aloitteen käsimme sen sijaan, että odottelemme että järjestelmätoimittajamme tekee kivoja asioita puolestamme (sitä on turha odotella).

Vielä pari huomiota laatimani menetelmän puutteista: se ei huomioi asiasanaketjuja, ja tuon kaltainen huoleton merkkijonojen etsintä johtaa vääriin tuloksiin mikäli etsittävä epäkelpo asiasana esiintyy osana kelpoa asiasanaa. Tälle asialle pitäisi todella tehdä jotain.

Mitä välii?

Ymmärtääkseni kaikkien 652-kentässä olevien termien pitäisi olla peräisin YSA:sta. Näin sanoo myös FinMARC -formaatti. Asiasanoja joita ei YSAssa ole, ei pitäisi käyttää ainakaan kyseisessä kentässä. Kuten tiedämme, ei asiasanasto kuvaa kaikkia maailman ilmiöitä. Siksi paikallisille sanastoille onkin tarvetta.

Minua paremmin luettelointiin perehtyneet tietänevät mitä sisällönkuvailussa oikeasti kuvaillaan. Jossain lienee sovittu, onko sisällön lisäksi aiheellista kuvailla muotoa. Esim. Vaskissa käytetään termejä ”Nintendo Wii”, ”sotaromaanit” ja ”elämäkerrat” kuvailemaan muotoa. Nämä teokset eivät kerro Nintendon Wii-peleistä, sotaa kuvaavista romaaneista tai elämäkertojen kirjoittamisesta, vaan ovat niitä. Ehkä tämä on ookoo – en jaksa nyt lueskella luettelointisäännöstöä asiaa tarkistaakseni enkä muista ulkoa mitä siellä sanotaan. Mutta ei ole vaikea nähdä että tämä on problemaattista. Ihmettelin samaa asiaa aiemmin, kun mietin minkähänlaista olisi “ihan oikea kirjastotyö” pelien parissa?

Mainiot luetteloijat ovat arvatenkin tämän muoto vs. sisältö -asian ratkaisseet jollain sopimuksella (joka siis lienee kirjattuna luettelointisääntöihin). Käytännössä ainakin Vaskissa kuvaillaan surutta sekä muotoa että sisältöä 652 -kentässä.

Tässä on muitakin mielenkiintoisia puolia: MARC-tietueessa ei esimerkiksi ole mitään tietoa siitä, mitä YSAssa on ollut tietueen luontihetkellä. YSA muuttuu ajan myötä, kenties osa nyt listaamistani termeistä on ollut kyseisen luetteloijan käyttämässä YSA:n versiossa luettelointihetkellä… MARC-tietueesta itsestään puuttuu tällainen tekninen metadata.

Kirjoitusvirhe luetteloinnissa on fataali virhe, ja teos katoaa kyseisen aiheen kannalta mustaan aukkoon. Varsinaisia kirjoitusvirheitä löysin Vaskista onneksi vain ihan muutaman.

Monet löytämäni, YSA:n ulkopuoliset termit ovat hyvin käytännöllisiä ja olen oikeasti onnellinen että niitä on tietueisiin luettelointisääntöjen vastaisesti tallennettu. Tämä kertoo sanaston puutteellisuudesta ja myös luokitusjärjestelmän puutteista, sekä kirjastoihmisten omatoimisista ongelmanratkaisupyrkimyksistä. Se on tietenkin aivan oikein. Nämä itse keksityt termit voisi eristää omaan sanastoonsa, jolla YSAa täydennetään, ellei ole YSAn tarkoituksenmukainen ylläpito ole mahdollista. Lisäksi meillä on käytettävissämme useampia sanastoja YSAn rinnalla ja niitä olisikin hyvä käyttää MARC-tietueen sellaisissa paikoissa, jotka eivät ole YSAlle varattuja.

Tekstinkäsittelystä jääneitä artefakteja etsimässä

Kiehtoo tuo analogisen ja digitaalisen välinen rajamaasto. Molempiin liittyy kaikenlaisia myyttejä ja näitä asetetaan jopa vastakkain uskomattomimmissa puheissa. Tekstinkäsittely tarjoaa siihen kaikenlaisia näkökulmia.

Olen alkanut keräilemään analogisista teoksista löytämiäni artefakteja; jäänteitä, takaumia tai kaikuja teosten omasta historiasta. Tarkoituksetta ne antavat meille pienen kurkistuksen naamion taa, teosten omiin syntyprosesseihin.

Määrä

Tässä kaksi tässä kuussa löytämääni tällaista artefaktia. Ensimmäinen on Yhdyskuntasuunnittelu -aikakausjulkaisussa (ISSN 0788-1010) esiintynyt, yliviivattu sana

määrä

Nämä artefaktit jättävät tietenkin mielikuvitukselle paljon sijaa. Miksi ne ovat syntyneet, kenen jäljiltä ja ketkä ovat ne henkilöt joiden olisi ne pitänyt korjata, mutta pääsivät livahtamaan painoon. Kyseinen määrä on kenties jäänyt jäljelle kun artikkeli kirjoittaja tai joku tekstiä kommentoinut henkilö on merkinnyt sanoja yliviivauksella osoittaakseen että ne olisi syytä poistaa, mutta joko yliviivauksen tai koko sanan poistaminen on unohtunut. Tähän lauseeseen sana määrä ei selvästikään kuulu.

On hyvin tyypillistä, että tekstinkäsittelytyökalujansa huonosti tuntevat ihmiset kommentoivat tekstejä lisäämällä uutta tekstiä kommentoitavan sisään, kenties jollain silmiinpistävällä värillä korostettuna. Varsinaisten tekstin kommentointi- ja annotointityökalujen (kuten Wordissa lisääkommentti) käyttö on hyvin harvinaista. On vaikeaa opetella uusia tapoja sellaisten vanhojen tapojen tilalle, jotka riittävissä määrin toimivat. Ilman varsinaisesta tekstistä irrallisia metatekstejäkin (kuten varsinaisia kommentteja) selviää ihan riittävän hyvin, jos työtä tekee ihminen eikä käytetä tätä metatasoa hyödyntäviä koneellisia menetelmiä (esim. Wordissa on toiminto ”hyppää seuraavaan kommenttiin”, ja kommentit jätetään myös pois tulosteista).

{hellip}

Toinen löytämäni artefakti on eilisessä Helsingin Sanomissa esiintynyt

{hellip}

Tämä on selvästi teknisempi virhe. ”Hellip” on lyhenne joka tarkoittaa vaakasuuntaista (horisontaalista) ellipsistä eli jonkin mainitsematta jättämistä merkkaavaa . Tavanomaisesti se merkitään kolmella pisteellä näin …, ja kuten ehkäpä olet huomannut, Wordin automaattinen korjaustyökalu päällä ollessaan korvaa tämän tuolla horisontal ellipsis -merkillä. Kaarisulut lienevät peräisin Hesarin käyttämästä ladontajärjestelmästä ja jostain syystä kone ei tässä tapauksessa ole tulkinnut niitä ohjeeksi, jonka sisällä annettu merkki (eli hellip) pitäisi muodostaa.

Kiehtovaa, kiehtovaa, kiehtovaa… Eräänlaista perhosten keräilyä tämäkin!

Mikäs se oikea aakkosjärjestys olikaan?

Aapiskukko, joka joonialaisen nimensä "Α-Ω ἀλεκτρυών" perusteella tunnetaan englanniksi nimellä "Oh cock"

Juolahti tuossa mieleen juuri, että vieläkö muuten koulussa opetetaan että aakkosjärjestys on abcdefghijlkmnopqrstuvwxyzåäö? Miten tää selitetään lapsille? Nehän tietää jo ennen kouluun tuloa että oikea aakkosjärjestys on qwertyuiopåasdfghjklöäzxcvbnm.

Tai tarkemmin sanoen aakkosjärjestys on kaksiulotteinen, eli kirjaimilla on oikeassa järjestyksessä 3-8 kappaletta vieruskaveria, eikä vain 1-2 kappaletta kuten yksiulotteisessa aakkosjärjestyksessä. Kun ihminen näkee kirjoitusvirheeltä vaikuttavan sanan, esim. ”kissa kävdli näppäimisöllä”, hän ymmärtää heti mistä on kyse: d ja e ovat aakkosjärjestyksessä viereiset kirjaimet. Myös sanoissa kävwli, kävrli ja kävfli esiintyy täysin identtinen virhe eikä noiden sanojen ymmärtäminen ole mikään ongelma.

Eipä huvittaisi olla kouluopettaja, eikä kyllä oppilaskaan. Kuinka kauan Suomen itsenäistymisen jälkeen lapsille kerrottiin edelleen vanhentunutperinteinen tieto, että nämä alueet ovat osa Venäjää? Voisi olla ihan hyödyllistä päivittää opetussuunnitelmat vastaamaan todellisuutta.

Pitäiskö kirjastossakin päivittää hyllyt vastaamaan yleisesti hyväksyttyä aakkojärjestystä?