• Ei tuloksia

Java-luok at

In document PDF www.ling.helsinki.fi (sivua 66-77)

TässäkohdassaesitelläänmuutamatoteutuksessatärkeäJava-kielinenluokka.Kustakin

luokasta onlyhyt kuvaus,jonka jälkeen esitelläänluokan metodit.

Rajapintaluokka DialogueManager

RajapintaluokkaDialogueManageronmääriteltykommunikoimaankäyttäjärajapinnan

japäättely-yksiköidenkanssa.Senyhteistyössäkäyttämiäapuluokkiaonesitettykuvas-

sa15.DialogueManager-luokan oleelliset metodit on esitelty alla.

String exportModel()

Kun käyttäjä haluaa tallentaa keskusteluistunnon tilan jatkaakseen sitä myöhemmin,

käyttöliittymärajapinta kutsuu tätä metodia, joka kerää dialoginhallintaytimen tilan-

kuvauksen RDF-mallina jatuottaa siitämerkkijonoesityksenRDF/XML-muodossa.

Käyttöliittymä voialoittaa keskustelun jostainaiemmin tallennetusta tilanteesta, joka

on talletettu exportModel-metodilla RDF/XML-muotoiseen merkkijonoon. Tämä me-

todikorvaa nykyisen istunnon tallennetulla istunnonkuvauksella.

addDMInput(AbstratDMInput indata)

Tätä metodia kutsutaan aina kun käyttäjä on antanut syötteen käyttäjärajapinnan

avulla. AbstatDMInputmahdollistaa syötteenmerkkijonona.

void lose()

Kun tätä metodiakutsutaan, on käyttöliittymä sulkenut istunnon, jolloin myös dialo-

ginhallinnan istunto suljetaan.

Rajapintaluokka DialogueManager sisältää myös metodeita jotka mahdollistavat vaih-

toehtoistendialoginhallintaytimienpääsyn4M:nkäyttäjärajapintamoduuleihineliluon-

nollisen kielen tuottokomponenttiinja syötteenjäsentimeen.

void giveResponse(String response)

Tämä metodi esittää käyttöliittymän avulla ihmiskäyttäjälle response-merkkijonon si-

sällön.Tätä metodiakäytetään,kunkäyttäjälle lähetetäänvastauksia,jotka ovat luon-

nollisen kielenmuodossa,jollointuottokomponenttia tarvita. RinnakkainenIR-dialogi-

järjestelmäkäyttää tätämetodiamerkkijonomuotoisten hakutulostenesittämisessä.

void giveResponse(Model agenda)

Tällämetodilladialoginhallintaydin voituottaakäyttäjällevastauksenRDF-muotoisen

agendamallin avulla. DialogueManager-luokka vastaa agendarakenteen muunnoksesta

käyttäjän kielelle käyttäen hyväksi luonnollisen kielen tuottokomponenttia. Se myös

päivittäädialogikontekstin muistia,jossasäilytetääntiedonhakua jaluonnollisen kielen

tuottamistavartenpuhunnoksientopi-,newinfo- jahead-käsitteitäsekäpuhunnoksien

RDF/XML-agendarakenteita. DialogueManager luo rakenteen AbstratDMOutput to-

teuttavanSimpleDMOutput-viestiolion jalähettääsenkäyttäjärajapinnastavastaavalle

integraatiokomponentille esitettäväksikäyttäjälle. Viestiolio sisältääpuhuttavan jaesi-

tettäväntekstinsekämahdollisestitaustasovellustenlähettämätkuvatiedostot,jotkaon

tarkoitus näyttää käyttäjän päätelaitteella.

Dialogikontekstin muisti

Dialoginhallintaan on toteutettukeskustelumuisti, joka pitääkirjaa kustakinkeskuste-

lunpuheenvuorosta.Setoimiikielellistenjäsennin-jatuottokomponenttien apuna,sekä

ContextInfoonniputusluokka,johononkerättyperäkkäistenpuheenvuorojenkonteksti-

informaatiot. Sen sisältämät DMContext-oliot kuvaavat kukin yhden puheenvuoron

topiikkienja uudentiedonontologisettunnukset. Dialogijärjestelmäänyhdistetytonto-

logiapohjaisetIR-palvelut voivat käyttää tätärakennettahyväkseen.

Ytimen runkoluokka DMCore

DMCore-luokka on erilaisten dialoginhallintaytimien (DM-ytimen) perustoteutus, joka

sisältääseuraavat ohjelmasäikeen ohjaukseen jasyötevirtaanliittyvät metodit.

void run()

Tämä metodi pitää dialoginhallintaytimen kuuntelusilmukan käynnissä omana säikee-

nään.Kunkäskyjonoonsaapuuuusikäyttäjänsyöte,kutsutaan analyseInput-metodia,

jokareagoi syötteeseen.

void lose()

Tämämetodisammuttaakuuntelusilmukan.KunrajapintaluokkaDialogueManagersaa

sammutuspyynnön käyttäjärajapinnalta,kutsuu setätämetodiasammuttaakseen DM-

ytimen suorituksen.

void proessInput(String input)

Dialoginhallintayksikön rajapinta, DialogueManager, kutsuu tätä metodia lisätäkseen

käyttäjältätulevan syötteen käsittelyjonoon.

Dialoginhallintaydin OntoDM

Dialoginhallintayksikkö on toteutettu DMCore-ydinluokan jatkeena.

analyseInput(String inStr)

DMCore-runko-oliokutsuu tätä metodiakun käyttäjä on antanut syötteen.Se huoleh-

tii syötejonon avulla siitä, että vain yksi syöte kerrassaan käsitellään analyseInput-

metodilla. Tämä metodi suorittaa dialoginhallinnan pääsilmukan toiminnot, jotka on

esitettykuvassa 17.

Nykyinen keskustelu−

muistin tila

Keskustelu−

muistin tila, jossa käyttäjä−

nimi selvitetty ja käyttäjä tunnistettu

Mallinnettu toiminto:

kysely henkilön x käyttöoikeuksista Sidottu: x = Vertti Ajetaan taustasovellus−

Tuodaan keskusteluun kysymys henkilön x käyttäjänimestä.

Mallinnettu toiminto:

Sidottu: x = Vertti

Mahdollinen tavoitetila, jossa ongelma on rajatumpi tai ratkennut

Dialogisäännön avulla mallinnettu tilan muutos

Mahdollinen, ei−valittu dialogipolku Valittu dialogipolku

Mallinnettu keskustelun tila

Mallinnettu tavoitetila alku

sääntö 1 sääntö 2

...

score=15 score=20

score=10 score=5

score=16

Kuva 20:Esimerkkidialoginhallinnan keskustelunsuunnittelusta

Keskustelumuisti DMem ja referenttiolio DRef

Keskustelumuisti on toteutettu luokkaan DMem. Se perustuu RDF-malliin, jossa sesäi-

lyttääkaikkiinstanssitietonsaelitiedon diskurssireferenteistäjaniidentiloista. Senjul-

kinenmuuttujamodelonviittausRDF-malliin,jonkavälityksellävoidaanviitatamihin

tahansakeskustelunreferenttiin.DMem-olionmetodeillaaddDRef()jafindDRefByClass()

muut dialoginhallinnan osat voivat lisätä keskustelumuistiin uusia referenttejä ja käsi-

tellä aiempia. Nämä keskustelumuistin DMem aksessorimetodit muodostavat referent-

tejäkuvaaviaDRef-olioita,joidenavulladiskurssireferenttejävoidaankäsitelläerillisinä

olioina.

DRef-olioidenominaisuuksia voidaanlukea,lisätäjamuuttaamerkkijonomuodossame-

todeilla setArg(a,v) ja getArg(a).Referenteille voimäärittää keskinäisiä ontologian

mukaisiamäärityksiämetodeillaaddRel(String a, DRef ref)jaDRefgetRel(String a).

Nämä RDF-pohjaiset tietorakenneoliot on toteutettu samalla tavoin kuin liitteen esi-

merkkiohjelmassa 1,jossa kuvataanverkkotunnuksia janiiden käyttäjiä.

Keskustelunsuunnittelijat DPlanner ja DPlanPhase

Dialoginhallintaydin OntoDM luokäynnistyessään keskustelustrategioita evaluoivan ja

valitsevan DPlanner-olion. Se lukee muistiinsa käynnistyessään RDF-muotoiset sään-

tötiedostot, jotkaonmääriteltyjärjestelmänkonguraatiossa. Kullakinpuheenvuorolla

dialoginhallintakutsuuDPlanner-oliota,jokaehdottaaparhaitenkeskustelutilanteeseen

odotetaan johtavan keskustelun tavoitetilaan mahdollisimman suurella todennäköisyy-

dellä pitkindialogipolkua,jolle on arvioitu pienin odotettu kustannus (ks.kuva20).

Säännönvalintatehdääntutkimallavoimassaolevaakeskustelumuistintilaajamuodos-

tamallasiitämahdollisestisaavutettavissaoleviakeskustelumuistintilojadialogisääntö-

jen avulla. Koska kaikkia dialogisääntöjä ei voisoveltaa kaikissakeskustelun vaiheissa,

on sääntöihin ohjelmoitu preondition-lausekkeisiin predikaattilogiikan operaatioilla ne

keskustelumuistia koskevat rajoitteet, joiden puitteissakutakin dialogisääntöävoidaan

käyttää.Dialogisääntöihin onkuvattupostondition-lausekkeisiin niitäkeskustelumuis-

tin referenttien muutoksia, jotka säännöt voivat aiheuttaa. Dialogisääntöihin on myös

merkittykustannusarvo (penalty), jokapainottaa säännön valintaa.

DPlanner-olio luomahdollisten keskustelujenpuun,jonka solmutovat keskustelunvai-

heita kuvaavia DPlanPhase-olioita. Ne muodostetaan kopioimalla uusiin lehtisolmui-

hinedeltävän keskustelumuistintila jasoveltamalla näihinkeskustelumuistin malleihin

mahdollisten dialogisääntöjen postondition-lausekkeita.Näihin uusiin mallinnettuihin

keskustelutiloihin asetetaan pisteytykseksiedeltävän tilan pisteytys josta vähennetään

säännönsuorittamisesta aiheutuvakustannus.

Uusiasaavutettujakeskustelutilojamuodostetaanenintäänmäärättyynetäisyyteenasti

(prototyypissäneljän dialogipolunsolmun päähän)jaenintään määrättyyn kustannus-

rajaan(prototyypissä20)asti.Dialogisääntökuvaakeskustelunmahdollistatavoitetilaa,

mikälisäännönisgoal-arvoon1.Tällaiseentavoitetilaanpäästyäändialoginhallintaon

ainakinosittain toteuttanutkäyttäjänpyynnöntaityydyttänytkäyttäjäntiedonhalun.

Kun mahdollisten keskustelujen puu on muodostettu, poimitaan puusta pienimmän

kustannuksen tavoitetilan solmu. DPlanner-olio valitsee sen keskustelun haaran, jonka

kauttakyseiseenmallinnettuuntilaanonpäästy.Mikälidialogisäännönpredikaattilogii-

kan lausekkeissaon sidottu jokin referenttimuuttuja tiettyyn keskustelunkäsitteeseen,

sitä käytetään myösseuraavassa keskusteluntoiminnossa taivastauksessa.

IR Service

Case−based reasoning tool (CBT)

Model−based reasoning tool (MBT) Facts Reasoner (FR)

Dialogue Manager

Kuva 21:Dialoginhallinnan taustasovellukset

5 Evaluaatio

5.1 Esimerkkiajot

Tässä kohdassaesitellään 4M:ndemonstraatiokokoonpanon syksyllä2005 toteuttamaa

keskustelua. Keskustelun avulla tarkastellaan tässä työssä kehitetyn dialoginhallinnan

toimintaperiaatteiden etuja. Taustalla suoritettavien päättelykomponenttien (kuvassa

21) toimintoja ja tuloksia on simuloitu ja manipuloitu dialoginhallinnan rinnakkaisten

toimintastrategioiden havainnollistamiseksi.

Esimerkki 1

Tässäesimerkkikeskustelussahuoltohenkilöraportoijärjestelmälletilanteesta,jossakäyt-

täjä on ilmoittanut ongelmaksi sen, että kalenteriohjelma ei aukea. Dialoginhallinnan

ensimmäinenstrategiaonselvittäävoikojokinpäättelykomponenttiselvittääongelman.

Käyttäjän syöteon seuraava.

1 U: Vertti ei saa kalenteria auki.

Dialoginhallintamuodostaatässävaiheessakehyksen,jollasetiedusteleepäättely-yksiköltä

ohjeita.

Frame 1:

[Aess℄ --+--agent--> [Human℄

+neg |

'--goal---> [Calendar℄

Kehyksessä hakasulkuihin merkityt nimet ovat RDF-solmujen tyyppejä eli instanssien

luokkiennimiä.

Mikäli dialoginhallinta ei saamiltäänpäättelijältä vastaukseksikehystä, jokaosoittaisi

mahdollisiakorjaustoimenpiteitätaimahdollisiavianaiheuttajia,dialoginhallinnantoi-

nen strategia on rikastuttaa kyselyä yksilöimällä kehyksen henkilö ja kalenteriresurssi

ongelmanrajaamiseksi. Yksilöintitapahtuu instanssitietokannanavulla, niinettäkäyt-

täjä pyritään tunnistamaan käyttäjätunnuksen ja käytettävä kalenteritili sen tyypin

mukaisesti.

2 S: Mikä on Vertin käyttäjätunnus?

3 U: Vertin tunnus on "vhiiri".

4 S: Onko kalenteri oma vai ryhmäkalenteri?

5 U: Ryhmäkalenteri.

Dialoginhallinta on saanut yksikäsitteiset instanssikantaan sidotut käsitteet vhiiri ja

gal1 jotka kuvaavat Vertti Hiiri -nimisen henkilön käyttäjätunnusta ja hänen käyt-

tämänsä ryhmätyökalenterin tunnusta. Dialoginhallinta tekee toisen kyselyn päättely-

yksikölle, jokavälittääongelmakyselyneteenpäin.

Kyselyn RDF-kehyson seuraavanlainen:

Frame 2:

[Aess℄ --+--agent--> [Human℄

+neg | +m4:name=Vertti Hiiri

| +dm:instRef=inst:VerttiHiiri

|

'--goal---> [Calendar℄

+dm:instRef=inst:GCal1

Vastauksenamallipohjaiseltadiagnostiikkakomponentilta(MBT)palaakehys,johonon

lisättykäyttäjätunnukseen kohdistuva vikadiagnoosi.

[Aess℄ --+--instrument--> [Username℄

+neg | +dm:instRef=inst:Vhiiri1

|

|

'---goal---> [Calendar℄

+dm:instRef=inst:GCal1

Diagnossissa on negatiivinen pääsytapahtuma (Aess), johon liittyy instrumenttina

instanssitietokannan käyttäjätunnus-olio Vhiiri1 ja goal-ominaisuutena tietokannassa

määriteltyryhmäkalenteri GCal1.Tämävoidaantulkitaniin,ettäpäättelykomponentti

ilmaisee, ettei kyseistä käyttäjätunnusta hyödyntämällä voi päästä edellä mainittuun

ryhmäkalenteriresurssiin.

Dialoginhallinta tuottaa kehyksen sisältöä vastaavasta agendarakenteesta luonnollisen

kielen tuottokomponentin avulla perusteella seuraavan ilmoituksen.

6 S: Käyttäjätunnuksella vhiiri ei ole oikeuksia ryhmäkalenteriin.

Esimerkki 2

Tässä esimerkissä dialoginhallinnan apuna on päättely-yksikköön kytkettytapauspoh-

jainen päättelykomponentti (CBT).

1 U: Vertti ei pääse kalenteriin.

Dialoginhallinta muodostaa ja lähettää päättely-yksiköille ensimmäisen esimerkin kal-

taisen kyselyn, jossa kuvataan RDF-mallin avulla että jokin henkilö ei pääse kalente-

riohjelmaan.Tapauspohjainenpäättelykomponenttituottaatässäesimerkkiajossamah-

dollisenehdotuksenjohonliittyy näytölleilmestyvätiettyverkkokatkoakoskevavirheil-

moitus.

Frame 1 query:

[ErrorMessage℄ --of--> [NetworkBreak℄

+lambda

Kehyksessä palaavan vastauksen lambda-status tarkoittaa sitä, että taustajärjestelmä

pyytää käyttäjän taholta tarkentavaa kuvausta mahdollisesta virheilmoituksesta, sillä

tässätapauksessavirheilmoituksensisältövoivaikuttaavikadiagnoosiin.TämänCBT:n

vastauksenseurauksenadialoginhallinnan keskustelustrategiavaatiiselvittämäänensin,

onko minkäänlaista virheilmoitustatullut.

3 U: Ei.

4 S: Selvä.

Tämä CBT-päättelijän ehdotus hylätään, sillä kysymyksen esiehtona on, että keskus-

telussa täytyisi olla perustettuna tietty virheilmoitus. Mikäli tämä esiehto täyttyy ja

käyttäjäilmoittaa verkonhuoltokatkosta, jatkuu keskusteluseuraavallatavalla.

2 S: Tuliko minkäänlaista virheilmoitusta?

3 U: Tuli.

4 S: Onko kyseessä ilmoitus verkon huoltokatkosta?

5 U: Kyllä

6 S: Tapaukseen liittyy keikkatietokannasta löytynyt raportti.

Tässä tapauksessa tiedote verkon huollosta näytetään, koska tiedotteen näyttämiseen

liittyvät esiehdot täyttyvät. Toteutuksen tässä vaiheessa keikkatietokannan raportteja

eitoimiteta käyttäjän päätelaitteelle.

Esimerkki 3

Tässäesimerkissämallipohjainendiagnostiikka(MBT)tutkiilähiverkon jaohjelmiston

toimintaa jaIR-palvelu löytäähuolto-oppaansivulta ohjeenviankorjaamiseksi.

1 U: Vertti ei pääse kalenteriin.

Tässä esimerkissä mallipohjainen päättelijä esittää todennäköisimmäksi vioittuneeksi

osaksi lähiverkonseuraavalla palaavalla kehyksellä:

Frame 2 query:

[Aess℄ --+--instrument--> [Network℄

|

|

'---agent----> [Computer℄

+dm:of=inst:VerttiHiiri

Frame 3 query:

[Aess℄ --+--instrument--> [Network℄

|

|

'---agent----> [Computer℄

+dm:of=inst:MorttiHiiri

Nämä MBT:n kyselykehykset tallennetaan keskustelumuistiin jolloin dialoginhallinta

valitsee strategiaksikysyävastauksiayksitellen näihinkysymyksiin.

3 U: Kyllä.

4 S: Kartoitetaan verkon tilaa tarkemmin.

Toimiiko Mortin verkkoyhteys?

5 U: Kyllä.

Koska käyttäjä on vahvistanut kyselykehysten väittämät todeksi, vastaavat kehykset

lähetetään takaisinFR-rajapintaan. Kehyksenquery-tila onmuutettu response-tilaksi,

jokailmaisee käyttäjänmyöntäneen väittämät todeksi.

Frame 2 response:

[Aess℄ --+--instrument--> [Network℄

|

|

'---agent----> [Computer℄

+dm:of=inst:VerttiHiiri

Frame 3 response:

[Aess℄ --+--instrument--> [Network℄

|

|

'---agent----> [Computer℄

+dm:of=inst:MorttiHiiri

Tässävaiheessavastaukseksipalaatoinen mallipohjaisen diagnostiikan tuottamaehdo-

tusvialliseksi osaksi,jokaon työasemaanasennetun kalenteriohjelman vääräversio.

Frame 4 query:

[Version℄ --of--> [CalendarProgram℄

+lambda

Tämä esitetään seuraavalla kielellisellä muodolla käyttäjälle:

6 S: Mikä versio kalenterista on käytössä?

7 U: Express

Käyttäjän antama palautelähetetään MBT-päättelijänsyötteeksi.

Frame 4 response:

[Version℄ --of--> [CalendarProgram℄

+dm:instRef=inst:Express

MBT-päättelijä vastaa tähänkehyksellä,jossa on kuvattu tarvittava ohjelmistoversion

muutos ongelmatilanratkaisemiseksi.

Frame 5:

[Update℄ --patient--> [Outlook2002℄

loginhallinta välittää käyttäjälle tiedon, ettäasennettuohjelmisto täytyy vaihtaa.

8 S: Outlook Express on vaihdettava Outlook 2002:ksi.

Koska kontekstimuistiin on tallentunut ontologiaperustaiset viittaukset kalenteriohjel-

maan ja päivitysoperaatioon, löytää IR-palvelu erään ohjeen näiden ontologiakäsittei-

denavullaontologianavullaannotoidustamanuaalista.LöydettäväohjekoskeeOutlook

Express -ohjelmanpäivittämiseksiOutlook2002:ksi.Dialoginhallinta ilmoittaa käyttä-

jälle IR-tuloksesta seuraavasti.

S: Ohjeita löytyi 1 kappale.

U: Opasta.

S: Odota. Haen ohjetta.

Ohje 0, osa 1:

Doument URL: http://4m.s.hut.fi/

OL2002: Outlook Expressin päivittäminen Outlook 2002:ksi

U: jatka

S: Tässä artikkelissa kuvataan, miten tiliasetukset,

sähköpostiviestit, osoitteet ja säännöt tuodaan

Mirosoft Outlook Expressistä Outlook 2002:een.

Artikkelissa kuvataan myös, miten Outlook 2002

määritetään sähköpostin oletusasiakkaaksi.

Dialogijärjestelmän tilan kysely

Järjestelmäosaamyöstarvittaessakertoa, missätilassa seon.Mikälijonkintoiminnon

suorittaminen ei tuotatulosta vaan järjestelmä eipääse tilasta eteenpäin,voidaantoi-

minto keskeyttää ja ohittaa. Seuraavassa esimerkkitilanteessa dialoginhallintaydin on

tehnyt taustasovelluskutsun,mutta ei saavastaukseksi hakutuloksia kohtuullisen ajan

kuluessa,jolloin käyttäjä päättää keskeyttää tiedonhaun (rivi3).

1 U: Missä mennään?

2 S: Haetaan ohjetta.

3 U: Keskeytä.

4 S: Selvä, haku keskeytetty.

5 S: Voitko kuvailla tilannetta tarkemmin?

Keskustelu oli aluksi tiedonhakutilassa, mutta käyttäjän annettua keskeytyspyynnön

dialoginhallinta siirtyy käyttämääntoissijaistakeskustelustrategiaajaantaatästäkuit-

valmiiksidialoginhallinnan säännöstööntallennetulla kysymyksellä(rivi 5).

In document PDF www.ling.helsinki.fi (sivua 66-77)