Eduskuntarajapinta ja äänestyskone

Eduskunnan äänestystiedot rajapintana ja visualisoituna

Eduskunnan äänestysten tulokset ovat saatavilla Eduskunnan sivuilta, mutta hankalasti löydettävässä ja luettavassa muodossa. Erityisesti yksittäisten kansanedustajien äänestyskäyttäytymisestä on vaikea saada selkoa koska äänestysvalinnat ovat hajallaan eri äänestysten tulossivuilla.

Asian parantamiseksi rakensin epävirallisen rajapinnan, jonka kautta äänestyksen tulokset ovat saatavissa koneluettavassa XML-muodossa. Tämän varaan voi helposti rakentaa uusia visualisointipalveluja, joista muutamia esimerkkejä alla.

Äänestyskone ja tulokset visualisoituna

Rajapinnan ja sen pohjana olevan tulostietokannan varaan voi rakentaa esim. visualisointi-, haku- ja julkaisupalveluja. Tekemiäni palveluja ovat:

 

Lisäksi Ilkka Pirttimaa on koonnut Twitter-virran äänestystuloksista. Samuli Sairanen esitteli ajatuksiaan äänestystuloksia sisältävästä sivustosta Eduskunnan vahtikoira -ideassaan jo vuonna 2009.

 

Blogissa on lisää taustatietoa palvelun tekemisestä ja Qaikussa keskustelua & kehitysajatuksia.

Eduskunta on kertomansa mukaan parhaillaan (maaliskuu 2010) selvittämässä äänestysten ja muidenkin täysistuntotietojen rajapinnan toteutusvaihtoehtoja. Jotain vastaavaa, virallista ja laajempaa on siis tulossa.

Rajapinnan tekniikkaa ja käyttöohjeita

Rajapintaa saa käyttää, kunhan hakujen määrä pysyy kohtuullisena (luokkaa < 1000 hakua per päivä). Toivon että mahdollisesta käytöstä kerrotaan etukäteen; mielenkiinnosta ja jotta voin vastaavasti kertoa muutoksista etukäteen. Pyrin pitämään palvelun toiminnassa ja päivittämään siihen uusien äänestysten tiedot, mutta en takaa tätä.

Äänestysten tiedot haetaan puoliautomaattisesti Eduskunnan sivuilta PHP:lla screen scraping -tekniikalla. En tarkista niitä silmäilyä tarkemmin, joten tiedoissa voi olla virheitä. Tiedot tallentuvat MySQL-tietokantaan, joka on itse REST/XML-rajapinnan pohjana.

Rajapintatietokantaan on tallennettu kaikki äänestykset vuoden 2010 alusta, muutamia syksyltä 2009, sekä tunnettuihin lakeihin liittyviä äänestyksiä muilta ajoilta (mm. "Lex Nokia" ja "Lex Karpela").

Käyttöohjeet

Äänestysten tunnisteet ovat muotoa a{äänestyksen numero}_{istunnon numero}-{vuosi}. Muut tiedot tulevat suoraan Eduskunnan sivuilta. Niiden merkitys selviää parhaiten vertaamalla XML:aa äänestystietoihin Eduskunnan sivuilla.

Luettelo kaikista äänestyksistä

http://www.biomi.org/eduskunta/

Yhden äänestyksen tiedot

http://www.biomi.org/eduskunta/?haku=aanestys&id={äänestyksen tunniste}

Esim. http://www.biomi.org/eduskunta/?haku=aanestys&id=a3_15-2010

Yhden edustajan äänestykset

http://www.biomi.org/eduskunta/?haku=edustaja&id={sukunimi etunimi}

Esim. http://www.biomi.org/eduskunta/?haku=edustaja&id=Lind%E9n%20Suvi ja

http://www.biomi.org/eduskunta/?haku=edustaja&id=Hyss%E4l%E4%20Liisa (välilyönnit, ääkköset yms. erikoismerkit korvataan vastaavilla kolmimerkkisillä koodeilla)

Jatkokehitys

Rajapinnan kehittämisessä on rajana periaatteessa vain mielikuvitus ja aika. Eduskunnan sivuilla on runsaasti erilaisia äänestyksiin, edustajiin, puolueisiin, aloitteisiin, esityksiin, valiokuntiin jne. liittyviä tietoja, jotka voisi myös julkaista rajapintana. Nykyiseen rajapintaan voisi ottaa mukaan lisää asioita; selkein puute on kunkin äänestyksen päiväjärjestysnumero. (Tätä tarvitaan, jotta äänestystuloksiin voisi tehdä linkin ilman käsityötä; äänestyshaun tuottamat linkit eivät ole pysyviä).