Freemind-miellekartasto visualisoituna

Tietokonepohjaiset miellekartat voi linkittää toisiinsa, jolloin näistä muodostuu verkosto. Miltä satojen karttojen verkosto sitten näyttää? Se selviää datan visualisoinnilla.

Aloin pari vuotta sitten kirjoittaa pientä kirjaa mind mappayksestä eli miellekartoista, mutta projekti jäi aina syystä tai toisesta muiden asioiden jalkoihin. Tänä keväänä sain sen vihdoin pakettiin ja julkaistua.

Toistuva piirre, jonka keskusteluissa kirjan tiimoilta olen huomannut on se, että monet käyttävät karttoja lähinnä kertaluontoisina juttuina. Suurin osa on ainakin kuullut miellekartoista ja monet kokeilleetkin, mutta harva käyttää niitä järjestelmällisesti päivittäisenä työkaluna.

Miellekartoilla tehdään muistiinpanoja tai brainstormataan, joskus järjestellään olemassa olevaa tietoa rakenteelliseksi kokonaisuudeksi. Otokseni on vielä kovin pieni, mutta karttojen yhdistely toisiinsa yhtenäiseksi kartastoksi vaikuttaisi monille vieraalta ajatukselta. Kulmakarvoja nostelee myös ajatus, että kartat voisivat olla kertakäyttöasian sijaan jatkuvasti muuttuvia ja eläviä työkaluja, jotka pysyvät hengissä vuodesta toiseen.

Yksi syy karttojen kertakäyttöisyyteen voi löytyä itse mind map ohjelmistoista — ja nyt puhun digitaalisista kartoista, en kynäpaperisellaisista. Ne eivät varsinaisesti tue kovin hyvin kartasto-ajatusta. Esimerkiksi Freemind, joka puutteistaan huolimatta on suosikkiohjelmani, mahdollistaa kyllä linkkauksen kartasta toiseen, mutta visuaalista kuvaa näiden linkkien muodostamasta verkostosta ei käyttäjä näe, vaan se pitää kuvitella itse.

Vaikka eräänlainen ihme ja pohdinnan aihe on se, että pystymme ylipäänsä mielessämme ymmärtämään erilliset palaset kartastona, niin eiköhän datan visualisointi voisi olla paikallaan. Auttaisihan se ainakin keventämään omaa kognitiivista kuormaa, jos ei sitten viestimään kartaston saloja muille.

Data, verkostomallin luonti

Freemind on Java-pohjainen desktop-ohjelmisto, joka tallentaa kartat tiedostojärjestelmään yksittäisiin xml-tiedostoihin. Jonkin aikaa mielessäni on pyörinyt, että kartaston tiedostot voisi ohjelmallisesti käydä läpi ja luoda niistä verkostomallin. Tarvitsisin ohjelmanpätkän, joka tulkitsisi xml-tiedoston ja siellä olevat linkit, joita se sitten yksi kerrallaan seuraisi ja matkallaan loisi verkostomallin visualisoinnin pohjaksi.

Aloin jo vuosia sitten järjestelmällisesti linkkaamaan miellekarttani toisiinsa, joten niitä oli kasaantunut jo kokoelmaksi asti. Alkuvaiheen innoittajana oli muistipalatsi-muistamisjärjestelmä, jossa mieleen painettavat asiat sijoitetaan mielessä rakennukseen, jonka huoneesta toiseen kulkemalla voi muistaa sinne talletetut asiat. Kartat olivat minun huoneitani ja linkit ovia huoneesta toiseen.

Miellekartta, käytävä Miellekartta, kirjasto Miellekartta, toimisto Millekarttojen verkko

Jokainen kartta on eri tiedostossa. Punaiset nuolet ovat karttoja yhdistäviä linkkejä, joista voi siirtyä huoneesta toiseen. Kartat ja niiden väliset yhteydet muodostavat verkon, mutta se pitää tässä itse kuvitella — tai piirtää käsin kuten alimmassa kuvassa on tehty: käytävä yhdistää huoneet, huoneen keskusnuolesta pääsee takaisin ‘käytävään’ ja toimistosta on yksisuuntainen yhteys kirjastoon.

<map version="1.0.1">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
  <node CREATED="1470757729087" ID="ID_1057651209" MODIFIED="1470757763121" TEXT="Kartasto">
    <node CREATED="1470757852521" ID="ID_1131565593" LINK="Kirjasto.mm" MODIFIED="1470757852522" POSITION="right" TEXT="Kirjasto"/>
    <node CREATED="1470757858377" ID="ID_1998336246" LINK="Toimisto.mm" MODIFIED="1470757858382" POSITION="right" TEXT="Toimisto"/>
  </node>
</map>

Freemind tallentaa miellekartat xml-tiedostoon

Verkosto koostuu solmuista (node, vertex) ja näitä yhdistävistä kaarista (edge). Mahdollisia ohjelmallisia toteutustapoja on useita, mutta yksinkertaisin lienee solmupareista koostuva kaarilista.

  • Käytävä, Toimisto
  • Käytävä, Kirjasto
  • Käytävä, Olohuone
  • Toimisto, Kirjasto

Pythonilla olin tottunut tekemään komentoriviskriptejä datankäsittelyyn liittyen, joten sillä sain kaivettua xml-tiedostoista listan, jossa oli noin 1000 linkkiä 600 kartan välillä. Datan tallensin csv-tiedostoon, jossa oli kaksi saraketta: lähde- ja kohdesolmu, joiden merkitsijänä toimi karttatiedoston polku levyjärjestelmässä. Tällä pitäisi päästä alkuun.

Koevisualisointi ja datan tuunaus

Pääsin pitkästä aikaa käyttämään verkostoanalyysiohjelma Gephiä. Olen aiemminkin käyttänyt sitä onnistuneesti visualisoimaan miellekarttadataa (ks. Datatiedetaiteilua) ja mm. Facebook-kaveriverkostoani. Se oli helppo työkaluvalinta.

Gephi sai luotua linkkilista-tiedostoni pohjalta verkoston ja visualisoitua sen kohtuu järkevän näköisesti ruudulle. Minulla ei kummoisia ennakko-odotuksia tai hypoteeseja ollut siitä mitä tuleman pitää, vaan lähestyin aihetta eksploratiivisesti, katsoen mitä tulee vastaan ja seuraten uteliaisuuttani. Hiiren osoittimella sain tutkittua mikä kartta on missäkin ja miten se liittyy toisiin.

alt text Data ladattuna Gephiin

alt text Verkosto automaattisen asettelun jäljiltä

Sivuhuomioita

Gephi bugitti hieman, mutta osasin kyllä odottaa sitä… Kubuntu 16.04:lläni Gephin editorinäkymä ei mistä lie johtuu toiminut alkuunkaan, vaan vaati käynnistysvaiheeseen joidenkin taikasanojen googletusta. Jouduin myös tässä välissä myös viemään verkostomallin gexf-muotoon ja tuomaan takaisin gephiin, muuten meni koko kone jumiin joissain toiminnoissa. Olisikohan csv-tiedoston sisäänluvussa jotain bugeja.

Verkoston silmämääräinen tutkiminen nopeasti oli vaikeaa ilman selkokielisiä kartan nimiä (nyt oli vain /home/user/bling/blong.mm). En ollut poiminut karttojen nimiä mukaan — datassanihan oli ainoastaan tiedostopolkujen nimet. Lisätiedon tuominen Gephiin tarkoitti kuitenkin sitä, että jouduin tuomaan solmulistan tietoineen erikseen ohjelmaan. Pelkkä kaarilista ei enää riittänyt.

Yhdistin lähde ja kohde -solmut ensin tekstieditorissa yhdeksi listaksi ja poistin säännöllisellä lausekkeella polkuosan tiedostonimestä. Lämmittelin myös hieman datansiivoustyökalu Open Refineä, jolla poistin duplikaatit nimilistasta. Tämän jälkeen luin syntyneen solmutaulukon (tiedostopolku + nimi) uudeksi projektiksi Gephiin ja luin perään vanhan linkkilistan. Nyt sain linkkilistan tiedostopolut kohdistettua luettavampiin nimiin.

Visualisointi 2

Nyt minulla oli perusrakenne visualisoituna, mutta kuva kaipasi lisää informaatiota. Gephillä verkostosta voi laskea tunnuslukuja, jotka sitten koodataan visuaalisten elementtien ominaisuuksiksi, esimerkiksi kokoa ja väriä muuntelemalla.

Erityisesti kaipasin modulaarisuuden laskentaa, jonka avulla saa värjättyä verkon osiin jotka ovat sisäisesti suhteellisen paljon toisiinsa linkittyneitä. Verkon muotoilua varten on tarjolla useita eri menetelmiä. Palluroiden koot tässä kuvassa kuvaavat eigenvector centrality -arvoa, joka kuvaa solmun eli kartan keskeisyyttä ja tärkeyttä verkostossa (tietoa karttojen sisäisestä koosta minulla ei tässä ollut). Paksummat kaaret tarkoittavat karttojen välillä olevan useamman linkin, todennäköisesti yksi molempiin suuntiin.

alt text Verkosto ryhmiteltynä, painotettuna ja värjättynä

Kuvan viennin Gephistä tein svg-muodossa, sillä en ainakaan keksinyt miten png-muodosta saisi riittävän isoa tarkoituksiini. Svg:tä taas voin suurentaa laadun kärsimättä niin paljon kuin haluan.

Kuvassa iso vihreä pallo on keskuskartta, joka on jo vuosia toiminut muita karttoja yhdistävänä päähakemistona. Sen ympärillä on useita väliaikaisempia hakemistoja, joita kutsun aikaikkunoiksi. Ne toimivat kotikarttoina, lähtöruutuina jotka keräävät yhteen ajankohtaiset tärkeät aiheet ja kartat, yleensä 3—12 kuukautta, minkä jälkeen avaan uuden aikaikkunan. Violetti alue on teknologiaan liittyviä karttoja, esimerkiksi ohjelmistokehitykseen ja data-analyysiin liittyen. Harmaa taas on kirjastoalue, jossa on sekalaisempaa tietoa ja muistiinpanoja perinteisellä kirjastojärjestelmän jaottelulla.

Kovin syvälle verkoston analyysiin menemättä voi kuvasta tehdä heti muutaman huomion. Rakenne on melko itsestään syntynyt ajan myötä, ilman suurta suunnittelua. Vanhemmat kartat ovat kuvan oikeassa laidassa hieman erillään muista. En vielä silloin linkittänyt karttoja kovin aktiivisesti toisiinsa. Toisaalta irrallisuus saattaa tarkoittaa myös rikkoutuneita linkkejä karttojen välillä.

Pitkien polkujen päässä olevat kartat ovat käytännössä kadonneet: niihin eksyminen linkkejä seuraamalla on todella epätodennäköistä (tätä voisi jatkossa tutkia vaikkapa pagerank-tunnusluvun avulla). Joskus nämä ovatkin kertakäyttökarttoja, joilla ei juuri käyttöarvoa enää ole. Toisinaan kuitenkin myös käyttökelpoisia karttoja katoaa, esimerkiksi joidenkin kurssien tai tapahtumien muistiinpanoja. Kokonaiskuvan avulla pystyn tutkimaan myös näitä kartaston reuna-alueita.

Miellekartaston kanssa työskennellessä minulla ainakin pätee sama kuin verkkosivuilla tietoa etsiessä: kovin montaa klikkausta en ole valmis tekemään tiedon löytämiseksi. Jo näiden muutaman uudesta kuvasta tehdyn havainnon perusteella pystyn ohjaamaan karttojen kanssa työskentelyäni jatkossa sujuvammaksi. Näen, että tietyt kartat olisi hyvä linkata suoremmin toisiinsa, jotta ne saisi paremmin jokapäiväiseen käyttöön.


Entä sitten jatkossa? Jo nyt visualisoinnin pohjalla oleva data on vanhentunutta. Aionko tehdä saman työn manuaalisesti jatkossakin? Toivottavasti en kovin montaa kertaa. Etenkin alkuvaiheen tiedonputsausvaiheen voisi suhteellisen helposti ohittaa tiedonkeruukoodia kehittämällä. Samalla yksittäisistä kartoista voisi kerätä enemmän tietoa analyysiä varten, esimerkiksi solmujen lukumäärästä ja karttojen syvyydestä tai vaikkapa muutospäivämääristä.

Muodostaa datan sitten käsin tai automaattisesti, tällaista päälleliimattua kartaston tarkastelua kuitenkin rajoittaa pohjalla oleva tietomalli. Tietokannassahan tämä kaikki pitäisi olla eikä erillisissä tiedostoissa ympäri järjestelmää. Itse tiedon lisäksi tietoa voisi kerätä tiedon muutoksista. Samoin voisi linkkien olemassaolon lisäksi saada tilastoja myös niiden klikkauksista. Ja tämän tulisi tietenkin olla osa mind map ohjelmistoa, jotta visualisointia voisi käyttää suoraan esimerkiksi kartaston navigointiin. Kukapa tekisi sellaisen?

Linkkejä

  • Gephi — Free, open source graph visualization platform
  • Open Refine — Free, open source tool for working with messy data
  • Freemind — Free, open source mind mapping software
  • Mind on Maps — Navigate your thougths with digital mind maps. The website of my book.
comments powered by Disqus
2017-09-14