Agentit ja semanttinen web
|
|
- Esa Oksanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 hyväksymispäivä arvosana arvostelija Agentit ja semanttinen web Pekka Halonen Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta Fakultet Faculty Laitos Institution Department Matemaattis-luonnontieteellinen tiedekunta Tekijä Författare Author Tietojenkäsittelytieteen laitos Pekka Halonen Työn nimi Arbetets titel Title Agentit ja semanttinen web Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Seminaarityö Tiivistelmä Referat Abstract Aika Datum Month and year Sivumäärä Sidoantal Number of pages 14 sivua Tekstissä käsitellään semanttisen webin agentteja. Mitä agentit ovat, miten ne määritellään ja mihin niitä käytetään. Agenteista esitellään neljä pääryhmää ja tarkemmin näiden toimintaperiaatteet. Lisäksi käydään läpi agenttien välistä kommunikointia FIPA-standardin avulla sekä niiden määrittelyä JADEympäristön päälle. Lopuksi käsitellään agenttien ongelmia ja niiden yhteyttä semanttiseen webiin. ACM Computing Classification System (CCS): I.2.4 [ARTIFICIAL INTELLIGENCE]: Knowledge Representation Formalisms and Methods--- Semantic networks I.2.11 [ARTIFICIAL INTELLIGENCE]: Distributed Artificial Intelligence --- Intelligent agents I.2.11 [ARTIFICIAL INTELLIGENCE]: Distributed Artificial Intelligence --- Multiagent systems Avainsanat Nyckelord Keywords Semanttinen web, agentit, FIPA, JADE Säilytyspaikka Förvaringställe Where deposited Muita tietoja Övriga uppgifter Additional information
3 1 Johdanto Agentit Vaaditut ominaisuudet Erilaiset agentit Logiikka-agentit Toiminnalliset agentit Uskomus-halu-aikomus agentit Kerrosarkkitehtuuriin perustuvat agentit Agenttien välinen kommunikointi Agenttien toteuttaminen Ongelmat Semanttinen web ja agentit Yhteenveto Lähteet... 14
4 1 1 Johdanto Älykkäät agentit ovat tärkeässä osassa semanttisen webin hyödyntämisessä. Ennen semanttista webiä agenttien toiminta on perustunut ja perustuu yhä tänä päivänä ohjelmoijan ohjelmoimaan ohjelmaan, joka hakee tietoa www-sivulta tai www-palvelusta. Tiedon muoto kovakoodataan ohjelmaan, jolloin tiedon muodon muuttuessa ohjelma ei osaa reagoida siihen automaattisesti, vaan ohjelmoijan tulee muokata ohjelmakoodia tai ohjelman suoritusmääreitä. Esimerkki tällaisesta agentista on hakukone, joka indeksoi sivujen sisältöä tiettyjen parametrien mukaan ja tallettaa nämä tiedot tietokantaansa, josta käyttäjä voi hakea tietoa. Hakukone ei kykene yhdistämään useiden sivujen tietoa yhdeksi kokonaisuudeksi, eikä sopeutumaan esimerkiksi uusien indeksoitavien sivujen ilmestymiseen. Uudet sivut tulevat esille hakukoneeseen vasta indeksoinnin tapahduttua seuraavan kerran. Semanttista webiä hyödyntävä älykäs agentti kykenee sen sijaan toimimaan yhdessä muiden agenttien kanssa ja tarjoamaan yhdistettyjä tietoja useammasta eri lähteestä. Lisäksi sen sisältämä logiikka ja muiden palveluiden hyödyntäminen mahdollistaa esimerkiksi uusien sivujen lisäämisen hakutuloksiin heti, kun joku toinen agentti on sellaisen sivun löytänyt. Tänään Tulevaisuudessa käyttäjä käyttäjä esitetään selaimessa hakukone henkilökohtainen agentti älykäs palvelu www-sivut www-sivut Kuva 1 Älykkäät agentit
5 2 Ongelma on kuitenkin siinä, ettei hyviä agentteja kannata kehittää ennen kuin tarjolla on riittävästi kunnollista sisältöä määriteltynä agenttien ymmärtämässä muodossa. Tällä hetkellä OWL:n avulla määriteltyjä palveluita löytyy jo melkoisesti ja älykkäiden agenttien luomiseen on olemassa erilaisia työvälineitä ja standardeja. Ottamalla askeleita oikeaan suuntaan voidaan varmistaa tulevaisuus, jossa älykkäät agentit kykenevät toimimaan apunamme ja helpottamaan jokapäiväistä elämäämme. 2 Agentit Agentti määritellään Wikipediassa seuraavasti: Yleiskielessä agentti tarkoittaa asiamiestä, henkilöä, joka toimii toimeksiantajansa eli päämiehensä lukuun. Samoin tietotekniikassa agentti tarkoittaa ohjelmaa tai konetta, joka itsenäisesti tekee määrättyä tehtävää käyttäjän, eli ihmisen tai vaikkapa toisen agentin hyväksi. Semanttisen webin kannalta agentit toimivat samoin kuin agentit yleensä. Ne etsivät tietoa, suorittavat määrättyjä tehtäviä ja jopa neuvottelevat sopimuksia hyväksemme. Tässä määritelmässä agentti on tietotekninen ohjelma tai palvelu, joka toimii käyttäjänsä hyväksi jossain määritellyssä tietoverkossa, esimerkiksi yrityksen intranetissä tai koko Internetissä. Agentilla tarkoitetaan siis ohjelmaa, joka toimii itsenäisesti ja etsii verkosta käyttäjälleen hyödyllistä tietoa tai toimii käyttäjän haluamalla tavalla. Tällainen on luonnollisesti helppoa pienessä mittakaavassa, eli esimerkiksi tietyn yrityksen sisällä, missä ympäristö on tarkkaan valvottu ja määritelty. Suurempaa kokonaisuutta, esimerkiksi Internet, käsiteltäessä joudutaan agenttien toimivuuden suhteen tekemään kompromisseja, sillä kaikkien vaihtoehtojen hallinta on agenteille mahdotonta. Tämän aiheuttaa se, että tietoa on tarjolla monella eri tavalla määritettynä, eikä mitään kontrollia tiedon sisältöön tai sen käyttöön ole olemassa. Itsenäinen ja älykäs agentti yrittää saavuttaa tavoitteensa toimintaympäristössä, jota se ei voi kontrolloida, yksin tai toimien yhdessä muiden agenttien kanssa. Agentit ovat tavallaan löyhästi sidottuja (loosely coupled) ohjelmia, jotka toimivat lähettäen viestejä toisilleen ja keskittyen täysin omaan tehtäväänsä. Tämä on mahdollista vain, kun agentit kykenevät ymmärtämään muiden ohjelmien lähettämiä viestejä. Viestien ja viestinvälityksen tulee siis olla tavalla tai toisella määritelty niin, että kaikki osapuolet ymmärtävät toisiaan. Toimimalla yhdessä agentit voivat saavuttaa suurempia
6 3 tavoitteita, kuin mitä agenttikohtaiset tavoitteet antavat olettaa. Tämän vuoksi agenttien käyttäminen vaikeiden, mutta helposti ositettavien ongelmien ratkaisuun on usein järkevää. 2.1 Vaaditut ominaisuudet Hyvä agentti on itsenäinen, kommunikointikykyinen, toimintakykyinen ja mukautuva. Agentti on itsenäinen, kun se kykenee toimimaan ilman käyttäjän vuorovaikutusta tietyin osin. Hyvin harvat agentit toimivat täysin itsenäisesti, sillä tällainen toiminta vaatii tarkkaan mietityt tietoturva- ja käyttöoikeusmääritykset sekä toimintalogiikan, joka kykenee normaalin toiminnan lisäksi reagoimaan virheellisiin syötteisiin ja muihin yllättäviin tilanteisiin hyväksyttävällä tavalla. Täysin itsenäisiäkin agentteja voidaan kuitenkin määritellä. Esimerkiksi sähköisen kauppapaikan kauppiasagentti voisi periaatteessa toimia täysin itsenäisesti annettujen sääntöjen puitteissa. Se kykenisi antamaan tarvittaessa alennusta hyville asiakkaille, hoitaisi rahastuksen ja välittäisi tuotteen. Yksinkertaisessa virheistä toipumisessa voitaisiin lähes kaikissa virhetilanteissa tyytyä esimerkiksi keskeyttämään kauppatapahtuma ja tarpeen vaatiessa peruuttaa luottokortin veloitus. Suurin osa agenteista toimii kuitenkin enemmän tai vähemmän käyttäjän vuorovaikutuksessa. Käyttäjä pyytää esimerkiksi agenttia etsimään Internetistä tietyn palvelun ja valitsee sitten itse ehdotetuista ajoista sopivan. Toki tässäkin tapauksessa agentti tekee paljon työtä itsenäisesti, mutta ei varsinaisesti tee mitään, jos käyttäjä ei sitä ensin pyydä aloittamaan tehtävää. Kommunikointikykyä vaaditaan agenteilta, kun ne toimivat yhdessä muiden agenttien tai www-palveluiden (web service) kanssa. Agenttien tarkoituksenahan on kyetä toteuttamaan määrätty tehtävä, esimerkiksi matkan varaaminen, joka vaatii yleensä kommunikointia muiden agenttien ja/tai www-palveluiden kanssa. Agentti voi ottaa käyttäjältä vastaan pyynnön matkan varaamisesta sisältäen yksikertaisimmillaan tiedot matkan alku- ja loppupäivämääristä sekä kohteesta ja tämän jälkeen hoitaa kaikki lentojen, hotellin ja vaikkapa vuokra-auton varaamiset kommunikoimalla lentoyhtiön, hotellin ja vuokra-autoliikkeen agenttien tai palveluiden kanssa yhdessä. Tässä tapauksessa kummankin osapuolen tulee ymmärtää toisiaan riittävällä tasolla, jotta matkan varaaminen onnistuu. Toimintakyky on agentille määrittävä tekijä. Se erottaa agentin neuvonantajasta, sillä
7 4 neuvonantaja antaa käyttäjälle ohjeet siitä, miten käyttäjän tulee toimia saavuttaakseen haluamansa päämäärän, kun taas agentti näyttää käyttäjälle lopputulokset, joista käyttäjä valitsee haluamansa. Eli agentti toimii käyttäjän puolesta. Toki tässä voidaan törmätä tilanteisiin, jossa agentti kysyy käyttäjältä aivan yhtä paljon tietoa, kuin mitä käyttäjä olisi itse toimiessaan joutunut syöttämään sivustolle, eli esimerkiksi luottokortin numeron ja toimitusosoitteen. Seuraavalla kerralla älykäs agentti kuitenkin kykenee muistamaan nämä syötetyt tiedot ja pyytää kenties vain varmistuksen tilauksen tekemiseen. Hyvän agentin tulee olla mukautuva, sillä agenttien toimintaympäristö, varsinkin Internet, on täynnä tilanteita, joihin agentin pitää pystyä sopeuttamaan. Esimerkiksi käytöstä poistuneelle www-sivulle on turha mennä jatkossa ja käyttäjän toimintaan on hyvä mukautua. Jos käyttäjä hylkää aina tietyn sivun tulokset, ei näytetä niitä enää jatkossa ja muistetaan käyttäjän kerran syöttämät tiedot, eikä pyydetä käyttäjää turhaan syöttämään samoja tietoja uudestaan. 2.2 Erilaiset agentit Agentit voidaan luokitella niiden toiminnan perusteella neljään eri ryhmään. On logiikkaan pohjautuvia (logic based), toiminnallisia (reactive), uskomus-halu-aikomus (beliefdesire-intention, BDI) ja kerrosarkkitehtuuriin (layered architecture) perustuvia agentteja. Ontologioiden ja niiden päättelysääntöjen vuoksi logiikkaan perustuvat agentit ovat yksi sangen suoraan semanttisen webin kanssa yhteensopiva agenttiryhmä, mutta myös muun tyyliset agentit toimivat. Jokaisella erilaisella agenttiryhmällä on omat hyvät ja huonot puolensa semanttisen webin kanssa ja määräävimmät tekijät tulevatkin juuri agentin sopivuudesta kyseiseen ympäristöön ja niiden kyvystä kommunikoida muiden agenttien kanssa Logiikka-agentit Logiikkaan pohjautuvat agentit edustavat perinteistä tekoälyn mallia, jossa agenteilla on joukko todistuksia, johtopäätöksiä ja näihin liittyviä toimenpiteitä. Käyttämällä loogisia päättelysääntöjä, ne määrittävät väittämien olevan joko tosia tai epätosia. Kun päättelyn tulos on selvillä, agentti suorittaa tehtävänsä jonkin sille määritellyn johtopäätöksen mukaan. Esimerkiksi agentti voisi tarkkailla auton tilaa ja todeta auton nopeuden, suunnan ja kuljettajan liikkeiden perusteella auton olevan normaalissa tilassa ja kuljettajan hallinnassa. Tämän perusteella auto voisi toteuttaa tarvittaessa jotain sille määriteltyjä
8 toimenpiteitä. 5 Loogisilla agenteilla on myös ongelmia, joista ensimmäinen tulee siitä, ettei kaikki logiikan ongelmia voi ratkaista riittävän lyhyessä ajassa. Jos auton ajonhallintajärjestelmän tulee pystyä reagoimaan tilanteeseen millisekunneissa, ei logiikka-algoritmin mahdollinen useamman sekunnin toiminta-aika varmasti ole toivottavaa. Toinen ongelma tulee logiikkaan perustuvien ratkaisuiden joustamattomuudesta, sillä niiden on erittäin vaikea reagoida ennalta määräämättömiin ongelmiin. Kun lisäksi vielä elinympäristömme mallintaminen loogisiksi päättelysäännöiksi on hankalaa, voidaan loogisiin päättelyihin perustuvia agentteja todella hyödyntää pienissä, hyvin kontrolloiduissa ympäristöissä Toiminnalliset agentit Toiminnalliset agentit ovat oikeastaan logiikkaan perustuvien agenttien täydellinen vastakohta. Niissä ei ole lainkaan yhteisiä, ennalta määrättyjä sääntöjä, toimenpiteitä tai tavoitteita. Ne reagoivat tapahtumiin omien paikallisten sääntöjensä mukaan ikään kuin refleksinomaisesti. Ympäristön muutokset vaikuttavat suoraan tiettyyn agenttiin ja näiden muutoksien summana toiminnallinen agentti reagoi, eli toimii. Se myös kykenee paikallisesti oppimaan ja kehittämään toimintaansa. Tällä tavoin on esimerkiksi kyetty opettamaan roboteille seisomista ja kävelyä ilman, että näitä toimenpiteitä on ennalta ohjelmoitu robottiin Uskomus-halu-aikomus agentit Uskomus-halu-aikomus agentit ovat menestynein agenttien ryhmä tekoälyssä tähän päivään mennessä. Niiden sanotaan perustuvan käytännölliseen päättelyyn. Uskomus tarkoittaa agentin kuvaa maailmasta, halu sen tavoitteita ja aikomus sen suunnitelmia näiden tavoitteiden saavuttamiseksi sen toimintaympäristössä. Se kykenee ratkomaan ristiriitoja tavoitteiden ja toimintaympäristön välillä ja muuttamaan suunnitelmiaan tarvittaessa. Myös tavoitteet voivat muuttua. Suurimmat ongelmat näille agenteille tulevat tasapainoiluista tavoitteiden ja suunnitelmien välillä. Jos tavoitteet muuttuvat liian usein, ei agentti saa mitään aikaiseksi, kun se aloittaa aina uuden suunnitelman toteuttamisen. Toisaalta, jos suunnitelmia ei muuteta ajoissa, kun esimerkiksi ympäristöstä nousee esiin este sen hetkisen tavoitteen saavuttamiseksi, ei agentti pysty toteuttamaan sille annettua tehtävää. Tasapainon löytämien
9 sopeutumisen ja toimimisen välillä on siis tärkeää Kerrosarkkitehtuuriin perustuvat agentit Kerrosarkkitehtuuriin perustuvat agentit luetellaan omaksi ryhmäkseen, koska kerrosarkkitehtuurin voi toteuttaa kahdella eri tavalla, vaaka- ja pystysuorasti. Periaatteessahan minkä tahansa edellä esitellyistä agenteista voi toteuttaa kerrosarkkitehtuuriin perustuvana. Vaakasuorassa kerrosarkkitehtuurissa jokainen syöte analysoidaan erikseen ja niiden tuloksista tuotetaan yksi päätelmä. Tässä mallissa eri sensoreiden tulee olla hyvin tasapainotetut, jotta saadaan oikeellinen lopputulos. Pystysuorassa kerrosarkkitehtuurissa taas syöte kulkee vuoron perään jokaisen sensorin läpi ja ne vaikuttavat omalla tavallaan lopputulokseen. Päätelmä tehdään viimeisen sensorin tuloksen perusteella. Vaakasuuntainen Pystysuuntainen Syöte sensoreilta Kerros 1 Kerros 1 Syöte sensoreilta Kerros 2 Tulos Kerros 2 Kerros 3 Kerros 3 Tulos Kuva 1 Kerrosarkkitehtuurit 2.3 Agenttien välinen kommunikointi Agentit joutuvat kommunikoimaan toisten agenttien kanssa esimerkiksi suorittaakseen tehtäviään koordinoidusti, päättäessään tulevista toimenpiteistä, pitääkseen yllä yhteisiä tavoitteita, pyytäessään toisia agentteja toimimaan omasta puolestaan ja päivittääkseen omia suunnitelmiaan muiden agenttien toimintojen perusteella. Lisäksi semanttinen web asettaa agenttien kommunikoinnille vielä omat vaatimuksensa tietoturvan ja luottamuksellisuuden suhteen. Agenttien tulee kyetä varmistamaan saamien tietojensa oikeelli-
10 7 suus, varmistaa muiden agenttien turvallisuus ja kyetä vakuuttamaan muut agentit omasta identiteetistään. Lisäksi semanttisen webin määritelmien kirjavuus ja kontrolloimattomuus aiheuttavat omat haasteensa kommunikointiin esimerkiksi täysin projektiin liittymättömien agenttien kanssa, joiden käyttämät ontologiat voivat erota agenttien omista ontologioista. Agenttien kommunikointi tapahtuu usealla kerroksella. Ensimmäisellä kerroksella agentit välittävät viestejä toisilleen tiettyä protokollaa käyttäen. Toisella kerroksella määritellään välitettävien viestien muoto. Kolmannella määritellään viestintään käytettävät ontologiat ja tarvittaessa agenttien tulee selvittää toisen agentin käyttämän ontologian määritelmät jonkun kolmannen ontologian kautta. Neljäs kerros määrää käytetyn logiikan, jonka olisi tärkeä olla osallistuvilla agenteilla samanlainen. Esimerkiksi suoritettaessa jaettua ongelman ratkaisua, agentti voi joutua lähettämään osittain käsitellyn ongelman loogisena kaaviona eteenpäin seuraavalle agentille. Viides kerros määrittelee suoritettavat toimenpiteet. Jos kaksi edellistä kerrosta eivät tähän riitä, tarvitaan oma kerros ja oma määrittelykieli, jotta agentit kykenevät toimimaan yhteisen päämäärän saavuttamiseksi. Viimeinen kerros liittyy agenttien välisen luottamuksen ja turvallisuuden varmistamiseen. Esimerkiksi välittäjäagentin tulee pystyä vakuuttamaan lopullisen päätöksen tekevä agentti siitä, että välittäjäagentilla on pyynnön aloittaneen agentin luottamus esimerkiksi luottokortin laskuttamiseen. Kommunikoidessaan keskenään agentit joutuvat usein tilanteisiin, joissa niiden ontologiat eroavat toisistaan. Tällöin agenttien tulee kyetä selvittämään toisten käyttämien termien tarkoitus. A C A B Agentti 1 Agentti 2 Agentti 3 B Kuva 2 Agenttien välinen kommunikointi
11 8 Kommunikoidessaan keskenään kuvan 2 agentit 1 ja 3 eivät voi käyttää suoraan samaa ontologiaa, sillä sellaista ei ole. Kuitenkin agentin 2 avulla on mahdollista saada ontologioiden A ja B välille yhteys, mitä hyödyntämällä agentit 1 ja 3 pystyisivät ainakin osittain kommunikoimaan keskenään. Toki on oletettava, että ontologia A ja B sisältävät määritelmiä ainakin osittain samoista asioista. Agenttien väliseen viestintään on kehitetty vuosien saatossa useita määrityksiä, joista uusin on FIPA:n standardoima agenttien kommunikointikieli (Agent Communication Language, ACL). Siinä agenttien oletetaan olevan BDI-tyylillä toteutettuja, eikä mitään oletuksia tehdä käytetystä ontologiasta eikä viestien välitysmekanismista. Kieli on kehitetty erityisesti moniagenttikommunikaatioon (multi-agent communication), jolloin useat eri ontologioitakin käyttävät agentit kykenevät vaihtamaan viestejä keskenään. Semantiikan määrittämistä varten kielenä käytetään FIPAn standardoima FIPA-SL-kieltä. Muita agenttien viestintäkieliä ovat esimerkiksi FIPA ACL:n edeltäjä KQML ja KIF. FIPA ACL:n viesti sisältää tiedon toiminnallisuudesta, lähettäjästä, vastaanottajasta, käytetystä ontologiasta, semantiikkakielestä ja itse viestin sisällön. Seuraavassa on määrityksen mukainen viesti: (inform :sender agent1 :receiver agent2 :ontology hpl-auction :language fipa-sl :content (price item ) ) Kuva 3 FIPA ACL viesti FIPA ACL kielessä on kaksi perustoiminnallisuutta inform ja request, joiden avulla muut standardissa olevat n. 20 muuta toiminnallisuutta määritellään. Inform-viestissä lähettävä agentti uskoo lähettämänsä viestin sisällön olevan totta, ei usko vastaanottajan tietävän mitään viestin sisällön totuusarvosta ja aikoo saada vastaanottajan uskomaan, että viestin sisältö on totta. Request-viestissä lähettävä agentti pyytää vastaanottavaa agenttia suorittamaan jotain puolestaan ja uskoo vastaanottajan olevan tähän kykenevä, muttei oleta, että vastaanottaja ilmoittaa suorituksesta millään tavoin lähettäjälle.
12 9 Keskustellessaan keskenään agentit toteuttavat jonkun ennalta määritellyn protokollan mukaisen keskustelun. Esimerkiksi myyjä ja ostaja käyvät vuoropuhelun, joka joko päättyy kauppaan tai sitten ei. Protokollaan sisältyy tiedot siitä, millaisia viestejä voidaan välittää ja miten agenttien tulisi toimia tietyissä tilanteissa. Agenttien välinen keskustelu protokollaa noudattaen voidaan yleensä kuvata ääreellisellä tila-automaatilla, jossa tilat kuvaavat keskustelun eri vaiheita. Kuva 4 Protokolla tila-automaatti FIPA ACL määrittelee keskustelussa käytettävän protokollan viestin :protocol rivillä. Periaatteessa agentit voivat myös neuvotella käytettävän protokollan keskenään, jos esimerkiksi toiselta agentilta ei löydy juuri sitä parasta protokollaa tilanteeseen. Kuva 5 FIPA kyselyprotokolla
13 10 Oheisessa kuvassa 5 agentit suorittavat FIPA:n kyselyprotokollan. Ensin aloittaja pyytää osallistuvalta agentilta tietoa (query-if) tai pyytää tätä suorittamaan toimenpiteen (query-ref). Osallistuva agentti joko hyväksyy tai hylkää pyynnön ja ilmoittaa tämän aloittajalle. Jos osallistuva agentti hyväksyi pyynnön, suorittaa se pyynnön mukaisen tehtävän ja palauttaa tuloksesta tiedon aloittajalle. 2.4 Agenttien toteuttaminen Agentteja voidaan toteuttaa useilla eri ohjelmistoilla ja käyttäen erilaisia standardeja. Yksi FIPA standardin kanssa yhteensopiva toteutusympäristö on JADE (Java Agent DEvelopment Framework), joka toimii välikerroksena (middlelayer) agenttien toteuttamiseen Java-ohjelmointikielellä. JADE sisältää runsaasti työkaluja agenttien toteuttamiseen, mahdollistaen esimerkiksi agenttien välisten viestien seuraamiseen, jolloin monimutkaisempiakin moniagenttijärjestelmiä on mahdollista tutkia helposti kontrolloidussa import jade.core.agent; import jade.core.behaviours.*; public class myagent extends Agent { protected void setup() { addbehaviour( new mybehaviour( this ) ); } class mybehaviour extends SimpleBehaviour { public mybehaviour(agent a) { super(a); } public void action() { //...what agent really does! } private boolean finished = false; public boolean done() { return finished; } } // End mybehaviour }//end class myagent Kuva 6 Perus JADE agentti
14 ympäristössä. 11 Kuvassa 6 nähdään yksikertaisen agentin toteutus JADE-ympäristön avulla. Agentti itsessään on Java-luokka, joka sisältää metodin agentin luomiseen ja agentin toiminnallisuuden (behaviour). Toiminnallisuus toteutetaan omana luokkanaan. Toiminnallisuudessa määritellään agentin varsinainen toiminta, eli miten agentti kommunikoi, mitä se tekee milläkin syötteellä ja kaikki muu, mitä agentin halutaan tekevän. JADE antaa mahdollisuuden määritellä agenteille useita toiminnallisuuksia, jolloin näistä kaikista voidaan luoda omat luokkansa ja ohjelmointi voidaan suorittaa järkevän kokoisissa palasissa. JADE:n hyviin puoliin voidaan laskea sen pitkä kehitysikä, ensimmäinen versio on vuodelta 2000, avoin lähdekoodi, Telecom Italian panostus sen kehitykseen ja vahva FIPA tuki. JADE:n päälle on mahdollista kehittää agentteja erilaisista lähteistä. Esimerkiksi Protege-editoriin on olemassa lisäosa, jolla Protegen avulla määritellyt ontologia voidaan tuoda suoraan JADE:n käytettäviksi luokiksi, joita sillä määritellyt agentit voivat hyödyntää. 2.5 Ongelmat Agenttien määrittelyssä ja toiminnassa on myös useita ongelmakohtia, joita yritetään ratkaista. Ensimmäinen näistä on eri kielillä määriteltyjen agenttien yhteistoiminta. Kuten edellä todettiin, niin agenttien määrittelykieliä on käytössä useita erilaisia, eivätkä kaikki, keskenään erilaisilla kielillä toteutetut agentit kykene kommunikoimaan aina keskenään. Tästä seuraa, että agenttien väliseen kommunikointiin voidaan joutua kehittämään omia agenttejaan, jotka ainoastaan välittävät kahden eri kielillä kommunikoivan agentin viestit. Jos agentit ovat moderneja ja kykenevät viestimään FIPA:n määritysten mukaan esimerkiksi OWL-sanomin, niin silloin agenttien välinen viestintä on melkoisen helppoa. Vaikka viestintä ei käyttäisi suoraan samaa ontologiaa, niin käytetyt ontologiat voidaan mahdollisesti tulkita jonkin kolmannen ontologian kautta, johon kumpikin ainakin osittain pohjautuu. Tällöin viestintä agenttien välillä onnistuu, vaikka jotkin tarkasti agentin toimialueeseen liittyvät määritykset voidaankin joutua ohittamaan. Seuraava ongelma tulee agenttien oikeuksista toimia. Agenttien oikeuksien määrittämiseen on FIPA:n määrityksissä omat kohtansa, mutta siltikin ne ovat vain ohjeita. Mis-
15 12 sään ei tarkkaan kerrota, miten agenttien tulisi varmistaa muiden agenttien oikeudet esimerkiksi luottokortin veloittamiseen. Agenttien välinen luottamus ja niiden oikeuksien rajoittaminen kaikkien ymmärtämällä tavalla onkin yksi huomattavimmista haasteista agenttien kehityksessä. 3 Semanttinen web ja agentit Agenttien sujuva toiminta ei perustu ainoastaan hyvin määriteltyihin agentteihin ja niiden kykyyn kommunikoida ja toimia käyttäjien haluamalla tavalla, vaan myös niiden ympäristöön. Semanttinen web ja sen ontologiat määriteltynä OWL- tai DAML+OILkielten avulla mahdollistaa agenttien sujuvan toiminnan. Ne kykenevät kommunikoimaan keskenään ja www-palveluiden kanssa käyttäen samoja termejä ja mahdollisuuksien mukaan ratkomaan termien välisiä ristiriitoja muiden ontologioiden avulla. Agentit voivat olla ohjelmina pieniä ja yksinkertaisia, mutta niiden yhteistoiminta muiden agenttien kanssa aiheuttaa ongelmia agenttijärjestelmien suunnitteluun. Yksittäinen agentti kun ei esimerkiksi tiedä kokonaiskuvaa siitä järjestelmästä, missä se toimii, vaan ainoastaan oman tehtävänsä. Monien agenttien yhteistoiminnassa hyväkään suunnittelu ei takaa täysin ennalta arvattavaa lopputulosta. Tietyn agentin tehtävän suorittamisen keskeytyminen tai viivästyminen voi aiheuttaa ongelmia myöhempien agenttien tehtävien suorittamiseen ja agenttien määrän kasvaminen aiheuttaa entistä enemmän mahdollisuuksia sellaisten toimintojen syntymiseen, joita järjestelmän suunnittelija ei ole ottanut huomioon. 4 Yhteenveto Vaikka agentit ovat olleet semanttisen webin tutkimuskohteena jo yli vuosikymmenen, on niiden käyttö yritysmaailmassa jäänyt melkoisen vähäiseksi. Aluksi ongelmia aiheutti varmasti semanttisen sisällön puuttuminen, mutta nykyään ontologioita löytyy jo useita ja monet www-sivustojen kehittämiseen luodut ohjelmat kykenevät tuottamaan ja hyödyntämään myös ontologioita. Lisäksi agenttien kehittämiseen on useita työvälineitä saatavilla, joiden avulla perusohjelmointiosaamisella varustettu käyttäjä pystyy saamaan aikaan melko pienellä vaivalla toimivia agenttisovelluksia. Agenttien kehitystä tutkitaan edelleen yliopistoissa, mutta jostain syystä agenttien rantautuminen yritysmaailmaan on kestänyt, eikä mitään selkeää määränpäätä agenteille
16 13 ole vieläkään näkyvissä. Syitä tähän on varmasti monia, joista eräitä voivat olla turvallisuuteen ja luotettavuuteen liittyvät ongelmat. Yritysten välisessä liikenteessä kun useimmiten käsitellään rahaa ja sen kanssa ollaan opittu olemaan hyvin varovaisia. Lisäksi määrittelyjen monimutkaisuus tulee yritysten välillä helposti ongelmaksi, kun jo kahden yrityksen on vaikea saada kommunikointia toimimaan keskenään, niin miten se voisi onnistua ympäristössä, joissa on samalla pelikentällä useita eri toimijoita? Nähdäänkö agentteja tulevaisuudessa entistä enemmän? Varmasti, mutta missä muodossa ja mistä saadaan rahat niiden kehittämiseen? Kuluttajille kun on jo tarjolla paljon erilaisia sovelluksia, joiden käytössä esimerkiksi mainokset toimivat merkittävinä rahoittajina. Jos agentit toimivat itsenäisesti tietoa hakien, niin missä ja kenelle mahdolliset mainokset näytetään ja miten tuloutus hoidetaan? Näiden ongelmien kanssa painiminen on agenttien kehittäjien arkipäivää. Varmasti vähitellen ja pienessä mittakaavassa agenttien käyttö yleistyy. Esimerkiksi lääketieteessä potilaiden seuranta ja älykkäät sovellukset ovat sellaisia kehityskohteita, joille on selkeä tarve ja niiden rahoituskin pystytään varmistamaan. Jäämme odottamaan käytännön sovelluksia ja agenttien maailman valloitusta.
17 Lähteet 14 AGEN Agentti, Wikipedia. [ ] AnH07 G. Antoniou ja F. van Harmelen. A Semantic Web Primer, MIT Press, 2008 FIPA The Foundation for Intelligent Physical Agents. [ ] Hen01 James Hendler. Agents and the Semantic Web. IEEE Intelligent Syst., 16, 2 (2001), sivut Hen07 James Hendler Where Are All the Intelligent Agents. IEEE Intelligent Syst., 22, 3 (2007), sivut 2-3 JADE Java Agent DEvelopment Framework. [ ] JADET JADE Tutorial and Primer. [ ]
Agentit ja semanttinen web. Pekka Halonen
Agentit ja semanttinen web Pekka Halonen Henkilökohtainen agentti Aika lääkäriin Agentti toteaa, että käyttäjä tarvitsee lääkäriä Pyytää lääkäriaikoja hoitavan agentin kautta pääsyä ko. vaivaa hoitavalle
arvostelija OSDA ja UDDI palveluhakemistoina.
Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution
Selainpelien pelimoottorit
Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
The 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
Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages
Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month
Ohjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg
Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen
Aika/Datum Month and year Kesäkuu 2012
Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen
in condition monitoring
Etäteknologioiden automaatiosovellukset Using e-speak e in condition monitoring tutkija professori Hannu Koivisto Sisältö Tausta Globaali kunnonvalvontajärjestelmä E-speak globaalissa kunnonvalvontajärjestelmässä
Rekursiolause. 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,
! #! %! & #!!!!! ()) +
! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets
Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa
Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos
Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan
Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,
Luonnontieteiden popularisointi ja sen ideologia
Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro
9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle
Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle 2 Sisällys 1 Palvelunhallinta... 3 1.1 Käyttäjäryhmän luominen... 3 2 Tehtävienhallinta- perustiedot... 4 2.1 Yhtiön perustiedot... 4 2.2 Tehtävä-/
Järjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen
FiSMA 1.1 Monikerrosarkkitehtuuri 1 (7) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen
Kommunikaatio Visa Linkiö. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly
Kommunikaatio MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly 2.11.2016 Visa Linkiö The document can be stored and made available to the public on the open internet pages of Aalto University.
Älykkäät keltaiset sivut ( Intelligent Web Services ( IWebS ) )
Älykkäät keltaiset sivut ( Intelligent Web Services ( IWebS ) ) Ongelma Palveluntarpeet Palvelut t1 p1 t3 tk t4 t2 p3 p4 pn p2 p6 p5 1 Palveluntarpeet Ongelma IWebS Palvelut t1 täsmäytys1 p1 t2 täsmäytys2
1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin
INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta
Java-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
Tietotekniikan 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
Vaatimusmäärittely Ohjelma-ajanvälitys komponentti
Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit
Epätäsmällisen tiedon esittäminen semanttisen webin ontologioissa
Epätäsmällisen tiedon esittäminen semanttisen webin ontologioissa FinnOnto, 16.11.2005 Markus Holi (markus.holi@tkk.fi) Semantic Computing Research Group http://www.seco.tkk.fi/ UNIVERSITY OF HELSINKI
Etäkoulu Kulkurin tieto- ja viestintätekniikan opetussuunnitelma
Etäkoulu Kulkurin tieto- ja viestintätekniikan opetussuunnitelma 10.6.2013 Koonnut Virpi Soini 2. luokan tavoitteet tutustuu verkko-opiskeluun ja harjoittelee käytännön työtaitoja, kuten tekstintuottamista
Testausraportti. 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
TIE 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
Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa
Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa
Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio
1 Loppuraportti Virtuaali-Frami, CAVE-ohjelmisto Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu Versio 1.0 15.1.2006 2 Sisällys Tiivistelmä... 3 1 Johdanto... 4 1.1 Dokumentin tarkoitus...
Oppimateriaalin kokoaminen ja paketointi
Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto
Hajautettujen työvoiden hallinta
hyväksymispäivä arvosana arvostelija Hajautettujen työvoiden hallinta Simo Moilanen Helsinki 11.05.2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY
Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen
Ontologiat merkitysten mallintamisessa: OWL Eeva Ahonen 1.11.2004 Semanttinen tieto käsitemallit ihmisillä sisäiset mallit maailmantieto tarvitaan tekstin tulkitsemiseen tietokoneelle esim. sanat vain
Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:
Ismo Grönvall/Timo/TUTA 0353064 Tehtävä 5: Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa: Ihmiset viettävät huomattavan osan (>90 %) ajasta sisätiloissa. Sisäilmaston laatu on tästä syystä
Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,
Tutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
58131 Tietorakenteet ja algoritmit (syksy 2015)
58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen
Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen
FiSMA 1.1 Monikerrosarkkitehtuuri 1 (6) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia
Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu
Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu
Rajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
ELM 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................................
Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto
Semanttinen Web Ossi Nykänen ossi.nykanen@tut.fi Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto Esitelmä "Semanttinen Web" Sisältö Konteksti: W3C, Web-teknologiat
Automaattinen 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
Metodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3
Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
Ohjelmoinnin 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
Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
Hankinnan problematiikka
Antti Kirmanen Hankinnan problematiikka Toimittajan näkökulma Asiakkaan näkökulma www.sulava.com www.facebook.com/sulavaoy 2 1. Ristiriita www.sulava.com www.facebook.com/sulavaoy 3 Asiakas haluaa Onnistuneen
812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja
Eero Hyvönen Semanttinen web Linkitetyn avoimen datan käsikirja WSOY:n kirjallisuussäätiö on tukenut teoksen kirjoittamista Copyright 2018 Eero Hyvönen & Gaudeamus Gaudeamus Oy www.gaudeamus.fi Kansi:
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Mikä on WordPress? itse ylläpidettävä (self-hosted) WordPress.com: ilmainen 3. osapuolen ylläpitämä pilvipalvelu (Cloud-hosted)
WordPress.com Mikä on WordPress? Tällä hetkellä maailman suosituin ns. julkaisujärjestelmä (CMS) Rakennettu blogialustaksi, nykyään myös muussa käytössä ilmainen ns. avoimen lähdekoodin julkaisujärjestelmä
Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa
Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan
Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen
Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit
Vuorekseen liittyvä tutkimusja kehitysprojekti. Langaton Vuores. Kotikatupalvelin
Vuorekseen liittyvä tutkimusja kehitysprojekti Langaton Vuores Kotikatupalvelin Tutkimuksen tausta Langaton tietoliikenne on arkipäivää Personoidut päätelaitteet (taskutietokone, matkapuhelin, kannettava
Kieli 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
Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010
kielenä 9. joulukuuta 2010 Historia kielenä Historia Sovelluksia kehitettiin vuonna 1972 Kehittäjinä ranskalaiset Pääkehittäjä Alain Colmerauer Philippe Roussel programmation en logique Robert Kowalski
Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi
Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum
Ohjelmistojen mallintaminen, sekvenssikaaviot
582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden
Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
Olio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
Integrointi. Ohjelmistotekniikka kevät 2003
Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri
Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014
Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan
Test-Driven Development
Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia
4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari
Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä
Semantic Web käytännön sovelluksissa. TkT Janne Saarela Profium Oy
Semantic Web käytännön sovelluksissa TkT Janne Saarela Profium Oy 26.5.2004 Sisällysluettelo Johdanto Semanttisen Webin maailmaan Mahdollisuudet Tämän päivän käyttökohteet Haasteet 1 Johdanto Semanttisen
2. Olio-ohjelmoinnin perusteita 2.1
2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Esitellään peruskäsitteitä yleisellä tasolla: Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. Olioperustainen
Tehtävä 2: Tietoliikenneprotokolla
Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli
Ohjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
Ohjelmointi 2 / 2010 Välikoe / 26.3
Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään
Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
Zeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
Tiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
Action 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
Arkkitehtuurinen reflektio
Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET
Seminaari: HL7 versio 2
hyväksymispäivä arvosana arvostelija Seminaari: HL7 versio 2 Markus Koski Helsinki 29.9.2014 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF
Sisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology
Agenttipohjaiset liikkuvan tietojenkäsittelyn sovellukset FIPA-arkkitehtuurissa
Tietojenkäsittelytiede 23 Kesäkuu 2005 sivut 60 70 Toimittaja: Jorma Tarhio c kirjoittaja(t) Agenttipohjaiset liikkuvan tietojenkäsittelyn sovellukset FIPA-arkkitehtuurissa Heikki Helin TeliaSonera Finland
Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto
Semanttinen Web Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: World Wide Web Consortium (W3C) on kansainvälinen
Sisällönhallinnan menetelmiä
Sisällönhallinnan menetelmiä Airi Salminen Jyväskylän yliopisto http://www.cs.jyu.fi/~airi/ Suomalaisen lainsäädäntötyön tiedonhallinta: suuntana semanttinen web RASKE2-projektin loppuseminaari Eduskunnassa
Test-Driven Development
Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole
12. Javan toistorakenteet 12.1
12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu
arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi
hyväksymispäivä arvosana arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi Helsinki 6.4.2005 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
Harjoitustyön testaus. Juha Taina
Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida
Julkaisuarkistojen käyttötilastot: Mitä tilastoidaan ja miksi?
Julkaisuarkistojen käyttötilastot: Mitä tilastoidaan ja miksi? DSpace-käyttäjäryhmän tilastoseminaari Kansalliskirjaston auditoria, 3.11.2009 Jyrki Ilva (jyrki.ilva@helsinki.fi) Miksi verkkopalveluiden
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k
1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.
Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E.
Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E. Perusaksioomat: Laki 1: Kukin totuusfunktio antaa kullekin propositiolle totuusarvoksi joko toden T tai epätoden
Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien
Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta
Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets