Datan arvon maksimointi
Datan arvon maksimointi
Dataa sanotaan usein uudeksi öljyksi, mutta tämä analogia ontuu monin tavoin. Toisin kuin öljy, data ei saastuta, data ei kulu käytössä ja datan arvo moninkertaistuu jakamalla.
Big data, nykyinen laskentateho ja kehittyneet analyysimenetelmät avaavat aivan uusia mahdollisuuksia tutkimukselle. Lääketieteen tutkijoille pääsy sensitiivisiin aineistoihin, kuten terveys- ja potilastietoihin, voi mahdollistaa eri tautien syiden ja uusien hoitokeinojen löytymisen ihmisten yksityisyyden ja tietoturvan vaarantumatta.
Koko yhteiskunnan digitalisaatio lisää suurten datamassojen yhdistelyä, käsittelyä ja analysointia ja tämä vaikuttaa myös tieteeseen. Data ja laskenta kulkevat aina käsi kädessä ja nämä edellyttävät tutkimuksen tarpeisiin suunniteltua tehokasta laskenta- ja datanhallintaympäristöä.
Big data ja data-analyysi
Big datalla tarkoitetaan erittäin suurten, järjestelemättömien ja jatkuvasti kasvavien datamäärien keräämistä, säilyttämistä ja analysoimista tietotekniikan ja tilastotieteen avulla. Big data voi kertyä esimerkiksi lukuisista mittalaitteista, internet-sivujen lokitiedoista tai vaikkapa sosiaalisen median sisällöistä.
Pelkkä data ei aina itsessään ole käyttökelpoista, vaan oleellista on osata koostaa datasta aineistoja, jotta ne ovat tutkimuksellisesti hyödynnettävissä.
Big Datan analysoimisessa ongelmiksi muodostuvat esimerkiksi muistin loppuminen, tallennustilan loppuminen ja analyysiin kuluva aika. Näitä ongelmia voidaan ratkaista joustavilla ja helposti skaalautuvilla pilvipalveluilla, uusilla teknologioilla kuten konttitekniiikalla ja Big Datan analysointiin suunnitelluilla työkaluilla kuten Spark, Hadoop and Kafka.
Avoin data
Digitalisaatio ja datatalous ovat suuria mahdollisuuksia edistää tiedettä, luoda kasvua ja uusia innovaatioita, ja lopulta uusia liiketoimintamuotoja. Datan avoimuus on yksi kehityksen keskeisistä lähtökohdista.
Tutkimusaineistojen avoimuudella edistetään tutkimusaineistojen jatkokäyttöä, josta hyötyvät aineiston tuottajan itsensä lisäksi muut tutkijat ja parhaimmillaan yhteiskunnat maailmanlaajuisesti. Tutkijat voivat etsiä käyttöönsä tarvitsemaansa dataa ja tutkijat hyötyvät itsekin oman datansa avaamisesta. Avoimuus parantaa tutkijan näkyvyvyttä: avoimella tausta-aineistolla varustetut julkaisut keräävät enemmän viittauksia kuin julkaisut, joiden tausta-aineisto ei ole saatavilla. Itse datakin voi tuoda tutkijalle viitauksia.
Avoin data parantaa tutkimuksen läpinäkyvyyttä ja toistetavuutta, ja tätä kautta tieteen laatua. Avoimuus myös demokratisoi tiedettä: tutkijoilla vähävaraisemmista yliopistoista ja kolmannen maailman yliopistoista on yhtälainen pääsy tutkimuksen tuotoksiin kuin varakkaiden yliopistojen tutkijoilla.
FAIR-periaatteet
Force11 julkisti FAIR-periaatteet vuonna 2016. FAIR-periaatteiden tarkoitus on tehdä data löydettäväksi (Findable), saavutettavaksi (Accessible), yhteentoimivaksi (Interoperable) ja uudelleenkäytettäväksi (Re-usable). FAIR-periaatteiden noudattamisesta on EU:n neuvoston linjaus vuodelta 2016. Opetus- ja kulttuuriministeriö on sitoutunut FAIR-periaatteisiin. Fairdata-palveluita kehitetään näiden periaatteiden pohjalta.
Sensitiivinen data
Sensitiivinen eli arkaluonteinen data on hyvin ajankohtainen aihe sen tarjoamien suurten mahdollisuuksien vuoksi. Sensitiivisen datan tarkka määrittely on vaikeaa, mutta EU:n tietosuoja-asetus (GDPR, 2018) ja kansallinen lainsäädäntö antavat yksinkertaisia ohjenuoria. Sensitiivinen data sisältää ihmisten etniseen alkuperään, poliittisiin tai uskonnollisiin mielipiteisiin tai terveyteen liittyvää tietoja, genomiin tai biometriikaan koskevia tietoja tai sukupuoliseen suuntautumiseen liittyviä tietoja.
Ihmisillä on oikeus yksityisyyteen, joten sensitiivisen datan säilytys ja käsittely täytyy turvata huolellisesti. Arkaluonteisten henkilötietojen käsittely on pääsääntöisesti kielletty. Niiden käsittely on sallittu ainoastaan silloin, kun siitä on erikseen mainittu laissa ja tietojen keräämiseen täytyy olla peruste. Arkaluonteisen aineiston kuten väeston terveystietojen käyttäminen esimerkiksi lääketieteelliseen tutkimukseen vaatii luvituksen ja ihmisten antaman suostumuksen tietojen käyttöön tutkimustarkoituksiin. Ihmisten yksityisyys turvataan anonymisoimalla tai pseudonymisoimalla dataa, jolloin datasta ei voida enää tunnistaa yksittäistä ihmistä.
Suomessa esimerkiksi Tilastokeskus, Terveyden- ja hyvinvoinnin laitos ja biopankit ovat keränneet vuosikausien ajan sensitiivistä tietoa. Tutkimuksessa sensitiivistä dataa voivat käyttää hyödyksi niin lääketieteen tutkijat, yhteiskuntatieteilijät kuin kielitieteilijätkin.
Datan toisiokäyttö
Sosiaali- ja terveystietojen toisiokäyttö on tietojen käyttöä muuhun kuin alkuperäiseen tarkoitukseen, usein tieteellisen tutkimukseen. Tätä säätelee ns toisiolaki, joka tuli voimaan keväällä 2019.
Uusi sosiaali- ja terveysalan tietolupaviranomainen, Findata, aloittaa toimintansa vuoden 2020 alussa. Findata perustetaan erilliseksi yksiköksi Terveyden ja hyvinvoinnin laitoksen (THL) yhteyteen. Kyseessä on muusta THL:n toiminnasta erillinen yksikkö.
Findata myöntää luvat sosiaali- ja terveystietojen toissijaiseen käyttöön silloin, kun tietoja yhdistellään useammalta rekisterinpitäjältä, rekisteritiedot ovat peräisin yksityisiltä sosiaali- ja terveydenhuollon palvelunjärjestäjiltä tai kyse on Kanta-palveluihin tallennetuista tiedoista.
Videot
Patrik Maltusch: Avoimen tutkimusdatan jakamisen periaatteet Aallossa
Katso video YouTubessa »FAIR-periaatteet
Katso video YouTubessa »Keywords
Big datalla tarkoitetaan erittäin suurten, järjestelemättömien ja jatkuvasti kasvavien datamäärien keräämistä, säilyttämistä ja analysoimista tietotekniikan ja tilastotieteen avulla.
Sensitiivinen eli arkaluonteinen data sisältää ihmisten etniseen alkuperään, poliittisiin tai uskonnollisiin mielipiteisiin tai terveyteen liittyvää tietoja, genomiin tai biometriikaan koskevia tietoja tai sukupuoliseen suuntautumiseen liittyviä tietoja.
Anonymisointi tarkoittaa henkilötietojen käsittelyä niin, että yksittäistä henkilöä ei enää voida tunnistaa tiedoista.
Pseudonymisointi tarkoittaa henkilötietojen käsittelemistä siten, että henkilötietoja ei voida enää yhdistää yksittäiseen henkilöön ilman lisätietoja kuten pseudonymisointiavainta. Tällaiset lisätiedot täytyy säilyttää huolellisesti erillään henkilötiedoista.
Latest blogs and articles
More insightsFunet's anniversary: 40 years of action and 35 years in Internet
This year marks the 40th anniversary of the Funet (Finnish University and Research Network) and the 35th anniversary of Finland's connection to the global internet. Funet can be proud of its many achievements, not least the connection of Finland to the internet.
Read More »The EISCAT 3D radar system to revolutionize atmospheric research
The new EISCAT 3D radar system will provide three-dimensional images of northern lights. The project is coordinated by the Sodankylä Geophysical Observatory of the University of Oulu. CSC is actively involved in the project.
Read More »Poikkeustilasta pysyviin rakenteisiin
Korkeakoulujen IT-johtajien verkostot AAPA ja FUCIO sekä CSC kutsuivat korkeakoulujen pedagogiikan, opiskelun ja opetuksen tuen ja hallinnon sekä muut kiinnostuneet ideapankki.csc.fi -webinaariin kesäkuun lopussa.
Read More »Tackling coronavirus with scientific databases
Coronavirus can be overcome through international cooperation and sharing of data, and electronic research infrastructures can help with this. They include hardware, information networks, databases and services that together make up a network of global information exchange. Finland is a member of these infrastructures and the benefits are undeniable.
Read More »The following has evaluated to null or missing: ==> assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) [in template "10154#10192#411426" at line 10, column 32] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign viewURL = assetRenderer.getUR... [in template "10154#10192#411426" at line 10, column 13] ----
1<#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet.tld"] />
2<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] />
3
4<div class="kooste25 <@liferay_portlet.namespace />container">
5 <#list entries as entry>
6 <#assign entry = entry />
7 <#assign assetRenderer = entry.getAssetRenderer() />
8 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) />
9 <#if assetLinkBehavior != "showFullContent">
10 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) />
11 </#if>
12
13
14 <#if entry.getClassName() == "com.liferay.journal.kernel.model.JournalArticle">
15
16 <#assign article = entry.getAssetRenderer().getArticle()/>
17 <#assign document = saxReaderUtil.read(article.getContentByLocale(locale.toString())) />
18 <#assign categories = entry.getCategories() />
19 <#assign headline = document.valueOf("//dynamic-element[@name='Headline']/dynamic-content/text()") />
20 <#assign summary = htmlUtil.escape(assetRenderer.getSummary(locale)) />
21
22 <div class="boksi">
23 <div class="article-content">
24 <#list categories as category>
25
26 <#assign categoryTitle = category.getTitle("en_US", true) />
27 <#assign categoryClass = categoryTitle?lower_case/>
28 <#assign categoryClass = categoryClass?replace("[^\\d\\w]", "-", "r")/>
29
30 <#assign categoryId = category.getCategoryId() />
31
32
33
34 <#if category.getTitle(locale.toString(), true) == "Artikkeli" || category.getTitle(locale.toString(), true) == "Article">
35 <div class="ac-${categoryClass}">${category.getTitle(locale.toString(), true)}</div>
36 </#if>
37
38 </#list>
39 <h3><a href="${viewURL}" target="_blank">${headline}</a></h3>
40
41
42
43 <section class="text">
44
45 <small><@getMetadataField fieldName="publish-date" /></small>
46 <p class="article-summary">${stringUtil.shorten(htmlUtil.stripHtml(summary), 200)}</p>
47
48 <p><a class="readmore" href="${viewURL}" target="_blank"><@liferay.language key="read-more" /> »</a></p>
49
50 </section>
51
52
53 </div>
54
55
56
57
58 </div>
59 </#if>
60
61 <#if entry.getClassName() == "com.liferay.blogs.kernel.model.BlogsEntry">
62 <div class="boksi">
63
64 <#assign curEntry = entry />
65 <#assign categories = entry.getCategories() />
66
67 <#assign bloglink = "https://www.csc.fi/web/blog/post/-/blogs/">
68 <#assign urltitle = entry.getAssetRenderer().getUrlTitle() />
69
70
71 <div class="blog-content">
72
73 <#list categories as category>
74
75 <#assign categoryTitle = category.getTitle("en_US", true) />
76 <#assign categoryClass = categoryTitle?lower_case/>
77 <#assign categoryClass = categoryClass?replace("[^\\d\\w]", "-", "r")/>
78
79 <#assign categoryId = category.getCategoryId() />
80 <#assign portletURL = renderResponse.createRenderURL() />
81 ${portletURL.setParameter("resetCur", "TRUE")}
82 ${portletURL.setParameter("categoryId", categoryId?string)}
83
84 <#if category.getTitle(locale.toString(), true) == "Blogi" || category.getTitle(locale.toString(), true) == "Blog">
85 <div class="ac-${categoryClass}">${category.getTitle(locale.toString(), true)}</div>
86 </#if>
87
88 </#list>
89 <h3><a href="${bloglink}${urltitle}" target="_blank">${htmlUtil.escape(curEntry.getTitle())}</a></h3>
90
91 <section class="text">
92 <#assign summary = curEntry.getDescription() />
93
94
95
96 <p class="article-summary">${stringUtil.shorten(htmlUtil.stripHtml(summary), 200)}</p>
97 <p><a class="readmore" href="${bloglink}${urltitle}" target="_blank"><@liferay.language key="read-more" /> »</a></p>
98
99 </section>
100 </div>
101
102
103 </div>
104 </#if>
105 </#list>
106</div> <!--csc-article-list-->
107
108<script type="text/javascript">
109 var container = document.querySelector('.csc-article-list');
110 var msnry;
111
112 // initialize Masonry after all images have loaded
113 imagesLoaded( container, function() {
114 msnry = new Masonry( container );
115 });
116</script>
117
118<#macro getMetadataField fieldName>
119 <#if stringUtil.split(metadataFields)?seq_contains(fieldName)>
120 <span class="metadata-entry metadata-" ${fieldName}">
121 <#assign dateFormat = "dd.MM.yyyy" />
122
123 <#if fieldName == "author">
124 <@liferay.language key="by" /> ${portalUtil.getUserName(assetRenderer.getUserId(),
125 assetRenderer.getUserName())}
126 <#elseif fieldName == "categories">
127 <@liferay_ui["asset-categories-summary"]
128 className=entry.getClassName()
129 classPK=entry.getClassPK()
130 portletURL=renderResponse.createRenderURL()
131 />
132 <#elseif fieldName == "create-date">
133 ${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)}
134 <#elseif fieldName == "expiration-date">
135 ${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)}
136 <#elseif fieldName == "modified-date">
137 ${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)}
138 <#elseif fieldName == "priority">
139 ${entry.getPriority()}
140 <#elseif fieldName == "publish-date" && entry.getPublishDate()??>
141 ${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)}
142 <#elseif fieldName == "tags">
143 <@liferay_ui["asset-tags-summary"]
144 className=entry.getClassName()
145 classPK=entry.getClassPK()
146 portletURL=renderResponse.createRenderURL()
147 />
148 <#elseif fieldName == "view-count">
149 <@liferay_ui["icon"]
150 image="history"
151 />
152
153 ${entry.getViewCount()} <@liferay.language key="views" />
154 </#if>
155 </span>
156 </#if>
157</#macro>