Kitkattoman datapaketin malli

Kitkaton datapaketti (engl. Frictionless Data Package) on kansalaisjärjestö Open Knowledge Internationalin (OKI) vuonna 2016 luoma aloite. Sen tavoite on helpottaa datan uudelleenkäyttöä ja luotettavuutta luomalla sille avoin ja standardoitu pakattu-tiedosto-rakenne.

Tavoitteeena on poistaa datan työskentelyyn liittyvää kitkaa (friction). Tyypillisiä datapaketin hyödyntäjiä ovat esimerkiksi tutkijat (tutkimusten automaattinen toistettavuus), datatieteilijät (datakäsittelyn automaattiset putkistot) ja datainsinöörit (datan standardisointi).

Rakenteellisessa ja avoimessa tiedostomuodossa oleva avoin data pakataan datapaketin (pakattu tiedosto, .zip) sisään. Sen sisältö (tietomalli) kuvaillaan skeemalla ja mukaan voidaan liittää vielä datan tarina, jonka avulla voidaan kertoa datan käyttökonteksti (auttaa ymmärtämään sitä, mistä data on kotoisin ja mihin sitä voi käyttää).

Aloitteessa on otettu esimerkkiä siitä, miten merikontit aikoinaan mullistivat tavaran kuljetuksen logistiikan ympäri maailmaa. Aina fyysisesti samankokoinen merikontti sopii laivoihin, juniin, rekkoihin ja merikontteja on helppo siirtää niiden välillä. Merikonttien avulla erilaisten tavaroiden liikuttelu pystyttiin standardoimaan maailmanlaajuisesti. Datapaketti pyrkii tekemään saman datalle ja poistamaan sen käsittelyyn liittyvää kitkaa. Esimerkiksi datan automaattinen käsittely, käsittely eri ohjelmilla jne.

Toisena esikuvana kitkattomalle datapaketille on legopalikat. Erilaiset legopalikat sopivat yhteen ja niitä on helppoa yhdistellä suuremmaksi kokonaisuudeksi. Alla olevassa kuvassa on esitetty kitkattoman datapaketin malli.

Kitkattoman datapaketin rakenne


Kuva. Taulukkomuotoisen datan tallentamiseen käytettävä datapaketti. Esimerkissä on taulukkomuotoista (CSV) dataa sisältävä kitkaton datapaketti.

Kitkaton datapaketti voi sisältää useamman tietoaineiston. Tiedostoissa voi olla useita erilaisia tietomalleja. Jokainen tietomalli tulee kuvata omalla skeemalla. Kitkattoman datapaketin skeema ei sisällä semanttista yhteentoimivuutta. Sen avulla lähinnä kuvataan teknisesti muuttujia (string, int) ja nimiä. Taulukossa 6 on avattu esimerkillä kitkattoman datapaketin skeeman sisältöä.

Taulukko. Kitkattoman datapaketin sisältämän skeeman esimerkkisisältö (Schema.JSON)

"schema": {
"fields": [
{
"name":"Date", "type":"date", "format":"fmt:%d/%m/%Y"
},
{
"name":"Age", "type":"integer",
"constraints": {"minimum": 0, "required": "true"},
"missingValue": "NULL"
},
{
"name":"Primary Therapy Outcome",
"description": "Whether primary treatment success",
"type": "string",
"constraints": {"enum": ["PARTIAL","COMPLETE"]}
}
]
}

Kitkattoman datapaketin sisälle voidaan tallentaa useita erilaisia avoimia tiedostomuotoja. CSV-tiedostoja käytetään usein taulukkomuodossa olevan tiedon tallentamisessa ja käsittelyssä ja se on ollut kitkattoman datapaketin idean kehittämisessä keskiössä edellisten vuosien aikana.

Datapaketti on aina joku looginen kokoelma tietoa (avointa dataa).

Lisätietoja

https://frictionlessdata.io/

https://github.com/frictionlessdata