Agentit ja semanttinen web. Pekka Halonen

Samankaltaiset tiedostot
Agentit ja semanttinen web

9. Periytyminen Javassa 9.1

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

Rajapinta (interface)

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

The OWL-S are not what they seem

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

"Puheaktiivinen" käyttöliittymä ja sen haasteet

9. Periytyminen Javassa 9.1

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Agenttiarkkitehtuurit. Ohjelmistoarkkitehtuurit Mikko Vartiala

JUnit ja EasyMock (TilaustenKäsittely)

Semantic Web käytännön sovelluksissa. TkT Janne Saarela Profium Oy

Java-kielen perusteita

Kommunikaatio Visa Linkiö. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Olio-ohjelmointi Javalla

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

Järjestelmäarkkitehtuuri (TK081702)

Agenttipohjaiset liikkuvan tietojenkäsittelyn sovellukset FIPA-arkkitehtuurissa

Ohjelmointi 2 / 2010 Välikoe / 26.3

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Web Services tietokantaohjelmoinnin perusteet

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Ohjelmistojen mallintaminen, mallintaminen ja UML

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Mikä yhteyssuhde on?

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:

Luokan sisällä on lista

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

Metodien tekeminen Javalla

Periytyminen (inheritance)

Valikot ja työkalupalkit. 2008

MALog-projekti kehittää oppimateriaalia matemaattiseen logiikkaan. Insinöörikoulutuksen foorumi

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Tietorakenteet, laskuharjoitus 3, ratkaisuja

Listarakenne (ArrayList-luokka)

Olio-ohjelmointi Käyttöliittymä

Sisällönhallinnan menetelmiä

Rinnakkaisohjelmointi, Syksy 2006

Testivetoinen ohjelmistokehitys

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

TYÖSSÄOPPIMINEN JA AMMATTIOSAAMISEN NÄYTTÖ. Tutkinnon osa: Huippuosaajana toimiminen 15 osp Tavoitteet:

Java-API, rajapinnat, poikkeukset, UML,...

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

Laskennallisesti Älykkäät Järjestelmät. Sumean kmeans ja kmeans algoritmien vertailu

8. Näppäimistöltä lukeminen 8.1

Tietämisestä ja uskomisesta

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

B U S I N E S S O U L U

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Internet jolla on merkitystä

1 Tehtävän kuvaus ja analysointi

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Semantic Web Sisältötuotannon ja palveluiden tulevaisuus

Pino S on abstrakti tietotyyppi, jolla on ainakin perusmetodit:

Luokan muodostimet (Constructors)

Miksi asiasanastot eivät riitä vaan tarvitaan ontologioita?

Liiketalouden perustutkinto, merkonomi HUIPPUOSAAJANA TOIMIMINEN HUTO 15 osp

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Mikä on semanttinen web?

Pakkauksen kokoaminen

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

2. Olio-ohjelmoinista lyhyesti 2.1

Visio tulevaisuuden Webistä. Semantic Web - kohti uutta merkitysten Internetiä. Ratkaisumalli 1: Älykkäämmät sovellukset. Vision este Webissä

Java-kielen perusteet

Java kahdessa tunnissa. Jyry Suvilehto

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmointi 2, välikoe

Epätäsmällisen tiedon esittäminen semanttisen webin ontologioissa

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Javan perusteita. Janne Käki

C# Windows ohjelmointi perusopas

C# ja.net. Juha Järvensivu 2007

SKOS. Osma Suominen ONKI-hankkeen laajennettu projektiryhmä

T Henkilökohtainen harjoitus: FASTAXON

Interaktiivinen tarinankerronta

UML ja luokkien väliset suhteet

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

17. Javan omat luokat 17.1

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

812336A C++ -kielen perusteet,

Kieli merkitys ja logiikka. 2: Helpot ja monimutkaiset. Luento 2. Monimutkaiset ongelmat. Monimutkaiset ongelmat

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Metatietojen merkitys tiedonhallinnassa

Transkriptio:

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 lääkärille lähiseudulta Saa listan sopivista ajankohdista ja lääkäreistä Sovittaa lääkäriajan käyttäjän menojen kanssa käyttäjän kalenteri(agenti)n kanssa Huolehtii, että käyttäjä on lääkärissä ajoissa

Agentti Yleiskielessä agentti tarkoittaa asiamiestä, henkilöä, joka toimii toimeksiantajansa eli päämiehensä lukuun. (wikipedia) Ohjelma tai palvelu, joka toimii käyttäjänsä hyväksi tietoverkossa Etsii tietoa, suorittaa määrättyjä tehtäviä ja jopa neuvottelee sopimuksia hyväksemme

Perinteinen agentti Hakee tietoa ja indeksoi Näyttää käyttäjälle hakutulokset, ei osaa yhdistää tietoa useammasta lähteestä kovakoodattu Esim. perinteinen hakukone

Älykäs agentti Osaa hakea tietoa useammista lähteistä ontologioita ja älykkäitä www-palveluita hyödyntäen Kykenee kommunikoimaan myös muiden agenttien kanssa Voi hyödyntää oppimaansa Tarjoaa käyttäjälle vaihtoehtoja tai voi jopa tehdä päätöksiä käyttäjän puolesta

Tänään Tulevaisuudessa

Agentin toiminta Etsii käyttäjälle hyödyllistä tietoa verkosta Helppoa pienessä mittakaavassa ja kontrolloidussa ympäristössä Haastavampaa Internetissä Ei kontrollia ympäristöstä Heterogeenisyys Viestimällä ja yhteistyössä muiden agenttien kanssa saavutetaan omaa tietämystä suurempia tavoitteita

Hyvä agentti Itsenäinen Kykenee toimimaan ilman käyttäjän vuorovaikutusta Kommunikointikykyinen Kommunikoi muiden agenttien ja wwwpalveluiden kanssa

Hyvä agentti Toimintakykyinen Osaa toimia käyttäjän puolesta ilman käyttäjän jatkuvaa vuorovaikutusta Mukautuva Sopeutuu yllättäviin tilanteisiin Oppii palvelemaan käyttäjää paremmin

Agenttien luokittelu Voidaan luokitella toiminnallisuuden perusteella neljään eri luokkaan Logiikkaan pohjautuvat (logic based) Toiminnalliset (reactive) Uskomus-halu-aikomus (belief-desire-intention, BDI) Kerrosarkkitehtuuri (layered architechture)

Logiikkaan pohjautuvat agentit Edustavat perinteistä tekoälyn agenttimallia Joukko todistuksia, johtopäätöksiä ja toimenpiteitä Käyttävät päättelysääntöjä määrittämään onko jokin totta vai ei Päättelyn tuloksen perusteella päädytään suorittamaan jokin toimenpide

Toiminnalliset agentit Logiikka-agenttien vastakohta Ei ennalta määrättyjä sääntöjä, toimenpiteitä tai tavoitteita Reagoivat refleksinomaisesti Kykenee oppimaan ja kehittymään

Uskomus-halu-aikomus agentit Menestynein agenttiryhmä tekoälyssä tähän päivään mennessä Perustuu käytännölliseen päättelyyn Uskomus on agentin näkemys maailmasta Halu on agentin tavoite(tila) Aikomus on agentin suunnitelma tavoitteen saavuttamiseksi Tavoitteet voivat muuttua Kykenee ratkomaan ristiriitoja halun ja uskomuksen välillä

Kerrosarkkitehtuuri Joko vaaka- tai pystysuuntainen kerrosarkkitehtuuri Kaikki edellä mainitut agenttiryhmät voidaan toteuttaa kummallakin tavalla Sensorien toiminta ja syötteiden analysointi vaikuttavat tuloksen muodostumiseen

Vaakasuuntainen Pystysuuntainen Syöte sensoreilta Kerros 1 Kerros 1 Syöte sensoreilta Kerros 2 Tulos Kerros 2 Kerros 3 Kerros 3 Tulos

Agenttien kommunikointi Kommunikoivat muiden agenttien tai wwwpalveluiden kanssa Tavoitteena Suorittaa tehtäviä koordinoidusti Pyytää toisia agentteja suorittamaan tehtävä Pitää yllä yhteisiä tavoitteita Päivittää omat suunnitelmat muiden toimintojen perusteella

Agenttien välinen kommunikointi Kirjavuus käytetyissä kommunikointitavoissa ja ympäristön kontrolloimattomuus haasteena Käytetyt ontologiat Käytetty logiikka Suoritettavat toimenpiteet Tietoturvan ja luottamuksellisuuden asettamat vaatimukset

Ontologioiden selvittäminen

FIPA ACL Yksi standardoitu agenttien välinen kommunikointikieli (Agent Communication Language) Agenttien oletetaan olevan BDI-tyylillä toteutettuja FIPA ACL kielessä on kaksi perustoiminnallisuutta inform ja request

FIPA ACL (inform :sender agent1 :receiver agent2 :ontology hpl-auction :language fipa-sl :content (price item567 24.95) )

Protokolla Keskustellessaan agentit toteuttavat protokollan Kuvataan ääreellisellä tila-automaatilla

Agenttien kehittäminen Useita työkaluja tarjolla eri alustoille JADE (Java Agent DEvelopment Framework) yksi pitkään kehitetty ja FIPA yhteensopiva Välikerros agenttien toteuttamista varten Sisältää runsaasti työkaluja moniagenttijärjestelmien (multi-agent systems) toteuttamiseen Protegessa tuki OWL:ien vientiin JADEn ymmärtämään muotoon

import jade.core.agent; public class myagent extends Agent { protected void setup() { addbehaviour( new mybehaviour( this ) ); } --- }//end class myagent

import jade.core.behaviours.*; class mybehaviour extends SimpleBehaviour { public mybehaviour(agent a) { super(a); } public void action() { //...this is where the real programming goes!! } private boolean finished = false; public boolean done() { return finished; } } // ----------- End mybehaviour

Agenttien ongelmia Eri kielillä määriteltyjen agenttien yhteistoiminta Eri ontologiat Missä menee itsenäisyyden raja? Miten tietoturva, luottamus ym. saadaan toteutettua?

Missä agentit ovat? Agenttien tulemista on odotettu jo 2000-luvun alusta Mahdollisuudet paranevat, kun standardeja tulee lisää Ontologioita saadaan jo monista webkehitysvälineistä Käytännön sovellukset loistavat poissaolollaan

KIITOS Kysymyksiä?