KANDIDAATINTYÖ. Anne Karppinen Juha Nikula Kalle Lyttinen
|
|
- Mikko Kapulainen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 KANDIDAATINTYÖ Anne Karppinen Juha Nikula Kalle Lyttinen TIETOTEKNIIKAN OSASTO TIETOTEKNIIKKA 2012
2 KANDIDAATINTYÖ Semanttinen tietorakenne sulautetulle järjestelmälle Anne Karppinen Juha Nikula Kalle Lyttinen Ohjaajat: Juha Röning, Teemu Tokola TIETOTEKNIIKAN OSASTO TIETOTEKNIIKKA 2012
3 Karppinen A., Nikula J., Lyttinen K. (2012) Semanttinen tietorakenne sulautetulle järjestelmälle. Oulun yliopisto, Tietotekniikan osasto. Kandidaatintyö, 33 s. TIIVISTELMÄ Semanttisen muistin mallintaminen on varsin haastava tehtävä, ja monet suurellakin budjetilla toteutetut projektit ovat jääneet verrattain vaisuihin tuloksiin. Semanttinen tiedontallennus on tehokasta, ja siksi ihminen muodostaa aivoissaan semanttisia verkkoja. Näiden verkkojen avulla tietojen väliset relaatiot pysyvät hyvin järjestyksessä. Tällainen tiedon tallentaminen on kuitenkin kaukana normaalisti tietokoneissa käytetyistä tallennustavoista. Tässä kandidaatintyössä toteutettiin ohjelma, joka järjestää tietoa semanttiseen puurakenteeseen ja oppii uutta tietoa käyttäjältä luonnollisella kielellä käytettävän rajapinnan kautta. Työssä onnistuttiin ennen kaikkea tietorakenteen ja verkon toteutuksessa. Avainsanat: semanttinen muisti, luonnollinen kieli, oppiminen, tekoäly
4 Karppinen A., Nikula J., Lyttinen K. (2012) A Semantic Data Structure for an Embedded System. Department of Information Engineering, University of Oulu, Oulu, Finland. Bachelor s thesis, 33 p. ABSTRACT Modelling semantic memory is a challenging task and even big budget projects have not been very successful. Gathering semantic information is efficient and that is why human beings form semantic networks in their brain. With the help of these networks, relations between matters stay in clear order. However, semantic data storing is not the most common way of data storing used in computers. In this bachelor s thesis we designed and implemented a program which organizes information to a semantic treemodel and learns new information from natural language user inputs. In this thesis we succeeded especially in data structure and network implementation. Keywords: semantic memory, natural language, learning, artificial intelligence
5 SISÄLLYSLUETTELO TIIVISTELMÄ ABSTRACT SISÄLLYSLUETTELO ALKULAUSE LYHENTEIDEN JA MERKKIEN SELITYKSET 1. JOHDANTO 9 2. TAUSTA Laitteet, jotka ajattelevat kuin ihmiset Laitteet, jotka käyttäytyvät kuin ihmiset Laitteet, jotka ajattelevat rationaalisesti Laitteet, jotka käyttäytyvät rationaalisesti Semanttinen muisti ja sen määritelmä Luonnollisen kielen käsittely Syntaktinen eli lauseopillinen kielenymmärrys Semanttinen eli merkitysopillinen kielenymmärrys Kotus-sanalista Käytetty laitteisto RATKAISUN KUVAUS Johdanto Käyttöliittymä Verkkorajapinta ja puskuri Kyselyihin vastaaminen Kyselyn lähettäminen ja vastauksen vastaanottaminen Tekoäly Yhden ja kahden sanan syöte Kolmen sanan syötteet Tietorakenne SAAVUTUKSET Toiminnallisuus Testaussuunnitelma Käyttöliittymätestaus Verkkotestaus Kielenymmärrystestaus Tietorakennetestaus Testien tulokset Käyttöliittymätestien tulokset Verkkotestien tulokset
6 Kielenymmärrystestien tulokset Tietorakennetestien tulokset Pohdinta PROJEKTIN KUVAUS Työnjako Ajankäyttö TULEVA KEHITYS YHTEENVETO LÄHTEET LIITTEET Käyttöliittymäkyselylomake
7 ALKULAUSE Tämän kandidaatintyön eri vaiheissa olemme saaneet apua useilta henkilöiltä, joita haluamme nyt kiittää. Kiitos kuuluu kaikille ryhmän jäsenille, kandidaatintyön ohjaajille, ystäville ja heille, jotka osallistuivat työhömme laitteen testausvaiheessa ja oikolukivat dokumentaation. Lisäksi haluamme kiittää niitä, jotka ovat jaksaneet tukea meitä projektin aikana. Oulu, 17. kesäkuuta 2012 Anne Karppinen Juha Nikula Kalle Lyttinen
8 LYHENTEIDEN JA MERKKIEN SELITYKSET EIR FIFO GPS Kotus NLP Elektor Internet Radio First In, First Out General Problem Solver Kotimaisten kielten keskus Natural Language Processing
9 9 1. JOHDANTO Ihminen on ajatteleva olento, joka voi oppia uusia asioita. Ihmisen oppimisprosessi tapahtuu aivoissa, jossa uusi tieto jäsennetään järkeväksi kokonaisuudeksi [1]. Aivojen hermoverkot muuttuvat ja voimistuvat sitä mukaa, kun ihminen oppii uusia asioita eli muodostaa uusia muistijälkiä [2]. Muistiliiton mukaan oppimisessa on kyse aktiivisesta tiedon muokkaamisesta, jäsentämisestä ja merkitysten analysoimisesta [3]. Ihminen siis pystyy muokkaamaan ja jäsentelemään oppimiaan asioita aivoissaan. Tämä on hyvä ominaisuus, koska jäsentämällä asiat hahmottuvat paremmin. Siksi esimerkiksi ajatuskartan tekeminen usein auttaa asioiden ymmärtämistä sekä muistamista. Jo opittujen asioiden muokkaamiskyky on myös tarpeellinen taito. Kun vanhoista asioista saadaan uutta ja parempaa tietoa, on hyvä, että asiat voidaan päivittää aivoissa ajantasalle. Entä olisiko kaikki tämä mahdollista myös tietokoneohjelmalle? Voisiko sekin jäsentää ja muokata tietoa tietokannassaan samalla tavalla kuin ihminen? Ihminen ei tiedä maailmasta mitään syntyessään, mutta pikkuhiljaa elämänsä aikana hän kykenee aistien ja muistin avulla kasaamaan itselleen verrattain suuren tietomäärän. Samalla kun ihminen jäsentää oppimansa tiedot, hän ymmärtää myös asioiden välisiä relaatioita. Ohjelman, joka ei tiedä maailmasta mitään, tulisi siis opetella jokainen asia alusta alkaen ilman aisteja. Jotta tietokoneohjelma voisi oppia samalla tavalla kuin ihminen, senkin tulisi ymmärtää asioiden välisiä suhteita. Ihmisen kaltaiseen tiedon tallennukseen ja asioiden välisten relaatioiden ymmärtämiseen tarvitaan semanttista muistia [4]. Semanttinen muisti mahdollistaa ihmisen kaltaisen oppimisen, asioiden säilyttämisen ja niiden mielekkään jäsentämisen jo olemassa olevaan tietoon. Oppimisen yhtenä tärkeänä osana on myös kielen ymmärtäminen. Ohjelmalle luonnollisen kielen ymmärtäminen on vaikeaa, koska etenkin suomen kielessä on monimutkaisia lauserakenteita. Näiden lauserakenteiden sekä sanojen merkitysten ymmärtäminen on tärkeä osa oppivaa tekoälyä. Tässä kandidaatintyössä perehdytään tekoälyyn, semanttiseen muistiin ja luonnollisen kielen käsittelyyn. Dokumentissa käydään läpi tekoälyn erilaisia määritelmiä, joita hyödynnetään laitteen toteutuksessa. Tämän lisäksi esitellään semanttisen muistin rakennetta ja luonnolisen kielen ymmärryksen eri tasoja. Dokumentissa esitellään työssä käytetty ratkaisumenetelmä ja tulokset, joita ratkaisulla saavutettiin. Lopuksi käydään läpi testaustuloksia ja pohditaan, kuinka laitetta voitaisiin kehittää tulevaisuudessa.
10 10 2. TAUSTA Tekoälyn tutkimus on verrattain uusi tieteenala. Tekoälyn tutkiminen ja toteuttaminen alkoivat toisen maailmansodan jälkeen. Tekoälyn englanninkielinen termi artificial intelligence keksittiin vuonna 1956 [5]. Tekoäly sisältää useita eri tutkimusalueita yksinkertaisista tehtävistä vaativiin toteutuksiin. Tekoälyä ei hyödynnetä ainoastaan tietotekniikassa, vaan sitä käytetään myös jokapäiväisissä laitteissa ja suurilla tehdaslinjoilla. Esimerkiksi lasten lelut ovat nykyään hyvin älykkäitä [6] ja tehtaissa tuotantoa voidaan ohjata älykkäillä laitteilla [7]. Tekoälyllä ei ole yhtä täydellistä määritelmää. Stuart Russell ja Peter Norvig esittelevät kirjassaan [5] tekoälyn erilaisia määritelmiä, jotka voidaan luokitella neljään eri kategoriaan: Laitteet, jotka ajattelevat kuin ihmiset Uusi jännittävä pyrkimys saada tietokoneet ajattelemaan... koneita, joilla on järki, sanatarkasti määriteltynä (Haugeland J.,1985) [8] Laitteet, jotka käyttäytyvät kuin ihmiset Taito luoda koneita, jotka kykenevät suorittamaan toimintoja, joihin tarvittaisiin ihmisten älykkyyttä (Kurzweil R., 1990) [9] Laitteet, jotka ajattelevat rationaalisesti Tutkimus mielen kykyjen toteuttamisesta laskennallisten mallien kautta (E. Charniak and C. McDermott, 1985) [10] Laitteet, jotka käyttäytyvät rationaalisesti Tietotekniikan tutkimuksen haarauma, jossa keskitytään automaattisen älykkyyden käyttäytymiseen (G. F. Luger and W. A. Stubblefield, 1993) [11] Mikään näistä kategorioista ei yksinään riitä kuvaamaan tämän työn toteutusta, vaan eri kategorioita sovelletaan työn eri osa-alueissa. Näiden luokitusten lisäksi työssä tärkeitä käsitteitä ja välineitä ovat semanttinen muisti, luonnollisen kielen tulkinta, Kotussanalista sekä käytetty laitteisto Laitteet, jotka ajattelevat kuin ihmiset Ennen kuin voidaan sanoa, että laite ajattelee kuin ihminen, tulee määritellä tarkasti, kuinka ihminen ajattelee. Ihmisen ajattelua voidaan tutkia kahdella tavalla [5]: psykologisten kokemusten kautta tai introspektion kautta eli yrittäen tavoittaa omat ajatuksemme ennen kuin ne unohtuvat. Russel toteaa Kun meillä on riittävän tarkka teoria ajattelusta, on se mahdollista ilmentää tietokoneohjelmana. [5] Ihmisen kaltaista ajattelua on mallinnettu yleisellä ongelman ratkaisijalla.yleinen ongelman ratkaisija on laite, joka ajattelee ja ratkoo loogisia ongelmia samalla tavalla kuin ihminen. Vuonna 1961 A. Newell ja H. A. Simon kehittivät GPS-ohjelman, joka ratkaisee ongelmia, jotka voidaan esittää objektien ja operaattoreiden avulla [12]. Newellin mukaan operaattori on sellainen asia, jota voidaan soveltaa tiettyihin objekteihin tuottamaan erilaisia objekteja [12].
11 Laitteet, jotka käyttäytyvät kuin ihmiset Vuonna 1950 Alan Turing suunnitteli Turing-kokeen, jonka avulla oli tarkoitus saavuttaa tyydyttävä älykkyyden määritelmä. Turingin mukaan älykäs käyttäytyminen on kyky saavuttaa ihmisen tasoinen suoritus kaikissa kognitiivisissa tehtävissä, riittävästi huijatakseen kuulustelijaa [5]. Turing-kokeessa ihminen kommunikoi laitteen tai ihmisen kanssa kirjoituskoneen välityksellä. Laite on läpäissyt Turing-kokeen, mikäli testaaja ei osaa erottaa, kommunikoiko hän koneen vai ihmisen kanssa. Kokeessa laitteen täytyy: pystyä kommunikoimaan menestyksekkäästi jollakin ihmiskielellä osata esittää älykkyytensä jakamalla tietoaan käyttää tietoaan vastaamalla kysymyksiin ja tekemällä uusia johtopäätöksiä sopeutua uusiin olosuhteisiin sekä huomata ja yleistää erilaisia malleja 2.3. Laitteet, jotka ajattelevat rationaalisesti Rationaalinen ajattelu johtaa loogiseen ajatteluun, jossa yhdestä asiasta voidaan päätellä ja olettaa isompia kokonaisuuksia. Esimerkiksi voidaan päätellä labradorinnoutajan olevan nisäkäs, koska labradorinnoutaja on koira ja kaikki koirat ovat nisäkkäitä luvun loogikot kehittivät tarkan notaation kaikenlaisille väittämille ja relaatioille. Jo vuonna 1965 oli olemassa ohjelmia, jotka pystyivät periaatteessa ratkaisemaan minkä tahansa ratkaistavissa olevan ongelman kuvattuna loogisella notaatiolla. [5] Lähestymistavassa on myös ongelmia. Ei ole helppoa kääntää vapaamuotoista tietoa tarkkaan loogiseen notaatioon varsinkaan, jos tieto ei ole täysin varmaa. Lisäksi on eri asia ratkaista ongelma teoriassa kuin ratkaista se käytännössä. Nämä ongelmat ovat esillä myös muilla ratkaisutavoilla järkeilevillä järjestelmillä.[5] 2.4. Laitteet, jotka käyttäytyvät rationaalisesti Rationaalisesti käyttäytyvien laitteiden voidaan olettaa esimerkiksi toimivan itsenäisesti, tarkkailevan ympäristöään, säilyttävän toimintakykynsä pitkän aikajakson ajan sekä kykenevän mukautumaan muutoksiin. Niiden toteuttamisessa tarvitaan myös rationaalisesti ajattelevien laitteiden toteutuksia. Oikeiden päätelmien tekeminen on usein osa rationaalisia laitteita. Toisaalta laitteiden täytyy myös pystyä toimimaan tilanteissa, joissa ei ole yhtä täysin varmaa tapaa ratkaista ongelma. [5] 2.5. Semanttinen muisti ja sen määritelmä Ihmisen kaltainen ymmärrys maailmasta olisi mahdotonta ilman semanttista muistia, tiedon järjestelmällistä tallennusta sekä käsitteitä ja ymmärrystä niiden välisistä suhteista. Julian Szymanski määrittelee semanttisen muistin pysyväksi käsitteellisen tiedon varastoksi. Pysyvyys tarkoittaa sitä, että tietoa on kerätty koko systeemin elämän
12 12 ajan, vaikkakin vanha tieto on voitu syrjäyttää tai korjata uudella tiedolla. Käsitteellisyys tarkoittaa sitä, että muisti sisältää semanttisia suhteita sanojen välillä ja käyttää niitä luodessaan uusien käsitteiden määritelmiä [13]. Tietokoneen tai laitteen muistiin liittyy oleellisesti tietorakenne. Semanttisen tietorakenteen voi mallintaa kahdella tavalla: puurakenteella tai verkolla. Collins ja Quillian esittelevät puumallin semanttisen tiedon varastoimiseksi tietokoneen muistiin [14]. Mallissa asiat järjestetään hierarkkisesti puumallin mukaan. Jokaisella puun solmulla on erilaisia ominaisuuksia, ja nämä ominaisuudet ovat myös solmun lapsisolmuilla, mikäli lapsisolmussa ei ominaisuutta erikseen kielletä. Puumalli kuvassa 1 kuvaa hyvin asioiden välistä olla-relaatiota, mutta siinä on vaikea esittää muunlaisia suhteita asioiden välillä. Eläin ihollinen hengittävä Lintu muniva höyhenpeite Kala eväkäs ui kidukset Kanarialintu laulava keltainen Pingviini pienikokoinen lentokyvytön Lohi vaaleanpunainen syötävä Kuva 1. Semanttinen puumalli Toinen tapa rakentaa semanttinen muisti on verkko. Semanttisesti linkittynyt verkko muodostuu solmuista ja semanttisista linkeistä näiden solmujen välillä [15]. Tällä tavoin kootussa verkossa on erilaisia relaatioita solmujen välillä. Solmuilla on myös ominaisuuksia samalla tavalla kuin puurakenteessa. Semanttisen muistin mallintaminen verkkona toimii, kun halutaan, että solmujen välillä on muitakin relaatioita kuin olla-relaatio. Verkkorakenteella voidaan esittää mitä tahansa relaatioita, esimerkiksi lintu syö matoja, koira heiluttaa häntäänsä sekä ihminen ratsastaa hevosella. Semanttisen muistin verkkomallinen kuvaaminen on siis kattava ja toimiva monenlaisissa tilanteissa. Semanttisen muistin mallintamiseen voi siis käyttää kahta edellä mainittua menetelmää. Käytti hyväkseen kumpaa menetelmää vain, tulee huomioida muistin johdonmukainen rakentuminen. Kun muistiin tallennetaan uutta tietoa, täytyy pitää huoli siitä, ettei siellä olevia asioita tallenneta uudestaan. Tällä tavalla vältytään samojen asioiden päällekkäisyyksiltä. Samalla tulee myös tarkistaa, että muistin hierarkkinen rakenne säilyy. Esimerkiksi jos pitää paikkaansa, että leijona on nisäkäs, silloin nisäkäs on leijona ei voi enää pitää paikkaansa. Jos tällaisia virheitä tapahtuu muistiin tallentamisessa, koko muistin rakenne kärsii. Samalla muistiin tulee ristiriitoja, joita voi olla vaikea korjata jälkeenpäin.
13 13 kissaeläin tiikeri kala syödä olla kuulua jääkarhu kissa omistaa seepra raidallinen osata koira turkki ihminen uida Kuva 2. Semanttinen verkkomallinnus 2.6. Luonnollisen kielen käsittely Luonnollisen kielen käsittely (NLP) on tekoälyn tutkimuksen osa-alue, joka tutkii, kuinka tietokone voi ymmärtää luonnollista kieltä [16]. NLP:n tutkimus alkoi jo vuonna 1940 [17]. NLP-tutkimuksessa tähdätään ymmärrykseen siitä, kuinka ihminen käyttää ja ymmärtää kieltä. Tämän tiedon avulla voidaan kehittää erilaisia työkaluja ja tekniikoita, joiden avulla saadaan kone ymmärtämään luonnollista kieltä ja suoriutumaan sen avulla erilaisista tehtävistä kieltä käyttäen [16]. Lähes jokaisella NLP-järjestelmällä on kielioppi ja siihen liittyvä jäsentelijä [18]. Kielioppi on päättyvä määrittely mahdollisesti päättymättömälle määrälle lauseita. Jäsentelijä on algoritmi, joka analysoi lauseen ja muodostaa yhden tai useamman määritelmän lauseelle kieliopin mukaisesti. Kieliopin tulee siis määritellä rakenne, jota syötteen täytyy noudattaa. Tämän hyvin määritellyn rakenteen ansiosta jäsentelijä osaa toimia oikein. Joshin mukaan rakenteelliset määritelmät ovat välttämättömiä jatkokäsittelyn kannalta esimerkiksi semanttisen tulkinnan vuoksi [18]. Paras menetelmä esitellä luonnollisen kielen todellista käsittelyä on lähestyä asiaa kielen eri tasojen näkökulmasta. Kielen ymmärtäminen voidaan jakaa seuraaviin tasoihin [17]: fonologinen eli äänneopillinen morfologinen eli muoto-opillinen leksikaalinen eli sanastollinen
14 14 syntaktinen eli lauseopillinen semanttinen eli merkitysopillinen diskursaalinen eli keskustelunanalyyttinen pragmaattinen eli käytäntövaltainen Tässä työssä kieltä käsiteltiin etenkin syntaktisesta eli lauseopillisesta ja semanttisesta eli merkitysopillisesta näkökulmasta Syntaktinen eli lauseopillinen kielenymmärrys Syntaktinen kielenymmärryksen taso analysoi lauseessa olevia sanoja ja lauseen rakennetta [17]. Syntaktisen ymmärryksen toteuttaminen vaatii sekä kielioppia että jäsentelijää. Kieliopin noudattaminen on tärkeää, koska muussa tapauksessa jäsentelijä ei osaa tulkita lausetta oikein. Haastava tapaus on esimerkiksi se, kun käyttäjä syöttää laitteelle lauseet leijona on eläin ja eläin on leijona. Lauseet eroavat vain syntaksiltaan mutta antavat silti erilaisen merkityksen [17]. Jäsentelijä rakentuu ennalta määrätyn kieliopin perusteella ja sen mukaan tulkitsee lauseen sisällön, vaikka ei tunnistaisikaan yksittäisiä sanoja. Esimerkiksi syötteessä Koira on nisäkäs jäsentelijä ymmärtää, että jokin asia (tässä tapauksessa koira) on jotain (eli nisäkäs), ja tekee tämän perusteella ennalta määrätyt toimenpiteet Semanttinen eli merkitysopillinen kielenymmärrys Semanttinen käsittely määrittelee lauseiden mahdolliset merkitykset keskittymällä lauseen sanojen väliseen vuorovaikutukseen [17]. Tämän tason kielenymmärtämiseen sisältyy sanojen semanttista täsmennystä useilla eri merkityksillä. Semanttinen täsmennys mahdollistaa monimerkityksisille sanoille vain yhden merkityksen, jonka tulee ilmetä lauseesta. Esimerkiksi sana lehti voi tarkoittaa sekä sanomalehteä että puussa olevaa lehteä. Tällaiset sanat voidaan tulkita yksiselitteisesti, kun lauseen loppuun tulee täsmennys siitä, mistä tarkalleen on kyse. Sanan merkitys voi ilmetä myös tekstin yleisestä kontekstista [17], mutta tässä toteutuksessa se ei ollut mahdollista Kotus-sanalista Kotimaisten kielten keskus on tutkimuslaitos, jossa tutkitaan kotimaisia kieliä eli suomea ja ruotsia. Lisäksi tutkimuslaitos koordinoi saamen kielten, romanikielen ja viittomakielten lautakuntien työtä [19]. Kotuksen toimintaan kuuluu esimerkiksi sanakirjojen tekemistä sekä kielen- ja nimistönhuoltoa. Kotus-sanalista on tutkimuskeskuksen julkaisema taivutustiedoin täydennetty nykysuomen sanalista. Sanalistan tarkoitus on toimia apuvälineenä suomen kieltä käsittelevien tietokoneohjelmien ja suomenkielisten käyttöliittymien kehitystyössä [20].
15 Käytetty laitteisto Työn laitteistona käytettiin Ethernut EIR -alustaa [21] yhdistettynä monitoiminnalliseen IO-alustaan, johon kuului näppäimistö, ohjausvipu (joystick), liitin mikrofonille sekä kiihtyvyysmittari. Kuitenkaan työssä ei käytetty kyseistä IO-alustaa, vaan laitetta ohjattiin komentoriviltä, joka toimi PC:llä pyörivässä virtuaalikoneessa.
16 16 3. RATKAISUN KUVAUS 3.1. Johdanto Työ ratkaistiin käyttämällä hyväksi aiempia toteutuksia ja soveltamalla yleisiä menetelmiä. Aluksi etsittiin semanttisesta muistista tehtyjä käytännön sovelluksia. Koska mitään tähän työhön sopivaa ei löydetty, päätettiin suunnitella toteutus itse. Toteutusta suunnitellessa otettiin huomioon erilaiset tekoälyn määritelmät [5]. Mikään näistä määritelmistä ei onnistunut yksin kattamaan koko työtä, vaan niitä sovellettiin enemmän tai vähemmän toteutuksen eri osa-alueissa. Eniten työ vastaa määritelmää laitteesta, joka käyttäytyy kuin ihminen. Työssä laite suorittaa toimintoja, joihin tarvitaan ihmisten älykkyyttä [9]. Näihin toimintoihin kuuluvat oppiminen, tiedon jäsentäminen, kommunikointi muiden laitteiden kanssa sekä ihmisen ja koneen välinen vuorovaikutus käyttöliittymän avulla. Työn ohjelmistoratkaisu päätettiin jakaa neljään osaan: Käyttöliittymä Verkkorajapinta ja puskuri Tekoäly Tietorakenne Syöte Tuloste Käyttöliittymä Verkkorajapinta Puskuri Tekoäly Tietokanta 1. Kysely verkosta ja vastaus verkosta 2. Kysely verkkoon ja vastaus verkkoon 3. Käyttäjän kyselyt ja vastaukset käyttäjälle 4. Tietokantahaut Pääsäie Verkkosäie Käyttöliittymäsäie Kuva 3. Yleinen ohjelmistoratkaisu
17 Käyttöliittymä Laitteen käyttöliittymä suunniteltiin tavalliseksi konsolisyötteeksi. Laitetta ohjataan Tera Term -konsoli-ikkunan kautta. Ohjaussyötteet ovat yksinkertaisia yksi-, kaksitai kolmesanaisia suomenkielisiä lauseita, joiden avulla käyttäjä voi tallentaa tietoa laitteen tietokantaan tai tehdä kyselyjä tietokannasta. Käyttäjälle laitteesta näkyvät vain käyttäjäsäikeen tulosteet. Käyttäjäsäie ottaa Tera Termista käyttäjän kirjoittamaa syötettä kirjain kerrallaan ja tulostaa niitä sitä mukaa näytölle. Tällä tavalla varmistetaan, että käyttäjä näkee, mitä kirjoittaa, ja voi askelpalauttimella pyyhkiä kirjoittamiaan kirjaimia. Kun käyttäjä lopulta syöttää syötteen painamalla rivinvaihtopainiketta, käyttäjäsäie siirtää syötteen puskuriin. Pääsäie tarkistaa puskurin ja välittää viestin jäsentelijälle, joka jäsentelee syötteen. Jäsentelyn jälkeen tekoäly toimii syötteen mukaan. Se voi joko hakea tietokannasta käyttäjän pyytämää tietoa, lähettää kyselyn verkkoon tai se voi lisätä käyttäjän syöttämän tiedon tietokantaan. Kun jäsentelijä on lähettänyt vastauksen takaisin pääsäikeelle, pääsäie siirtää vastauksen puskuriin. Käyttäjäsäie noutaa vastauksen puskurista ja tulostaa käyttäjälle. Puskurin ansiosta käyttäjä voi kirjoittaa useampia syötteitä kerrallaan eikä vastausta tarvitse jäädä odottamaan. Ei syötettä Syöte Siirrä syöte puskuriin Tarkista, onko käyttäjältä saapunut rivinvaihtoa Hae vastaus puskurista ja tulosta käyttäjälle Vastaus Siirrä vastaus puskuriin Pääsäie hakee syötteen puskurista ja jäsentelijä suorittaa tarpeelliset toimenpiteet. Kuva 4. Käyttöliittymän tietovuokaavio 3.3. Verkkorajapinta ja puskuri Verkon vaatimuksena ohjelmalle oli SNMP-protokollan toteuttaminen. SNMP-viestikehys on toteutettu Douglas Brueyn kirjoittaman esittelyn [22] avulla. Verkkorajapinnan toteutuksessa käytettiin myös hieman hyväksi tekoälyn määritelmää laitteena, joka käyt-
18 18 täytyy rationaalisesti. Laite tarkkailee ympäristöään ja vastaanottaa muilta laitteilta tulevia viestejä ja on valmiina vastaamaan niihin. SNMP-agentilla keskustellaan muiden laitteiden kanssa. Viestitykseen käytetään SNMP-protokollan GetRequest- ja GetResponse-viestejä. GetRequest-viestillä lähetetään tiedustelu sanalle, jota ei ole löytynyt omasta tietokannasta. Tähän kyselyyn saadaan muilta vastaus GetResponse-viestillä. GetResponse-viestillä myös vastataan muiden toteutuksien kyselyihin. Toteutuksessa muita laitteita palvellaan aina, kun on aikaa. Käyttäjää palvellaan ensisijaisesti. Tarkista, onko verkosta saapunut paketteja Ei ole On Ei ole Tarkista, onko paketin muoto validi On Siirrä saapuneen paketin viesti puskuriin Tarkista, onko puskurissa verkkoon lähetettäviä viestejä On Lähetä jonon ensimmäinen viesti verkkoon Ei ole Siirry alkuun Kuva 5. Verkkorajapinnan tietovuokaavio Kyselyihin vastaaminen Kun laite saa verkosta GetRequest-viestin, se tarkistaa, että viesti on SNMP-muotoinen ja jäsentelee sen. Viestistä otetaan talteen yhteisötunnus, pyyntötunniste sekä varsinainen viesti. Näistä tiedoista muodostetaan ohjelman ymmärtämä tietorakenne, joka puskuroidaan FIFO-puskuriin. Tekoäly ottaa puskurista kyselyt ja käsittelee ne. Kysymys annetaan tekoälyssä sijaitsevalle jäsentelijälle, joka jäsentelee kysymyksen ja etsii vastauksen tietokannasta samaan tapaan kuin se etsii vastauksen käyttäjän syötteeseen. Löytynyt vastaus siirretään toiseen FIFO-puskuriin, josta verkkosäie ottaa sen ja lähettää vastauksen sille laitteelle, jolta kysely tuli. Mikäli vastausta ei löydy, laite ei lähetä verkkoon mitään Kyselyn lähettäminen ja vastauksen vastaanottaminen Verkosta tulleiden viestien avulla laite oppii uusia asioita. Kun käyttäjältä tulee kysely asiasta, johon ei ole vastausta laitteen omassa tietokannassa, siirretään käyttäjältä tullut kysely FIFO-puskuriin. Puskurista verkkosäie ottaa kyselyn ja lähettää sen GetRequest-viestinä verkkoon. Kun saadaan vastaus, verkkosäie jäsentelee saamansa
19 19 GetResponse-viestin. Varsinainen viesti siirretään jälleen FIFO-puskuriin, josta tekoäly ottaa sen. Tekoäly jäsentelee viestin ja tallentaa sen sisältämän informaation tietokantaansa sekä välittää käyttäjäsäikeelle vastauksen tulostettavaksi Tekoäly Tekoälyn toteuttaminen aloitettiin tekemällä lauserakenteiden jäsentelyfunktiot. Jäsentelyfunktiot tarkistavat lauseen rakenteen ja tekevät tarvittavat tietokantahaut lauseen sisällön perusteella. Työssä hyödynnettiin Kotus-sanalistaa suomenkielisten sanojen perusmuodon tunnistamisessa. Jos sana löytyy listasta, tiedetään, että se on jo valmiiksi perusmuodossaan eikä sitä enää tarvitse taivuttaa. Mikäli sana ei ole perusmuodossa laite yrittää taivuttaa sen perusmuotoon taivutusfunktioiden avulla. Perusmuotoon tallentaminen helpottaa tietokantahakuja ja tietokantaan tallennusta. Jäsentelyfuntio jaettiin kahteen erilaiseen osaan: yhden ja kahden sanan syötteiden sekä kolmen sanan syötteiden jäsentelyyn. Aina syötteen saadessaan jäsentelyfunktio tarkistaa, löytyvätkö syötteen sanat Kotus-sanalistasta eli ovatko sanat perusmuodossa. Jos sana ei ole perusmuodossa, taivutusfunktio yrittää taivuttaa sanan perusmuotoon. Taivutettu sana tarkistetaan uudelleen Kotus-sanalistasta. Jos sana löytyy sanalistasta, voidaan todeta taivuttamisen onnistuneen ja voidaan jatkaa jäsentelyä. Jos sana ei vieläkään löydy sanalistasta, keskeytetään jäsentely ja pyydetään käyttäjää antamaan syötteet perusmuodossa Yhden ja kahden sanan syöte Yksisanaisen syötteen saadessaan jäsentelyfunktio tarkistaa, onko se tallennettu tietokantaan solmuna tai ominaisuutena. Jos sana löytyy tietokannasta solmuna, funktio hakee tietokannasta kaikki sanaa vastaavan solmun ominaisuudet sekä solmun vanhemman. Jos sana löytyy tietokannasta ominaisuutena, funktio hakee kaikki solmut, joilla on kyseinen ominaisuus. Tietokannasta tehtyjen hakujen tulokset jäsentelyfuntio välittää pääsäikeelle, joka tulostaa ne. Jos sanaa ei löydy tietokannasta, jäsentelyfunktio tekee verkkokyselyn kyseiselle sanalle ja vastaanottaa sekä käsittelee vastauksia kolmen sekunnin ajan. Jos verkkokyselyn saamista vastauksista on opittu uutta informaatiota, tulostetaan uusi opittu tieto käyttäjälle. Kaksisanaiset syötteet ovat muotoa kerro X:stä. Kaksisanaisten syötteiden käsittely ei sinällään siis eroa millään tavalla yksisanaisten syötteiden käsittelystä. Itse syöte on ymmärrettävämpää suomen kieltä, mutta tekoälyn logiikka toimii samalla tavalla Kolmen sanan syötteet Laitteen ymmärtämät kolmen sanan lauseet voidaan jakaa kahteen osaan: kysyviin ja tietoa tallentaviin lauseisiin. Tietoa tallentavan lauseen tulee olla muotoa X on Y eli esimerkiksi kissa on eläin. X on Y:n logiikka on kuvattu kuvassa 6.
20 20 Onko X-sana tietokannassa? Ei Onko Y-sana tietokannassa solmuna? Ei Luo uusi solmu X ja aseta Y-sana sen atribuutiksi. On On Onko X-sanalla vanhempaa? On Ei Onko Y-sana tietokannassa solmuna? On Ei Tee uusi solmu X ja aseta se Y:n lapsisolmuksi. Onko Y-sana tietokannassa solmuna? Lisää Y-solmu X- solmun vanhemmaksi. Lisää X:lle uusi attribuutti Y-sana. On Ei Onko Y-solmu X- solmun yläpuolella puurakenteessa. Lisää Y-sana X- solmun attribuutiksi. On Ei Älä tee mitään. Onko X-solmu Y- solmun yläpuolella puurakenteessa? Ei Lisää Y-sana X- solmun attribuutiksi. On Älä tee mitään. Kuva 6. Olla-relaation tekoälypolku Kysyvät kolmen sanan lauseet voivat olla muotoa onko X Y tai mikä on X. Mikä-sanan tilalle on mahdollista syöttää myös sanat millainen, minkälainen ja mitä. Ensimmäisen lauseen onko X Y tapauksessa jäsentelijä tarkistaa ensin, onko X-sana omassa tietokannassa. Mikäli ei ole, lähetetään kysely verkkoon ja otetaan vastauksia vastaan kolmen sekunnin ajan. Jos X-sana kuitenkin löytyy omasta tietokannasta, tarkistetaan, onko Y-sana sen ominaisuus tai vanhempi. Mikäli Y-sana on jompikumpi näistä, lähetetään pääsäikeelle vastauksena Kyllä on ja tulostetaan se käyttäjälle. Jos X-sana löytyy tietokannasta mutta sillä ei ole Y-sanaa vanhempana eikä ominaisuutena, lähetetään kysely verkkoon. Mikä on X -muotoiset lauseet kelpaavat jäsentelijälle myös muodossa mikä X on. Näiden syötteiden tekoälyn logiikka toimii samoin kuin yhden sanan syötteissä. Syötteen kysyttävälle sanalle suoritetaan siis samanlainen käsittely kuin yhden sanan syötteelle.
21 Tietorakenne Tietorakenteen toteutuksessa käytettiin pohjana puumallia[14]. Toteutukseen valittiin puumalli, koska työ haluttiin rajata vain olla-relaatioon, jolloin verkkomallinen tietorakenne olisi ollut liian kattava. Tietokannan rakentamisessa hyödynnettiin määritelmää laitteista, jotka ajattelevat rationaalisesti. Työn laite ymmärtää asioiden välisiä relaatioita ja osaa yhdistää yksittäisiä asioita suurempaan kokonaisuuteen. Laitteen tietorakenne on rakenteeltaan äärettömästi haarautuva hakupuu. Siihen voidaan lisätä solmuja ja siitä voidaan poistaa solmuja. Jokainen puun solmu on linkitetty lista, joka pitää sisällään solmun ominaisuudet yleiskielisenä tekstinä. Puussa lapsisolmu perii vanhempansa ominaisuudet. Näitä ominaisuuksia voi lisätä tietorakenteeseen ja poistaa siitä. Jokainen puussa oleva solmu tai ominaisuus sisältää tiedon siitä, mistä tämä tieto on hankittu. Hakujen nopeuttamiseksi hakupuusta tehtiin aakkosellinen hakemisto, joka sisältää muistiosoitteet puun solmuihin ja ominaisuuksiin. Aakkoselliseen hakemistoon ladattiin lisäksi Kotus-sanalista, jota käytettiin sanamuotojen jäsentämisessä. Semanttinen tietorakenne tallennettiin ja ladattiin laitteen massamuistista.
22 22 4. SAAVUTUKSET 4.1. Toiminnallisuus Laitteen parhaimmat osa-alueet olivat tietokannan ja verkon toteutus. Tietokannan hakupuu toimi selkeästi, ja sinne saatiin tallennettua tietoa järkevällä tavalla. Tiedon hakeminen tietokannasta oli nopeaa ja vaivatonta käyttäjälle. Tämän lisäksi tietokannan pystyi ottamaan talteen muistikortille ja valmiin tietokannan pystyi antamaan laitteelle muistikortin avulla. Laitteen verkkoratkaisussa oli otettu hyvin huomioon tulevien viestien käsittely. Laitteen puskuriin sopi vain tietyn verran viestejä. Mikäli puskuri oli täynnä, laite ei enää käsitellyt tulevia viestejä vaan odotti, kunnes puskurissa oli taas tilaa. Puskuroinnilla vältettiin laitteen heikentynyt toiminta silloin, kun verkossa oli paljon liikennettä. Verkko-osion toiminnassa oleellista oli myös tulleen viestin yhteisötunnuksen ja pyyntötunnisteen ottaminen talteen. Tämän ansiosta laite osasi lähettää vastauksen sille laitteelle, joka sitä pyysi. Puskurointia käytettiin hyväksi myös käyttäjä-tekoäly-rajapinnassa. Kaikki käyttäjältä tulevat ja käyttäjälle menevät syötteet ohjattiin kulkemaan puskurin kautta. Tällä pystyttiin varmistamaan, että laite toimii loogisesti. Kun käyttäjän syötteet käsiteltiin tulojärjestyksessä, tulosteissa ei tapahtunut päällekkäisyyksiä. Tekoälyn toteutuksessa hyödynnettiin asioiden välistä olla-relaatioita. Tekoäly osasi tallentaa tietoa tietokantaan kyseisen relaation mukaan. Lisäksi tekoäly osasi hakea tietoa tietokannasta, kun käyttäjä oli sitä pyytänyt. Tekoäly käsitteli jossakin määrin yleistäviä ristiriitoja. Se kertoi käyttäjälle suoraan ei voida yleistää näin, jos käyttäjä oli syöttänyt liian yleistävää tietoa. Näin pyrittiin välttämään virheellisen tiedon tallennusta. Toteutus ymmärsi suomen kieltä hyvin rajoitetusti. Laitteelle pystyi syöttämään yhden, kahden ja kolmen sanan lauseita. Lauseiden tuli noudattaa tiettyä lauserakennetta, jotta tekoäly osaisi käsitellä ne. Laite tarkisti annetusta syötteestä ensin sen, olivatko sanat Kotus-sanalistassa eli perusmuodossaan. Mikäli sanat eivät olleet perusmuotoisia, laite pyrki taivuttamaan ne perusmuotoon ja tarkistamaan uudelleen sanalistan avulla. Taivuttaminen onnistui harvoin, ja esimerkiksi erisnimiä Kotus-sanalistassa ei ollut ollenkaan Testaussuunnitelma Ohjelmistotestaus on kaikessa ohjelmistokehityksessä olennainen osa, jonka merkitystä usein vähätellään. Tässä projektissa ohjelma testattiin verrattain laajasti. Tehdyt testit voidaan jakaa karkeasti seuraaviin luokkiin: Käyttöliittymätestaus Verkkotestaus Tietorakennetestaus Kielenymmärrystestaus
23 Käyttöliittymätestaus Käyttöliittymätestauksessa pyrittiin testaamaan ohjelman toiminta tietokone-ihminenrajapinnassa. Käyttöliittymää testattiin niin oikein kuin väärinkin muodostetuilla syötteillä. Lisäksi ohjelman käytettävyyttä testattiin ihmisillä, jotka eivät olleet käyttäneet ohjelmaa aiemmin eivätkä olleet osallistuneet ohjelman kehittämiseen Verkkotestaus Verkkotesteillä pyrittiin varmistamaan, että ohjelma toimii verkossa spesifikaation mukaan. Ohjelmaa testattiin niin oman kopionsa kanssa kuin muiden vastaavien toteutusten kanssa Kielenymmärrystestaus Tehdyt kielenymmärrystestit koostuivat testeistä, joilla pyrittiin selvittämään ohjelman kyky parsia, eritellä ja ymmärtää kirjoitettua luonnollista kieltä. Testeissä käytettiin sanoja, jotka ohjelman tiedettiin tuntevan, sekä sanoja, jotka olivat ohjelmalle entuudestaan tuntemattomia. Sanoja syötettin niin perusmuodoissa kuin eri taivutusmuodoissakin. Huomiota kiinnitettiin ohjelman kykyyn poimia tekstistä sanojen välisiä riippuvuuksia Tietorakennetestaus Tietorakennetestauksella pyrittiin varmentamaan, että ohjelman sisäisen tietorakenne toimi oikein ja riittävän nopeasti. Tietorakenteelle tehtiin rasitustesti, jossa tietokantaan syötettiin suuri määrä tietoa. Tämä toteutettiin ajamalla tietokantaan Kotus-sanalistan sanoista satunnaisesti generoitu testiaineisto. Testiaineisto sisälsi solmua Testien tulokset Käyttöliittymätestien tulokset Käyttöliittymätestit tehtiin sellaisilla käyttäjillä, jotka eivät olleet osallistuneet laitteen kehittämiseen. Testaajille annettiin hyvin vähän ennakkotietoa laitteen toiminnasta. Heille kerrottiin ainoastaan työn aihe ja tarkoitus. Tällä tavalla varmistettiin, että kaikki käyttöä helpottavat ohjeet tulisivat ainoastaan laitteelta itseltään. Käyttöliittymätestit oli luokiteltu kahteen osa-alueeseen: laitteen arviointiin väittämien avulla ja laitteen arviointiin vapaa sana -periaatteella. Vapaa sana -osion perusteella todettiin, että laitteen antamat käyttöohjeet olivat joidenkin testaajien mielestä hieman epäselvät. Käyttöohjeista saatiin pääasiallisesti seuraavanlaisia kommentteja: Ohjeet olisivat voineet olla selkeämmät ja Käyttöohjeet olivat suurimmilta osin selkeät. Tämän lisäksi saatiin palautetta yleisesti laitteen toi-
24 24 minnasta. Laitteen toimintaa testaajat arvioivat seuraavasti: Yksinkertainen ja selkeälinjainen käyttöliittymä, Syötteet olivat asianmukaisella syntaksilla ja Helppokäyttöinen vaikka sanastossa olikin puutteita. Testaajat arvioivat käyttöliittymää myös heille esitettyjen väittämien perusteella. Testaajien tuli kertoa mielipiteensä jokaisesta väitteestä asteikolla 1 5. Testitulokset osoittavat, että laite oli helppokäyttöinen ja laitteen käyttö oli nopeaa ja vaivatonta. Tuloksista nähtiin myös, että laitteen suomen kielen ymmärtäminen oli heikkoa ja käyttöohjeissa olisi hieman parannuksen varaa. Käyttöliittymäkyselykaavake on liitteenä. Taulukko 1. Käyttöliittymätestien tuloksia Väittämä: Laitetta oli helppo käyttää. 0 % 0 % 33 % 50 % 17 % Laitteen antamat käyttöohjeet olivat selkeät. 17 % 17 % 33 % 33 % 0 % Laitteen käyttö oli nopeaa ja vaivatonta. 0 % 0 % 17 % 50 % 33 % Laite ymmärsi suomen kieltä hyvin. 0 % 83 % 17 % 0 % 0 % 1. Täysin eri mieltä. 5. Täysin samaa mieltä Verkkotestien tulokset Verkkotestien perusteella ohjelman verkkopuoli on onnistunut todella hyvin. Testien aikana todettiin laitteen puskurien toimivan oikein, eikä vilkas verkkoliikenne vaikuttanut laitteen toimintaan. Laite osasi keskustella oman kopionsa kanssa verkon välityksellä ilman ongelmia. Ohjelmaan ei myöskään tarvinnut tehdä paljoa muutoksia, jotta se saatiin toimimaan muiden toteutuksien kanssa. Laite osasi lähettää SNMPmuotoisia verkkoviestejä, jotka muut toteutukset osasivat tulkita oikein. Laite osasi myös vastaanottaa vastauksia omiin kysymyksiinsä. Muiden toteutuksien viestit tulkittiin oikein ja niihin osattiin vastata Kielenymmärrystestien tulokset Laitteelle syötettiin alla oleva teksti lause kerrallaan ja tietokannan sisältö tarkistettiin. Teksti on kirjoitettu itse ja sitä tehdessä on otettu huomioon joitain laitteen rajoituksia. mangusti on petoeläin. mungo on yksi mangusti laji. mangusti on pieni ja pyöreä. elmeri on mangusti. myös simo ja timo ovat mangusteja. mangusti on ruskea. mangusti voi olla myös harmaa. eläin on elollinen. tasalämpöinen on eläin. mangusti on tasalämpöinen. mangusti on nopea. elmeri on ruskeanharmaa. elmeri on myös hoikka. yleisesti tiedetään, että simo on suuri mangusti. mangustilla on korvat, jotka ovat leveät sekä pyöreät. mangusti on lyhytjalkainen. mangustin kuono on terävä. eilen uutisissa kerrottiin, että mangusti on tarkkanäköinen. mangusti on oppivainen. mangustit ovat ketteriä eläimiä sekä hyviä tunnelin kaivajia.
25 25 Tämän syötteen jälkeen ohjelmalle tehtiin kysely mikä on mangusti. Ohjelma vastasi: mangusti on petoeläin, ruskea, nopea, lyhytjalkainen ja oppivainen. mangusti on tasalämpöinen. Ohjelma oli ymmärtänyt tasalämpöisen olevan eläin ja eläimen olevan elollinen. Ohjelma osasi myös vastata oikein kysymykseen onko mangusti eläin. Relaatio osattiin siis tallentaa tietokantaan, ja ohjelma ymmärsi lähes kaikki olla-relaatiot. Lauseet, joissa oli erisnimiä, jäivät tulkitsematta. Syöte jouduttiin myös antamaan ilman isoja alkukirjaimia, sillä ohjelma ei käsitellyt isoja ja pieniä kirjaimia samalla tavalla. Laitteelle syötettiin myös pitkiä tieteellisiä tekstejä, mutta lauserakenteet ja sanojen taivutukset olivat liian monimutkaisia, jotta niistä olisi saatu tuloksia. Syötteiden kopioiminen esimerkiksi Wikipediasta tai muista verkkolähteistä ei myöskään tuottanut tuloksia Tietorakennetestien tulokset Testin aikana tietokannan rakenne pysyi koossa eikä laitteella havaittu suoritusongelmia. Tietorakenne selvisi testeistä hyvin ja osoitti sen toimivansa myös isoilla tietomäärillä Pohdinta Testitulosten perusteella voidaan todeta, että laitteeseen jäi vielä paljon parannettavaa. Laitteen heikko kielenymmärtäminen vaikeutti laitteen käytettävyyttä käyttöliittymätestien perusteella. Sanojen taivuttaminen oli haastava ongelma, ja juuri siksi laite ei hallitse suomen kieltä hyvin. Tällä oli vaikutusta ymmärrystesteissä käytettyjen testiaineistojen ymmärtämiseen. Kielenymmärrystestissä kävi ilmi tekoälyn suurimpia heikkouksia. Testien tulokset olisivat olleet parempia, jos ohjelma olisi ymmärtänyt monimutkaisempia, vaihtelevampia lauserakenteita. Ohjelman rajoittaminen pelkästään käsitteiden opettamiseen kolmisanaisilla lauseilla vaikuttaa valtavasti mahdollisuuteen opettaa ohjelmaa oikeilla teksteillä. Erisnimien ja Kotuksen sanalistasta puuttuvien sanojen osaamattomuus vaikuttivat myös ymmärrykseen. Verkkotesteistä voidaan päätellä, että verkon toteutus oli onnistunut hyvin. Laite osasi hyödyntää verkosta löytyviä muita toteutuksia oppimalla niiden lähettämistä viesteistä. Verkon toteutuksessa päästiin sille tasolle, mitä oli suunniteltu ja ehkä hieman sen ylikin. Yleisesti voidaan todeta, että projekti sujui melko hyvin. Kenelläkään ryhmän jäsenellä ei ollut aiempaa kokemusta näin laajasta projektista, joten projektin aikana opittiin paljon projektinhallinnasta kantapään kautta. Suurimpana ongelmana projektissa oli hieman heikoksi jäänyt suunnittelu. Moni asia jouduttiin toteuttamaan uudelleen, koska suunnitelmat eivät olleet tarpeeksi tarkat. Lopputuloksena voidaan kuitenkin todeta, että jatkokehittelyllä laite toimisi paremmin ja selviytyisi sujuvammin käyttötesteistä.
26 26 5. PROJEKTIN KUVAUS Ensimmäinen vaihe projektin alussa oli ryhmän muodostaminen. Ryhmä yritettiin muodostaa henkilöistä, joilla oli samanlaiset tavoitteet ja osaamistaso. Tämä kävi varsin helposti, ja todellinen työ päästiin aloittamaan heti. Projekti oli laaja, joten työn jakaminen oli tärkeää. Lisäksi ajankäyttöä seurattiin ja tuntimäärät laskettiin jokaiselle ryhmänjäsenelle erikseen Työnjako Projektin alussa tutustuttiin aiheeseen etsimällä sopivia lähteitä. Lähteitä lukemalla saatiin taustatietoa aiheesta ja käsitys siitä, mitä lähdetään tekemään. Taustatutkimuksen jälkeen toteutettiin SNMP-protokolla. Tämä tehtiin yhdessä, koska työnjako oli hankalaa. Kun SNMP-protokolla oli saatu toimimaan, voitiin aloittaa laitteen muiden toimintojen toteuttaminen. Työ jaettiin kolmeen osaan: jäsentelijään, tietokantaan ja verkkopuoleen. Jako oli toimiva, ja kun jokainen oli työstänyt omia osa-alueitaan, toteutus yhdistettiin kokonaisuudeksi. Yhdistämisen jälkeen työnjako tehtiin uudelleen. Toteutus jaettiin siten, että kaksi ryhmän jäsentä työskenteli tekoälyn sekä jäsentelijän parissa ja yksi työsti tietokantaa sekä verkkopuolta. Projektin alussa rakennettu verkkopuoli piti toteuttaa kokonaan uudestaan, koska se ei enää kattanut tekoälyn kaikkia tarpeita. Dokumentaation kirjoittamisen työnjako ei ollut tarkka. Jokainen osallistui dokumentaation kirjoittamiseen, mutta se, joka kirjoitti vähemmän, ohjelmoi enemmän ja päinvastoin. Tällä tavalla työnjako on kokonaisuudessaan onnistunut hyvin Ajankäyttö Ajankäyttö on jakautunut ryhmäläisten kesken seuraavalla tavalla: Taulukko 2. Henkilökohtaiset tuntijakaumat Kehitys Tutkimus Yhteensä Karppinen Lyttinen Nikula Yhteensä
27 Tunnit Kehitys Tutkimus Yhteensä Karppinen Lyttinen Nikula Kuva 7. Tuntien jakautuminen eri osa-alueille. Tutkimus (209 tuntia) 33% 67% Kehitys (429 tuntia) Kuva 8. Projektiin kuluneiden tuntien jakautuminen eri tehtäviin
28 28 6. TULEVA KEHITYS Tulevaisuudessa laitetta voitaisiin kehittää monella tapaa. Toteutuksessa suurimpina puutteina havaittiin suomen kielen lauserakenteiden ymmärtäminen, sanojen taivuttaminen, lähteen luotettavuuden arviointi ja ristiriitojen ratkominen. Näihin puutteisiin toivottaisiin tulevaisuudessa löytyvän parannusta. Laitteen luonnollisen kielen ymmärtämistä voisi kehittää sille tasolle, että se ymmärtäisi täysin erilaisia lauserakenteita. Olisi hyvä, jos laite ymmärtäisi monella eri tavalla kirjoitettuja suomenkielisiä lauseita. Laite voisi esimerkiksi tunnistaa verbit ja niiden perusteella kehittää omaa tietämystään. Tällä hetkellä laite ymmärtää vain olla-verbin, mutta sen lisäksi se voisi ymmärtää esimerkiksi osata-, voida-, pitää- sekä omistaaverbit. Näiden verbien avulla laite pystyisi oppimaan monipuolisia virkeyhdistelmiä, kuten Isäntä omistaa koiran. Koira osaa haukkua ja se pitää uimisesta. Lauserakenteiden ymmärtämisen lisäksi hyvä kehityksen kohde olisi kyky taivuttaa sanat perusmuotoon. Suomen kielen sanoille on monenlaisia taivutuksia, ja niille on lukemattomia poikkeuksia. Kaikkien näiden taivutusten ja poikkeusten käsittely olisi hyvä ominaisuus laitteessa. Mikäli laite osaisi taivuttaa kaikki sanat perusmuotoon ja perusmuodosta takaisin tarvittavaan taivutusmuotoon, laitteen tietokanta säilyisi järjestyksessä. Tietokannassa tieto olisi vain perusmuodossa, ja kun laite tulostaisi käyttäjälle tietoa, se osaisi muodostaa kunnollisen suomen kielen lauseen taivuttaen sanat oikeaan muotoonsa. Jokaisella yhteisötunnuksella tulisi olla oma luotettavuusarvo, jota pystyisi laskemaan. Yhteisötunnuksen luotettavuusarvoa laskettaisiin silloin, kun laite huomaisi ristiriidan oman tietokantansa ja kyseisellä yhteisötunnuksella lähetetyn informaation kanssa. Luotettavuusarvoa voitaisiin hyödyntää myös silloin, kun verkosta saapuisi monta erilaista vastausta kysymykseen ja näissä vastauksissa olisi ristiriitaista tietoa. Tällöin laite voisi katsoa lähteen luotettavuuden jokaisen vastauksen yhteisötunnuksen perusteella ja ratkoa ristiriidat siten, ettei epäluotettava tieto päätyisi tietokantaan ollenkaan. Ristiriitoja voitaisiin ratkoa myös tietokannassa. Kun tietokantaan olisi karttunut tarpeeksi tietoa, laite voisi oikeellistaa tietokannan ajon aikana. Oikeellistamisessa laite kävisi tietokannan läpi ja etsisi sieltä samankaltaisuuksia sekä ristiriitoja. Mikäli samankaltaisuutta ja ristiriitoja löytyisi, laite muokkaisi tietokantaa eheämmäksi ja samalla poistaisi sellaista tietoa, joka olisi tullut yhteisötunnukselta, jolla olisi muokkaamishetkellä huono luotettavuusarvo. Tällä tavalla varmennettaisiin se, että tietokannan sisältö pysyisi luotettavana myös silloin, jos jokin yhteisötunnus on aluksi syöttänyt väärää tietoa. Kyseisen yhteisötunnuksen antama tieto poistettaisiin myöhemmin, jos yhteisötunnuksen luotettavuusarvo olisi heikentynyt huomattavasti. Mikäli laite ei itse osaisi ratkaista ristiriitatilannetta, se voisi kysyä käyttäjältä neuvoa. Tällainen tapaus olisi esimerkiksi se, jos kahdella eri lähteellä olisi sama luotettavuusarvo mutta silti niiltä tullut tieto olisi ristiriitaista. Tämänkaltaisissa tilanteissa uskottaisiin aina ensisijaisesti käyttäjää. Näillä muutoksilla laite toimisi paremmin ja samalla tietokanta säilyisi eheämpänä. Laitteen käytettävyys myös paranisi, kun suomen kielen sanasto ja lauserakenteet olisivat paremmin käsiteltävissä. Lisäksi laitteen tekoäly toimisi järkevämmin, kun se osaisi käsitellä monenlaisia lauserakenteita.
29 29 7. YHTEENVETO Tässä työssä tehtiin oppiva tekoäly sulautetulle järjestelmälle. Oppivan tekoälyn toteutukseen käytettiin semanttista muistia. Semanttinen muisti luotiin puumalliseen tietokantaan, joka käsittelee asioiden relaatioita. Tietokannan luomiseen tehtiin luonnollista kieltä tunnistavia funktioita, jotka jäsentelevät tietoa ja tallentavat sen tietokantaan. Puumallimenetelmä valittiin sen yksinkertaisen toteutuksen vuoksi. Työn ratkaisu on verrattain yksinkertainen, mutta siitä huolimatta laite selviytyi tietorakenne- ja verkkotesteistä hyvin. Ratkaisussa käytettiin hyväksi jonkin verran aiempia tutkimuksia, mutta suurimmilta osin laite suunniteltiin kokonaan itse. Työn parhaimpina puolina voidaan ehdottomasti pitää tietorakenteen ja verkon toteutusta. Tietokannan tekeminen alusta alkaen itse oli haastavaa mutta samalla kannattavaa. Tällä tavalla saatiin luotua juuri sellainen tietokanta, jota laite osasi hyödyntää mahdollisimman hyvin. Tietokantatestien perusteella voidaan todeta, että tieto tallentui järkevästi puurakenteeseen. Tietokannan rakenne oli selkeä sen yksinkertaisuuden vuoksi. Tiedot tallentuivat tietokantaan hierarkkisesti olla-relaation mukaan. Tietokantaan pystyi myös syöttämään valtavan määrän tietoa ilman, että tietorakenne olisi mennyt sekaisin. Tietokanta selviytyi siis hyvin rasitustesteistä. Verkon toteutus onnistui myös hyvin. Testien perusteella laite oppi uusia asioita verkosta ja osasi vastata muiden toteutusten verkkokyselyihin. Verkon paras puoli oli puskuroinnin toteutus. Laite ei missään vaiheessa mennyt sekaisin liian vilkkaasta verkkoliikenteestä, vaan se käsitteli viestit kaikessa rauhassa puskurista. Verkon toiminta oli siis varmaa ja luotettavaa. Vaikka laitteeseen jäi vielä parannuksen varaa ennen kaikkea suomenkielisten lauserakenteiden jäsentelyssä ja sanojen taivuttamisessa, voidaan siitä huolimatta todeta, että kokonaisuutena työ on hyvin onnistunut. Työssä saatiin toteutettua lähes alkuperäisen suunnitelman kaltaiset ominaisuudet. Ryhmän jäsenet pääsivät tavoitteeseensa ja saivat projektin valmiiksi aikataulussaan.
30 30 8. LÄHTEET [1] Ayres A.J. Sensory integration and the child. Western Psychological Services, Los Angeles, California, p. [2] Juntunen J. (2000) Aivot työssä. Duodecim 116, p [3] Muistiliitto (accessed ), Alzheimer centralförbundet. URL: [4] Dubuc B. (accessed ), The brain from top to bottom. URL: http: //thebrain.mcgill.ca/flash/index_a.html. [5] Russel S.J. & Norvig P. (2003) Artificial intelligence : a modern approach. Prentice Hall, Upper Saddle River, NJ, second ed. [6] MCF III I. (accessed ), Artificial intelligence embedded toys and dolls. URL: [7] Nilsson N.J. (1982) Principles of artificial intelligence. Springer, Berlin. [8] Haugeland J. (1985) Artificial Intelligence: The Very Idea. MIT Press, Cambridge, Massachusetts. [9] Kurzweil R. (1990) The Age of Intelligent Machines. MIT Press, Cambridge, Massachusetts. [10] Charniak E. & McDermott C. (1985) Introduction to Artificial Intelligence. Addison-Wesley, Reading, Massachusetts. [11] Luger G.F. & Stubblefieldl W.A. (1993) Artificial Intelligence: Structures and Strategies for Complex Problem Solving. Benjamin/Cummings, Redwood City, California. [12] A. Newell H. A. Simon J.C.S. (1959) Snort - lightweight intrusion detection for networks. In: Proceedings of the International Conference on Information Processing, p [13] Szymanski J., Sarnatowicz T. & Duch W. (2007), Towards avatars with artificial minds: Role of semantic memory. URL: [14] Collins A.M. & Quillan M.R. (1969) Retrieval time from semantic memory. Journal of Verbal Learning and Verbal Behavior 8. [15] Zhuge H. (2007) Autonomous semantic link networking model for the knowledge grid. Concurrency and Computation: Practice and Experience 19, pp [16] Chowdhury G.G. (2005) Natural language processing. Annual Review of Information Science and Technology 37, pp [17] Liddy E.D. (2001) Encyclopedia of Library and Information Science. Marcel Decker, Inc., Redwood City, California.
Alkukartoitus Opiskeluvalmiudet
Alkukartoitus Opiskeluvalmiudet Päivämäärä.. Oppilaitos.. Nimi.. Tehtävä 1 Millainen kielenoppija sinä olet? Merkitse rastilla (x) lauseet, jotka kertovat sinun tyylistäsi oppia ja käyttää kieltä. 1. Muistan
LisätiedotYhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?
Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö
LisätiedotKieli merkitys ja logiikka. 2: Helpot ja monimutkaiset. Luento 2. Monimutkaiset ongelmat. Monimutkaiset ongelmat
Luento 2. Kieli merkitys ja logiikka 2: Helpot ja monimutkaiset Helpot ja monimutkaiset ongelmat Tehtävä: etsi säkillinen rahaa talosta, jossa on monta huonetta. Ratkaisu: täydellinen haku käy huoneet
LisätiedotKirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
LisätiedotBerlitzin taitotaso 1 CEF-taso A 1
t Berlitzin taitotaso 1 CEF-taso A 1 Ymmärtää ja osaa käyttää tuttuja, jokapäiväisiä ilmauksia ja yksinkertaisia lauseita. Osaa esitellä itsensä ja kysyä muilta perustietoja kuten asuinpaikkaa, vointia
LisätiedotPääkaupunkiseudun kuntien päivähoidon asiakaskysely 2011
Pääkaupunkiseudun kuntien päivähoidon asiakaskysely 2011 Kyselyn tavoite ja toteutus Kyselyssä selvitettiin päivähoidossa olevien lasten vanhempien arvioita lapsensa päivähoidosta pääkaupunkiseudun neljässä
LisätiedotRekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
LisätiedotARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015
ARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015 Sisältö ARVI-menettelyn perusteet... 1 Arvioinnin syöttäminen... 2 Arvion lähettäminen TE-toimistoon... 5 Sovelluksen sulkeminen... 6 Virhetilanteiden
LisätiedotAction Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
LisätiedotYllättävän, keskustelun aikana puhkeavan ristiriidan käsittely
Yllättävän, keskustelun aikana puhkeavan ristiriidan käsittely TOIMI NÄIN Pysäytä keskustelu hetkeksi ja sanoita havaitsemasi ristiriita. Kysy osallistujilta, mitä he ajattelevat havainnostasi. Sopikaa
LisätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotTietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
Lisätiedot3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole.
1 Unelma-asiakas Ohjeet tehtävän tekemiseen 1. Ota ja varaa itsellesi omaa aikaa. Mene esimerkiksi kahvilaan yksin istumaan, ota mukaasi nämä tehtävät, muistivihko ja kynä tai kannettava tietokone. Varaa
LisätiedotNimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla:
Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla: a) käytettävyys b) käyttäjäkeskeinen suunnittelu c) luonnollinen kieli
LisätiedotTutkiva Oppiminen Varhaiskasvatuksessa. Professori Lasse Lipponen PED0031, VARHAISPEDAGOGIIKKA
Tutkiva Oppiminen Varhaiskasvatuksessa Professori Lasse Lipponen 09.10.2017 PED0031, VARHAISPEDAGOGIIKKA Hakkarainen K., Lonka K. & Lipponen L. (1999) Tutkiva oppiminen. Älykkään toiminnan rajat ja niiden
LisätiedotHops-ohjaajan ohje Opiskelijan hopsit.
Hops-ohjaajan ohje Tässä ohjeessa kuvataan kaksi erilaista tapaa hakea tietyn opiskelijan lähettämä hops. Ensin ohjeistetaan miten toimitaan, jos hopsin ryhmätyökalu on käytössä, eli ohjaajalle on luotu
LisätiedotSanaluokkajäsennystä rinnakkaisilla transduktoreilla
Sanaluokkajäsennystä rinnakkaisilla transduktoreilla Nykykielten laitos FIN-CLARIN-seminaarissa 4. marraskuuta 2010 Sanaluokkajäsennys Mr. Gelbert also has fun with language. NNP NNP RB VBZ NN IN NN. Sanaluokkajäsennin
Lisätiedot58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut
58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille
LisätiedotMatematiikan didaktiikka, osa II Algebra
Matematiikan didaktiikka, osa II Algebra Sarenius Kasvatustieteiden tiedekunta, Oulun yksikkö Mitä on algebra? Algebra on aritmetiikan yleistys. Algebrassa siirrytään operoimaan lukujen sijaan niiden ominaisuuksilla.
LisätiedotTestausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Testausraportti Orava Helsinki 5.5.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Juhani Bergström Peter
LisätiedotTekoäly ja sen soveltaminen yrityksissä. Mika Rantonen
Tekoäly ja sen soveltaminen yrityksissä Mika Rantonen Tekoäly- paljon puhetta, mistä kyse? Lyhyesti sanottuna: tekoäly on sellaista koneen tekemää toimintaa, joka ihmisen tekemänä olisi älykästä Otetaan
LisätiedotSOVELLUSPROJEKTIN ARVIOINTILOMAKE
SOVELLUSPROJEKTIN ARVIOINTILOMAKE Arviointilomake on tarkoitettu Sovellusprojektin vastaavan ohjaajan arvioinnin tueksi, eikä sillä siten tule korvata erillistä projektilausuntoa. Useaa arviointikohtaa
LisätiedotOngelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs
Ongelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs ja jos voi, niin tulisiko sellainen rakentaa? 2012-2013
LisätiedotAsiakas ja tavoite. Tekninen toteutus
Asiakas ja tavoite Heikieli on vuonna 2015 perustettu yhden hengen asiantuntijayritys, joka tarjoaa käännös- ja oikolukupalveluita englannista ja saksasta suomeksi. Freelance-kääntäjiä on Suomessa paljon,
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS LUONNOLLISEN KIELEN KÄSITTELY (NATURAL LANGUAGE PROCESSING, NLP) TEKOÄLYSOVELLUKSET, JOTKA LIITTYVÄT IHMISTEN KANSSA (TAI IHMISTEN VÄLISEEN) KOMMUNIKAATIOON, OVAT TEKEMISISSÄ
LisätiedotAineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin
Aineistoista 11.2.09 IK Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin Muotoilussa kehittyneet menetelmät, lähinnä luotaimet Havainnointi:
LisätiedotTentti erilaiset kysymystyypit
Tentti erilaiset kysymystyypit Monivalinta Monivalintatehtävässä opiskelija valitsee vastauksen valmiiden vastausvaihtoehtojen joukosta. Tehtävään voi olla yksi tai useampi oikea vastaus. Varmista, että
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotFI3 Tiedon ja todellisuuden filosofia LOGIIKKA. 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan:
LOGIIKKA 1 Mitä logiikka on? päättelyn tiede o oppi muodollisesti pätevästä päättelystä 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan: sisältö, merkitys: onko jokin premissi
LisätiedotTietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
LisätiedotLiikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola
Liikehavaintojen estimointi langattomissa lähiverkoissa Diplomityöseminaari Jukka Ahola ESITYKSEN SISÄLTÖ Työn tausta Tavoitteen asettelu Johdanto Liikehavaintojen jakaminen langattomassa mesh-verkossa
LisätiedotLomalista-sovelluksen määrittely
Thomas Gustafsson, Henrik Heikkilä Lomalista-sovelluksen määrittely Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikka Dokumentti 14.10.2013 Tiivistelmä Tekijä(t) Otsikko Sivumäärä Aika Thomas
LisätiedotAlgoritmit 2. Luento 6 To Timo Männikkö
Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100
LisätiedotOMINAISUUS- JA SUHDETEHTÄVIEN KERTAUS. Tavoiteltava toiminta: Kognitiivinen taso: Ominaisuudet ja suhteet -kertaus
Harjoite 12: Tavoiteltava toiminta: Materiaalit: OMINAISUUS- JA SUHDETEHTÄVIEN KERTAUS Kognitiivinen taso: Ominaisuudet ja suhteet -kertaus Toiminnan tavoite ja kuvaus: Oppilaat ratkaisevat paperi- ja
LisätiedotTavoite Opiskelija osaa käyttää englannin kielen rakenteita, hallitsee kielen perusilmaukset ja ymmärtää opiskelijan arkielämään liittyvää kieltä
Kuvaukset 1 (6) Englanti, Back to basics, 1 ov (YV3EN1) Tavoite osaa käyttää englannin kielen rakenteita, hallitsee kielen perusilmaukset ja ymmärtää opiskelijan arkielämään liittyvää kieltä Teemat ja
LisätiedotAlberta Language and Development Questionnaire (ALDeQ) A. Varhaiskehitys Lapsen nimi
Alberta Language and Development Questionnaire (ALDeQ) A. Varhaiskehitys Lapsen nimi 1. Milloin lapsenne otti ensiaskeleensa? 2. Minkä ikäisenä lapsenne sanoi ensisanansa? Esimerkkejä ensisanoista (käännöksineen):
LisätiedotLuento 4. Timo Savola. 21. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotCover letter and responses to reviewers
Cover letter and responses to reviewers David E. Laaksonen, MD, PhD, MPH Department of Medicine Kuopio University Hospital Kuopio, Finland Luennon sisältö Peer review Vinkit vastineiden kirjoittamista
LisätiedotVAPAASTI VALITTAVIEN TUTKINNON OSIEN OSAAMISEN ARVIOINNIN SUUNNITELMA 27.10.2009
VAPAASTI VALITTAVIEN TUTKINNON OSIEN OSAAMISEN ARVIOINNIN SUUNNITELMA 27.10.2009 K-MESTARIMYYJÄKOULUTUS, 1 ov 1. Ilmoittautuminen linjakohtaisesti Mestarimyyjäkoulutukseen ilmoittutumisajan puitteissa
LisätiedotPalomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri
Palomuuri Teoriaa Palomuurin tehtävä on estää ei-toivottua liikennettä paikalliseen verkkoon tai verkosta. Yleensä tämä tarkoittaa, että estetään liikennettä Internetistä paikallisverkkoon tai kotikoneelle.
LisätiedotNeuroverkkojen soveltaminen vakuutusdatojen luokitteluun
Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään
LisätiedotKiipulan ammattiopisto. Liiketalous ja tietojenkäsittely. Erja Saarinen
Kiipulan ammattiopisto Liiketalous ja tietojenkäsittely Erja Saarinen 2 Sisällysluettelo 1. Johdanto... 3 2. Hyvät internetsivut... 3 3. Kuvien koko... 4 4. Sivujen lataus... 4 5. Sivukartta... 5 6. Sisältö...
LisätiedotTodistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.
Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,
Lisätiedotportfolion ohjeet ja arviointi
2015 portfolion ohjeet ja arviointi EIJA ARVOLA (5.10.2015) 2 Sisällysluettelo 1. TYÖPORTFOLIO (ei palauteta opettajalle)... 3 2. NÄYTEPORTFOLIO (palautetaan opettajalle)... 3 3. NÄYTEPORTFOLION SISÄLLÖN
LisätiedotSuomen kielen Osaamispyörä -työkalu
Suomen kielen Osaamispyörä -työkalu Tavoitteet Kohderyhmät Käyttö Suomen kielen Osaamispyörän tavoitteena on tehdä näkyväksi maahanmuuttajataustaisten työntekijöiden suomen kielen osaamista. Osaamispyörä
LisätiedotMikä ihmeen Global Mindedness?
Ulkomaanjakson vaikutukset opiskelijan asenteisiin ja erilaisen kohtaamiseen Global Mindedness kyselyn alustavia tuloksia Irma Garam, CIMO LdV kesäpäivät 4.6.2 Jun- 14 Mikä ihmeen Global Mindedness? Kysely,
LisätiedotReaaliaineiden ja äidinkielen työpaja
Reaaliaineiden ja äidinkielen työpaja Reaalikokeiden rakenne Äidinkielen suunnitelmia Matematiikan suunnitelmia Vieraidenkielten suunnitelmia ylioppilastutkinto.fi digabi.fi Reaalikokeet Osaamisen eri
LisätiedotKServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille
KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development
LisätiedotFyKe-Mopin opettajanohje
1 FyKe-Mopin opettajanohje Ohjelma jakautuu aihepiireittäin Opiskelen ja opin ja Testi osioihin. Miten saan FyKe-Mopin nopeasti käyttöön? Ensimmäisenä on ohjelma asennettava joko yksittäiselle koneelle
LisätiedotTentti erilaiset kysymystyypit
Tentti erilaiset kysymystyypit Kysymystyyppien kanssa kannatta huomioida, että ne ovat yhteydessä tentin asetuksiin ja erityisesti Kysymysten toimintatapa-kohtaan, jossa määritellään arvioidaanko kysymykset
LisätiedotAlgoritmit 2. Luento 2 To Timo Männikkö
Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento
LisätiedotOsaava henkilöstö kotouttaa kulttuurien välisen osaamisen arviointi. Työpaja 8.5.2014 Hämeenlinna
Osaava henkilöstö kotouttaa kulttuurien välisen osaamisen arviointi Työpaja 8.5.2014 Hämeenlinna Osaamisen arviointi Osaamisen arvioinnin tavoitteena oli LEVEL5:n avulla tunnistaa osaamisen taso, oppiminen
LisätiedotEväitä yhteistoimintaan. Kari Valtanen Lastenpsykiatri, VE-perheterapeutti Lapin Perheklinikka Oy
Eväitä yhteistoimintaan Kari Valtanen Lastenpsykiatri, VE-perheterapeutti Lapin Perheklinikka Oy 3.10.2008 Modernistinen haave Arvovapaa, objektiivinen tieto - luonnonlaki Tarkkailla,tutkia ja löytää syy-seuraussuhteet
Lisätiedotopiskelijan ohje - kirjautuminen
opiskelijan ohje - kirjautuminen estudio on Edupolin kehittämä e-oppimisympäristö koulutusryhmän verkkoalustana perinteisen luokkaopetuksen tukena. etäopiskelussa ja -opetuksessa kotoa tai työpaikalta.
LisätiedotOsaamispisteet. Vapaasti valittava
Hyväksymismerkinnät 1 (5) Ammattiopiskelun S2 3 osp Osaaminen arvioidaan opiskelijan keräämän oman alan sanaston sekä portfolion avulla. Oman alan sanavaraston Tekstien ymmärtäminen Luku- ja opiskelustrategioiden
LisätiedotOsallistavan suunnittelun kyselytyökalu
Osallistavan suunnittelun kyselytyökalu Käyttöohje InnoGIS- hankkeen aikana kehitetylle pilottiversiolle Dokumentti sisältää pilottiversiona toimivan kyselyn laatimiseen ja vastaamiseen liittyvän ohjeistuksen.
LisätiedotAutomaattinen semanttinen annotointi
Automaattinen semanttinen annotointi Matias Frosterus, Reetta Sinkkilä, Katariina Nyberg Semantic Computing Research Group (SeCo) School of Science and Technology, Department of Media Technology and University
LisätiedotAJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
LisätiedotRajoittamattomat kieliopit (Unrestricted Grammars)
Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli
LisätiedotTiedonlouhinta rakenteisista dokumenteista (seminaarityö)
Tiedonlouhinta rakenteisista dokumenteista (seminaarityö) Miika Nurminen (minurmin@jyu.fi) Jyväskylän yliopisto Tietotekniikan laitos Kalvot ja seminaarityö verkossa: http://users.jyu.fi/~minurmin/gradusem/
LisätiedotKerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:
Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.
Lisätiedotoppimisella ja opiskelemisella
MITÄ ON OPPIMINEN? Miten, milloin ja missä ihminen oppii esim. suomen kieltä? Miten huomaat, että olet oppinut jotain? Mikä ero on oppimisella ja opiskelemisella? Mikä on PASSIIVISTA OPPIMISTA AKTIIVISTA
LisätiedotOhjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
LisätiedotVASTAANOTTOKESKUSTEN ASIAKASPALAUTTEEN YHTEENVETO
YHTEENVETO 5.9.2013 VASTAANOTTOKESKUSTEN ASIAKASPALAUTTEEN YHTEENVETO Taustaa Aikuisten turvapaikanhakijoiden asiakaspalautekysely järjestettiin 17 vastaanottokeskuksessa loppukeväällä 2013. Vastaajia
Lisätiedot2.3 Virheitä muunnosten käytössä
2.3 Virheitä muunnosten käytössä Esimerkissä 1 yhtälönratkaisuprosessi näytetään kokonaisuudessaan. Yhtälön rinnalla ovat muunnokset ja sanallinen selitys, johon oppilaat täydentävät esimerkissä käytetyt
LisätiedotSUOMI L3-KIELEN OSAAMISTASON KUVAUKSET yläkoulu ja lukio
Schola Europaea Office of the Secretary-General Pedagogical Development Unit Ref.: 2017-01-D-38-fi-3 Orig.: EN SUOMI L3-KIELEN OSAAMISTASON KUVAUKSET yläkoulu ja lukio Language III attainment descriptors
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 4 OP PERIODI 1: 6.9.2012-12.10.2012 (6 VIIKKOA) LUENNOT (B123, LINUS TORVALDS -AUDITORIO): TO 10-12, PE 12-14 LASKUHARJOITUKSET
LisätiedotKulttuuritaidot Oppilas oppii tuntemaan Ranskaa ja ranskankielisiä alueita ranskankielisille kulttuureille ominaisia tapoja ja kohteliaisuussääntöjä
Ylöjärven opetussuunnitelma 2004 B2 RANSKA VUOSILUOKKA: 8 VUOSIVIIKKOTUNTEJA: 2 Tavoitteet ymmärtämään erittäin selkeästi puhuttuja tai kirjoitettuja lyhyitä viestejä viestintää tavallisimmissa arkielämän
Lisätiedot811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto
811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien
LisätiedotMaastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
LisätiedotYhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely
Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely Petri Tenhunen 6.3.2019 Esityksen sisältö Lyhyt oppimäärä Yhteentoimivuus ja semanttinen yhteentoimivuus Yhteentoimivuusalusta Sanastot-työkalu
LisätiedotTieteellisen artikkelin kirjoittaminen ja julkaiseminen
Tieteellisen artikkelin kirjoittaminen ja julkaiseminen Dosentti Mikko Ketola Kirkkohistorian laitos Workshop tohtorikurssilla toukokuussa 2008 Teologinen tiedekunta Workshopin sisältö Miksi kirjoittaa
LisätiedotLAITTEISTOKOKOONPANON SELVITTÄMINEN JA AJURIEN ASENTAMINEN
LAITTEISTOKOKOONPANON SELVITTÄMINEN JA AJURIEN ASENTAMINEN Oma tietokone -valintaa klikkaamalla hiiren oikeanpuoleisella näppäimellä, saadaan näkyviin laitteistokokoonpano Ominaisuudet laitteisto -valinnalla:
LisätiedotYhdyssana suomen kielessä ja puheessa
Yhdyssana suomen kielessä ja puheessa Tommi Nieminen Jyväskylän yliopisto Anna Lantee Tampereen yliopisto 37. Kielitieteen päivät Helsingissä 20. 22.5.2010 Yhdyssanan ortografian historia yhdyssanan käsite
LisätiedotTurvallisuuden kehittämishanke Hakarinteen peruskoulussa
Turvallisuuden kehittämishanke Hakarinteen peruskoulussa Anis, Daniel Piirainen, Ilkka 2011 Leppävaara 2 Laurea-ammattikorkeakoulu Leppävaara Johdanto opinnäytetyöhön ja yhteenveto Anis, Daniel. Piirainen,
LisätiedotSuvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014
Työpaja Työpaja on vertaisarviointiin soveltuva työkalu. Työpaja mahdollistaa töiden palautuksen ja niiden jakelun opiskelijoiden arvioitavaksi sekä arvioinnin antamisen. Laita Muokkaustila päälle ja lisää
LisätiedotHeuristisen arvioinnin muistilista - lyhyt versio
Alla oleva kymmenkohtainen muistilista on sovellettu Jakob Nielsenin heuristisen arvioinnin muistilistasta (Nielsen, 1994), hyödyntäen Keith Instonen wwwpalveluiden arviointiin muokattua samaista listaa
LisätiedotLisää pysähtymisaiheisia ongelmia
Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti
Lisätiedoton rekursiivisesti numeroituva, mutta ei rekursiivinen.
6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti
LisätiedotMITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy
MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy janne.metsolahti@yit.fi MITÄ ON GEMBA-WALK? Sana gemba tulee japanin kielestä ja tarkoittaa todellista paikkaa, paikkaa jossa arvo tuotetaan
LisätiedotEye Pal Solo. Käyttöohje
Eye Pal Solo Käyttöohje 1 Eye Pal Solon käyttöönotto Eye Pal Solon pakkauksessa tulee kolme osaa: 1. Peruslaite, joka toimii varsinaisena lukijana ja jonka etureunassa on laitteen ohjainpainikkeet. 2.
LisätiedotS11-09 Control System for an. Autonomous Household Robot Platform
S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on
LisätiedotE-kirjan kirjoittaminen
1 E-kirjan kirjoittaminen Ohjeet e-kirjan kirjoittamiseen Tämän ohjeistuksen tavoitteena on auttaa sinua luomaan yksinkertainen e-kirja (pdftiedosto) asiakkaallesi. Kirja näyttää hänelle kuinka hyvin ymmärrät
Lisätiedot1 Kannat ja kannanvaihto
1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:
LisätiedotEnigmail-opas. Asennus. Avainten hallinta. Avainparin luominen
Enigmail-opas Enigmail on Mozilla Thunderbird ja Mozilla Seamonkey -ohjelmille tehty liitännäinen GPG-salausohjelmiston käyttöä varten. Sitä käytetään etenkin Thunderbirdin kanssa sähköpostin salaamiseen
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden
LisätiedotTietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
LisätiedotMäärittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
LisätiedotSTEP 1 Tilaa ajattelulle
Työkalu, jonka avulla opettaja voi suunnitella ja toteuttaa systemaattista ajattelutaitojen opettamista STEP 1 Tilaa ajattelulle Susan Granlund Euran Kirkonkylän koulu ja Kirsi Urmson Rauman normaalikoulu
LisätiedotTapahtumakalenteri & Jäsentietojärjestelmä Toteutus
Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat...2 2. Käyttötapaukset...2
LisätiedotSosiaalinen Media organisaation kommunikoinnissa. Jukka Ruponen, IT Arkkitehti, Innovaattori
Sosiaalinen Media organisaation kommunikoinnissa Jukka Ruponen, IT Arkkitehti, Innovaattori Hiljaista tietoa syntyy kun yhteisöllistä keskustelua ja tiedonvaihtoa ei tapahdu vaan kommunikointi rajoittuu
LisätiedotAlgoritmit 2. Luento 2 Ke Timo Männikkö
Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento
LisätiedotRAPORTTI 25.2.2011 SUORITETUISTA KÄYTETTÄVYYSTESTEISTÄ Luuppi-projekti
RAPORTTI 25.2.2011 SUORITETUISTA KÄYTETTÄVYYSTESTEISTÄ Luuppi-projekti Saila Oldén 1. JOHDANTO Tässä raportissa kuvataan perjantaina 25.2.2011 Luuppi-projektin tiimoilta suoritettujen käytettävyystestien
LisätiedotTIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit
TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen
LisätiedotOpiskelijoiden HOPSit
Opiskelijoiden HOPSit Ohje kommentoijalle ja hyväksyjälle/19.3.2014 Täydennetty ohjetta/2.1.2014: Lisätty tietoa opiskelijoiden lisäämisestä Omiin opiskelijoihin, mikä helpottaa HOPSien käsittelyä. Tarvittavat
LisätiedotKIELENOPPIJOITA TIEDONHANKINTA KESKIÖSSÄ KUUNTELEMALLA OPPIJA (AUDITIIVINEN) KIELEN KÄYTTÖ, VUOROVAIKUTUS NÄKEMÄLLÄ
KIELENOPPIJOITA KIELEN KÄYTTÖ, VUOROVAIKUTUS TIEDONHANKINTA KESKIÖSSÄ KUUNTELEMALLA OPPIJA (AUDITIIVINEN) TEKEMÄLLÄ OPPIJA (KINESTEETTINEN) LUOVA KIELENKÄYTTÄJÄ HOLISTINEN OPPIJA (KOKONAISUUDET TÄRKEITÄ)
LisätiedotThe OWL-S are not what they seem
The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita
LisätiedotGlobal Mindedness kysely. Muuttaako vaihto-opiskelu opiskelijan asenteita? Kv päivät Tampere May- 14
Global Mindedness kysely Muuttaako vaihto-opiskelu opiskelijan asenteita? Kv päivät Tampere 13.5. May- 14 Mistä olikaan kyse? GM mittaa, kuinka vastaajat suhtautuvat erilaisen kohtaamiseen ja muuttuuko
Lisätiedot