Kansakunnan kaapin päällä

Kirjastot — Matti @ 0:58

YLE Kirjasto -tietopalvelu on kaikessa hiljaisuudessa julkaissut artikkeliviitetietokantansa sisällön avoimena datana. Tietokanta sisältää yli 65500 viitettä pääasiassa kotimaisista aikakauslehdistä. Latasin Excel-muodossa olevan datasetin ja uteliaisuuttani vilkaisin, mitä tietoja artikkeleista on tallennettu tietokantaan. Huomasin, että viitetietokannan Asiasanat-kenttään on tallennettu runsaasti henkilöiden nimiä; oletettavasti niiden henkilöiden, joita artikkeli on käsitellyt. Tästä sain ajatuksen tutkailla tietokannan avulla, miltä suomalainen mediatodellisuus näyttää aikakauslehtiartikkeileiden viitteiden valossa. Keistä koostuu se henkilökaarti, joka nauttii toimittajien suosiosta vuodesta toiseen?

Ensitöikseni muunsin aineiston Excel-muodosta standardiin CSV-taulukkomuotoon ja latasin tiedon BaseX XML-tietokantaan. BaseX osaa ladata suoraan CSV-muotoisia tiedostoja.

Artikkiliviitteiden asiasanat on tallennettu puolipistein erotettuna yhteen kenttään suuraakkosin kirjoitettuna. Saadakseni poimittua muiden metatietojen joukosta henkilönimet, minun tuli kirjoitella XQuery-skripti joka erottaa henkilönimet ja muuntaa nimet noudattamaan normaaleja oikeinkirjoitussääntöjä. Alla oleva skripti on toteutukseltaan karkea, sillä se tunnistaa henkilönimet asiasanan sisältämän välilyönnin perusteella. Tämän seurauksena mukaan tulee myös muita kaksiosaisia asiasanoja. Tämä ei kuitenkaan haittaa tietokannan sisällön käsittelyä, sillä virheelliset tiedot voi seuloa pois myöhemmässä vaiheessa.


import module namespace functx = "http://www.functx.com";
for $record in //record
let $subjects:= tokenize(fn:normalize-space($record/Asiasanat), '; ')
for $subject in $subjects
let $fullname_reversed:=$subject[contains(., ' ')]
let $fullname_tokenized:=tokenize(lower-case($fullname_reversed), ' ')
let $name:= {string-join((functx:capitalize-first($fullname_tokenized[2]),functx:capitalize-first($fullname_tokenized[1])), ' ')}
let $to_print:=
if(string-length($name)>3)
then {data($name)}
else ()
return if (not(empty($to_print))) then
insert node $to_print into $record/persons
else()

Skripti täydentää artikkeliviitetietokannan sisältöä persons-kenttään tallennettavilla henkilötiedoilla. Seuraavaksi nämä tiedot tulee ryhmitellä henkilöiden mukaisesti, siten että kunkin henkilön alle kootaan tiedot vuosista, joina kyseinen henkilö on mainittu artikkeliviitessä.


{
for $record in //record
for $person in $record/persons/name

group by $person
return {$person}{$record/Vuosi} }

Tämän työvaiheen jälkeen tiedot tulee koostaa vielä kerran, siten että toistuvat vuosiluvut poistetaan ja korvataan kunkin vuosiluvun kohtaan tallennettavalla toistuvuustiedolla.

{
for $press_mention in //press_mention
let $years:=distinct-values($press_mention/year/Vuosi)
let $counts:= for $year in $years
let $count:=count($press_mention/year/Vuosi[.=data($year)])
order by $year
return {$year}
return {$press_mention/fullname}{
for $count in $counts
return $count
}
}

Viimein kasassa on XML-tietokanta, josta voidaan tehdä suhteellisen helposti erilaisia henkilöihin liittyviä kyselyitä. Tietokannan sisältö siivottuna noin 5000 rivin tienoille muista kuin henkilötiedoista löytyy Githubista. Ajattelin, että tämä saattaisi olla jollekulle mielenkiintoinen XQuery-harjoitteluaineisto :) Myös skriptit löytyvät samasta paikasta.

On oletettavaa, että henkilömainintojen useus riippuu siitä, minkä tyyppisistä lehdistä lehtitietokannan viitteet ovat peräisin. Seuraavista lehdistä tietokanta sisältää yli tuhat viitettä:

LehtiViitteiden lukumäärä
Apu10860
Seura10434
Anna5867
Me4810
Hymy4771
Katso3587
Spiegel3318
Eeva2727
Ilta-Sanomat Plus2377
Stern1974
Helsingin Sanomat kuukausiliite1381
Gloria1333
City1237
Se-lehti1072

Mutta nyt asiaan, henkilömainintoihin.

Eniten mainintoja vuodessa on prinsessa Dianalla, 47 kappaletta vuonna 1997.

Eniten vuosittaisia mainintoja lehtien palstalla on Katri Helenalla. Hänet on mainittu kaikkiaan 37 vuoden aikana. Katri Helenalla mainintoja on eniten vuonna 1993, 13 kappaletta.

Kahdeksan henkilöä ovat paistatelleet vähintään 30 vuotena lehtien palstoilla:

NimiEnsimmäinen maininta Viimeisin maininta
Esko Salminen19612012
Jörn Donner19662012
Katri Helena19662012
Tapani Kansa19682011
Paula Koivuniemi19692012
Marion Rung19702012
Kaari Utrio19762011
Riitta Väisänen19762012

Kun tarkastellaan vähintään 25 eri vuotena mainittuja henkilöitä — poislukien edellä mainitut kahdeksan henkilöä — joukko on jo selvästi suurempi. Ensimmäisen maininnan mukaisessa järjestyksessä:

NimiEnsimmäinen maininta
Pirkko Mannola1960
Lenita Airisto
1966
Tamara Lund1967
Urho Kekkonen1967
Vesa-Matti Loiri1968
Ilkka Lipsanen1968
Marjatta Leppänen1969
Arja Saijonmaa1969
Anita Hirvonen1969
Mirja Pyykkö1969
Åke Lindman1970
Sinikka Sokka1970
Aira Samulin1970
Erkki Liikanen1970
Ritva Oksanen1971
Teija Sopanen1974
Anne Pohtamo1976
Armi Aavikko1977
Matti Nykänen1982
Anna-Leena Härkönen1983
Karita Mattila1983
Satu Silvo1984
Hannele Lauri1986

Otetaan lopuksi vielä tarkasteluun ikuisen mäkikotkan, kaimani Matin seikkailut julkisuudessa. Lehtiartikkelimainintojen mukaan järjestestettynä Matin vilkkaimmat vuodet ovat olleet:

MainintojaVuodet
91994
81998
71996 ja 2004
62010
51989, 1995 ja 2005
41987, 1988, 1999, 200, 2003, 2006, 2008, 2012
31993, 2002, 2011
21990, 1991, 2007
11982, 1983, 1984, 1992, 1997, 2001, 2009

Nyt kun artikkeliviitetietokanta on XML-muodossa, täytynee ottaa se myös uudemman kerran tarkasteluun. Tämän kokemuksen perusteella tietokannasta saa yllättävän vähällä vaivalla irti yksityiskohtia, jotka ovat tavallisesti kätkeytyneetä tietokannan kokonaisuuteen.

3 kommenttia

  1. Hienoa että aineistosta on hyötyä muillekin! Juuri tälläinen ”jatkojalostus” on avoimen datan suola. Ja olet oikeassa .csv muoto olisi ollut oikeampi. Kauneusvirhe, mutta onneksi helppo korjata. Ensikerralla. Minulta saa pyytämällä myös .csv muotoisen, jos muunnossa on ongelmia.

    Comment by Janne Ranta — 7.2.13 @ 13:26
  2. Kiitos kun laitoit Github:iin tuotoksesi!

    Comment by samooja — 7.2.13 @ 22:03
  3. Janne: Kiitokset YLE:lle datan julkaisemisesta! Viitetietokannan tiedoille voi löytyä yllättäviä käyttömahdollisuuksia, joita ei tule välttämättä ajatelleeksi käytettäessä tietokantaa alkuperäisen tarkoituksen mukaisesti tiedonhakuun. Viitetiedot ovat oiva tutkimusaineisto itsessään ja tämän mahdollisuuden tutkiskelu ja demonstrointi on ollut näiden eri tavoin metatietoja käsitelleiden kirjoitusten tarkoitus.

    Excel-muoto toimii aineistolle hyvin, muuntaminen on helppo tehdä aineiston käsittelyn alussa. Tuntumani mukaan CSV-muotoa ei tunneta kovin laajasti, joten tiedoista kiinnostuneet mutta vähemmän tietoteknistä puolta tuntevat voivat ihmetellä, mikäs tämä tämmöinen CSV-tiedosto oikein on. Excel-muoto lie sen sijaan tuttu kaikille taulukkolaskentaa käyttäneille, joten siksi se on ollut aivan hyvä valinta tietojen julkaisumuodoksi.

    Samooja: Jos kehittelet aineiston käsittelyä varten jotain työkaluja, laita toki pull-pyyntö tulemaan Githubissa :)

    Comment by Matti — 8.2.13 @ 13:59

RSS-syöte tämän artikkelin kommenteille.

Pahoittelut, kommentointi on nyt suljettu.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2013 Kaukomieli | powered by WordPress with Barecity