Kansallinen koodistojen siirtoformaatti Miika Alonen miika.alonen@csc.fi 6.9.2017 Väestörekisterikeskus, Lintulahdenkuja 4, Helsinki
1. Kansallisen siirtoformaatin tarve 2. Siirtoformaatin tietomalli 3. Tulevat rajapinnat ja formaatit Sisältö
Kansallinen siirtoformaatin tarve Koodistopalvelujen yhteentoimivuus yhteisen tietomallin ja koodistojen siirtoformaatin avulla Yhteinen kansallinen koodistopalvelu poistaa tarpeen koostaa ja ylläpitää kansallisena nähtyjä koodistoja (esimerkiksi kuntakoodisto) Julkishallinnon koodistojen keskitetty kehitys ja ylläpito (säästyy työtä ja kustannuksia) Julkishallinnon koodistot: Helpommin löydettävissä Jaettavissa Saatavissa esim. rajapintojen kautta, eri tiedostomuodoissa Kansainvälisyysaspekti (linkitys kansainvälisiin suosituksiin)
Koodistojen siirtoformaatti Koodistostandardit: GSIM SDMX DDI XBRL / DPM ISO 19135-1 SKOS / XSKOS Genericode Muut paikalliset formaatit CSV, JSON, XML Toimialakohtaiset koodistopalvelut REST API Kansallinen formaatti CSV JSON JSON-LD XML JHS Koodistopalvelu
Miten koodistot tuodaan koodistoeditoriin? Koodiston ylläpitäjä voi ladata koodiston CSV-muodossa (import) Jatkossa JSON tai XML rajapinnan kautta voi luoda koodiston muokkauskäyttöliittymässä ja muokata olemassa olevaa koodistoa Koodistojen linkitys ja integrointi sanastoeditorissa oleviin termeihin Linkitykset kansainvälisiin määrityksiin ja standardeihin
Koodistojen siirtoformaatin tietomalli Tietomalli koostuu koodiston staattisista perustiedoista ja laajennusosasta Osoite: http://iow.csc.fi/model/code/
Koodistojen siirtoformaatti Yhteisesti sovitut: Koodistorekisterin metatiedot Koodiston metatiedot Koodin metatiedot Laajennettava osa Hierarkiatyypin määrittely Viittaukset koodien välillä Koodien lisätiedot Koodi Koodisto Alakohtainen Laajennus Alakohtainen hierarkia Koodistorekisteri
API first suunnittelun lähtökohtana Koodistopalvelun rajapinta Perusrajapinnat: 1. Luo koodistorekisteri PUT POST GET /coderegistries/{rekisterin tunnus}/ 2. Luo koodisto koodistorekisteriin PUT POST GET /coderegistries{koodiston tunnus}/ 3. Luo koodiston koodit PUT POST GET /coderegistries/{rekisterin tunnus/{koodiston tunnus} 4. Luo koodi PUT POST GET /coderegistries/{rekisterin tunnus}/{koodiston tunnus}/{koodin tunnus} Luo lisäkenttiä, hierarkioita tai linkityksiä: 1. Luo uusi ominaisuuden tyyppi PUT POST GET /coderegistries/propertytype 2. Luo laajennusjärjestelmä PUT POST GET /coderegistries/{rekisterin tunnus}/{koodiston tunnus}/extensionsystem 3. Luo laajennuksia PUT POST GET /coderegistry/{rekisterin tunnus}/{koodiston tunnus}/extensions
Luo uusi koodistorekisteri Koodistorekisterin luominen (Ylläpitäjän toiminto) Koodistorekisterin nimi Lyhyt tunnus Määritelmä (Organisaation tiedot kirjautumisen / rajapinnan kautta) preflabel_fi codevalue definition_fi JHS koodistot jhs Julkishallinnon koodistot PUT coderegistires/jhs
Luo uusi koodisto Luo uusi koodisto määrittelemällä koodiston kuvailutiedot preflabel_fi codescheme definition_fi startdate Suorituskoodisto pstate Suorituksien tilat 2012-09-24 PUT coderegistries/jhs/pstate
Koodiston luominen Koodin lokalisoitu nimi Koodiarvo Määritelmä Yms. Luo koodiston koodit preflabel_fi codevalue definition_fi _fi Hyväksytty pass Suoritus hyväksytty Hylätty fail Suoritus hylätty POST coderegistries/jhs/pstate
Luo / Päivitä koodi Yksittäisen koodin tietojen luonti / päivitys preflabel_fi codevalue definition_fi Status * Hyväksytty pass Suoritus hyväksytty valid POST coderegistries/jhs/pstate/pass * Ehdotus tiloiksi: ISO 19135-1 ks. http://inspire.ec.europa.eu/registry/status/
Koodien välille voidaan luoda uusia relaatioita määrittämällä uusi ominaisuus ja sitä käyttävä hierarkia. Uuden ominaisuuden tiedot: Yksilöllinen URI tunniste Kuvailutiedot Hierarkiatyypin määrittely Formaatissa käytetty notaatio uri preflabel_fi definition_fi notation dcterms:ispartof * Osakokonais uus suhde Yksi koodi on toisen fyysinen tai looginen osa. ispartof POST coderegistries/propertytype/ispartof * http://purl.org/dc/terms/
Luo koodistoon hierarkiajärjestelmä Hierarkiajärjestelmän määrittely mahdollistaa useamman saman- tai erityyppisen hierarkian lisäämisen koodistoon preflabel_fi definition_fi ext_notation Hierarkia xyz 1 Hierarkia määrittelee koodien riippuvuuden ylätasolla ispartof POST coderegistries/jhs/pstate/extensionsystem
Luo hierarkkinen koodisto Esimerkki: Tuoteluokitus CPA 2008 preflabel_fi codevalue ext_value ext_ispartof MAA-, METSÄ- JA A 1 KALATALOUSTUOTTEET Maatalous- ja riistataloustuotteet 01 2 A sekä niihin liittyvät palvelut Yksivuotiset viljelykasvit 01.1 3 01 Monivuotiset viljelykasvit 01.2 3 01 POST coderegistries/jhs/cpa2008/
Laskuhierarkian tyyppimäärittely Hierarkioita ja linkityksiä voi olla eri tyyppisiä. Esimerkiksi laskuhierarkiatyypin määrittely: uri preflabel_fi definition_fi notation http://suomi.f i/ns/jhs/add Yhteenlasku Kahden positiivisen tai negatiivisen arvon yhteenlasku POST coderegistries/propertytype/add add
Luo koodistoon laskuhierarkia Määrittele käytetyn hierarkian kuvailutiedot preflabel_fi definition_fi ext_notation Laskuhierarkia Hierarkia joka määrittelee tilikoodien yhteenlaskutavan add POST coderegistries/jhs/pstate/extensionsystem
Luo uusi koodisto laskuhierarkialla Esimerkki: Kuntien tilikoodisto preflabel_fi codevalue * ext_value ext_add Muut aineelliset hyödykkeet 7012 Luonnonvarat 4001 + 7012 Arvo- ja taide-esineet 4002 + 7012 Muut hyödykkeet 4003 + 7012 POST coderegistry/jhs/codescheme/accounts/ * Koodiarvot kuvitteellisia esimerkkejä
Luo koodistojen välinen linkitys Esimerkki: ISCED 2008-2011 koodiavain lisäys: uri preflabel_fi definition_fi notation Tyyppi: http://suomi.fi/ns/jhs/ mapping Vastaavuus Koodien välinen mäppäys mapping preflabel_fi definition_fi ext_notation target Järjestelmä: ISCED 2008-2011 koodiavain. mapping isced2011 codevalue ext_mapping 5 Mäppäys isced2008 isced20011: 5B 5 5A 6 5A 7 6 8
Koodien väliset linkitykset rajapinnan kautta flat tai embedded muodoissa flat muodossa hierarkia / linkitykset koodiarvoilla embedded muodossa JSON tai XML puu TBD: Swagger dokumentaatio JSON + XML + YMS
Kysymyksiä? Kiitos