7 Mukautuvat verkkopalvelut Verkkopalvelun mukauttamista voi tarkastella useasta eri näkökulmasta: Laiteriippumattomuus: mahdollisuus verkkopalvelun käyttämiseen työasemalla, kämmentietokoneella, matkapuhelimella, puhekäyttöliittymällä, digi-tv:llä tai ruudunlukijalla Saavutettavuus: laiteriippumattomuus, erityisryhmät, käyttötilanteet Kansainvälistäminen ja kotoistaminen: kielestä, kulttuurista ja maantieteellisestä sijainnista riippumattomat verkkopalvelut Personointi: verkkopalvelun sisällön, toimintojen ja ulkoasun mukauttaminen käyttäjän mieltymysten mukaiseksi Taustalla mukautuvan (adaptive) hypermedian ideat: Käyttäjästä luodaan malli (user model) Sovelluksesta ja sen sisällöstä luodaan malli Sovelluksesta käyttäjälle välitettävät näkymät mukautetaan käyttäjän ja sovelluksen mallin yhdistelmän, ns. overlay-mallin perusteella MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 91
Välineitä mukautuvan verkkopalvelun toteuttamiseen Semanttinen Web: Tietosisällön rakenteistaminen (XML) ja semanttinen kuvailu (RDF & OWL) Mahdollistaa tiedon järjestelmällisen/ohjelmallisen käsittelemisen Julkaisukontekstin (tai palvelukontekstin, vrt. Saavutettavuus-opintojakso) (delivery context) kuvaileminen: Composite Capability/Preference Profiles (CC/PP) ja User Agent Profile (UAProf) Keino käyttäjän tietojen välittämiseen palvelulle Pohjana joustavalle julkaisemiselle Räätälöity tai joustava julkaiseminen: Semanttisen kuvauksen perusteella tietosisällöstä voidaan valita oikeat tietoalkiot, jotka esitetään julkaisukontekstille sopivassa muodossa Suljetun järjestelmän toteuttaminen onnistuu mainiosti esimerkiksi relaatiotietokannan, PHP-kielen ja HTTP-protokollan avulla MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 92
Mitä mukautetaan? Verkkopalvelua voidaan mukauttaa eri tavoilla (Lähde: Authoring Techniques for Device Independence, ks. http://www.w3.org/tr/di-atdi/): Tyyli (Style): Resurssin esitystavan muuttaminen ilman, että resurssi itsessään muuttuu. Tapahtuu käytännössä CSS-tyylien avulla Asettelu (Layout): Näkymän komponenttien sijoittelu ruudulle. Voidaan toteuttaa esimerkiksi sivupohjien avulla Sisältö (Content): Rakenteistetusta tietosisällöstä voidaan poimia osia käyttäjän mieltymysten tai laitteen ominaisuuksien perusteella Rakenne (Structure): Sovelluksen rakennetta voidaan mukauttaa joko näkymiä koostamalla (aggregation) tai jakamalla osiin (decomposition). Suunnitelmallisessa toiminnassa näkymiä yleensä koostetaan Navigaatio (Navigation): Navigaatiota voidaan mukauttaa sekä teknisestä että sisällöllisestä näkökulmasta Vuorovaikutus (Interaction): Mahdollisuudet syötteen tuottamiseen ja vuorovaikutteisten komponenttien käyttämiseen vaihtelevat päätelaitteittain MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 93
Mukautuva hypermedia (Brusilovsky) Mukautuvan hypermedian keskeinen tutkija Peter Brusilovsky on määritellyt mukautuvan hypermedian seuraavasti (Methods and techniques of adaptive hypermedia, ks. http://www2.sis.pitt.edu/~peterb/papers/umuai96.pdf): Mukauttaminen perustuu käyttäjämalliin Sovelluksen esitystapa ja linkitys voidaan mukauttaa käyttäjämallin perusteella Käyttäjämalli: käyttäjän tietämys, osaaminen, tavoitteet, tausta, kokemukset ja mieltymykset Esitystapa: ulkoasu ja sisältö Linkitys: linkkien järjestäminen, piilottaminen, poistaminen, kommentointi (annotointi) ja tuottaminen, käyttäjän suora ohjaaminen, sisällysluettelon mukauttaminen Käyttäjämalliin voidaan lisätä vielä käyttäjän kielitaito, äidinkieli ja kansallisuus Brusilovskyn mukautuva hypermedia keskittyy suurelta osin sovelluksen navigaation muokkaamiseen. Kuitenkin myös sisällön mukauttamisessa on erilaisia mahdollisuuksia MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 94
Käyttäjän mallintaminen (Brusilovsky) Käyttäjän mallintaminen mukautuvassa hypermediasovellyksessa Brusilovskyn mukaan: Provides Application Data about user Collects Edits Provides Processes System Edits User Model Administrator User Processes Provides Adaptation effect Lähde: Brusilovsky, P. Methods and techniques of adaptive hypermedia MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 95
Esimerkki: amazon.com ja käyttäjän tiedot amazon.comia käytetään usein esimerkkinä mukautuvasta hypermediasovelluksesta. Amazonin tavoitteena on kasvattaa myyntiä, mutta ideoita voi hyödyntää monessa muussakin yhteydessä amazon.com kerää tietoja käyttäjästä siten, että käyttäjä määrittelee ja arvostelee oman virtuaalisen kirja- ja levyhyllynsä. Tämä on huomattavasti ilmaisuvoimaisempi vaihtoehto kuin jokaisen mielenkiinnon kohteen määritteleminen erikseen Assosiatiivisia linkkejä myytävien artikkeleiden välille muodostetaan useilla eri perusteilla: esittäjä, yhtyeen jäsen, muiden käyttäjien kirja- ja levylistat & ostopäätökset, kirjalliset arviot (~linkkien annotointi), suositukset,..., erikseen syötetyt metatiedot Keskeistä: Jukka, this is recommended for you. Why? Siis: palvelu järjestää ja tuottaa uusia linkkejä, hyvä. Tämän lisäksi käyttäjällä on mahdollisuus kysyä järjestelmältä perusteluja sille, miksi tämä ehdottaa jotakin tiettyä artikkelia. Käyttäjällä on myös mahdollisuus määritellä käytetäänkö tiettyä tuotetta suositusten tekemiseen ( Use to make recommendations ) tai hylätä järjestelmän tekemä ehdotus ( Not interested ) MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 96
Esimerkki: allmusic.com ja kuvailutiedot allmusic.com on musiikkia ja sen luokittelua ja kuvailua harrastavan henkilön aarreaitta Verkkopalvelun sisältönä on valtava määrä levyjä, joista on kerätty huima määrä kuvailutietoa palvelun käyttäjien toimesta Käyttäjillä on mahdollisuus syöttää kuvailutietoja, jotka tarkastetaan ennen julkaisemista palveluun Assosiatiiviset linkit: esittäjän jäsenet, vastaavanlaiset esittäjät, musiikilliset vaikuttajat ja vaikutteita ottaneet, kappaleiden tekijät, tyylilaji, tarkempi musiikillinen tyyli ja musiikilliset tunnelmat Palvelu ei varsinaisesti mukaudu käyttäjän mieltymyksiin. Kuvaileva tieto antaisi kuitenkin mahdollisuuden monipuolisten ominaisuuksien toteuttamiseen Erään mukautuvan hypermedian keskeisen sovellusalueen muodostavat ns. asiantuntijajärjestelmät, joihin on kerätty suuri määrä tietoa, jota sovelluksen käyttäjät voivat hyödyntää Musiikin harrastajan näkökulmasta tällainen järjestelmä voisi olla vaikkapa palvelu uusien musiikillisten tuttavuuksien löytämiseen (vrt. last.fm tai pandora.com) MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 97
Kansainvälistäminen ja kotoistaminen Sovelluksen mukauttamiseen käyttäjälle sopivaksi voidaan ottaa oppia myös kansainvälistämisestä (internationalisation, i18n) ja kotoistaminen (localisation, l10n) Kansainvälistäminen: sovelluksen toteuttaminen siten, että siitä voidaan julkaista versiota kielen, maantieteellisen alueen tai kulttuurin perusteella mukautettuna. käytännössä: tekstien, värien, kuvien ja ikonien (sivupohja!) irrottaminen sovelluksesta kirjastoksi, jonka vaihtaminen onnistuu helposti myös päivämäärien, pituus- ja painomittojen ja valuuttojen esittämisessä on kieli- ja kulttuurikohtaisia eroja Kotoistaminen: i18n-mallin mukaan toteutetun sovelluksen mukauttaminen tietylle kielelle tai maantieteelliselle alueelle sopivaksi Verkkopalvelussa sovelluksen kansainvälinen jakelu on sisäänrakennettu ominaisuus. Webin käyttäjät eivät kuitenkaan juurikaan ole tottuneet mukautuviin palveluihin. Vai? MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 98
Julkaisukontekstin ominaisuudet Julkaisukontekstin tiedot voidaan selvittää eri tavoilla (vrt. käyttäjän mallintaminen): Kysytään käyttäjältä: Tiedot ovat varmasti oikein, mutta käyttäjä joutuu näkemään ylimääräistä vaivaa Selain välittää tiedot pyynnön yhteydessä esimerkiksi CC/PP- tai UAProfprotokollan avulla. Ongelmana on vielä tällä hetkellä se, että päätelaitteet eivät yleisesti tue julkaisukontekstin tietojen välittämistä Eräs käyttökelpoinen keino on HTTP-pyynnön otsikkotietojen lukeminen ja analysoiminen HTTP-pyynnön tapauksessa ongelmana on se, että otsikoissa välitettävien tietojen esitysmuotoa tai arvoja ei ole standardoitu Eräs keino on tarjota käyttäjälle mahdollisuus määritellä erilaiset julkaisukontekstit palvelulle: Nyt käyttämäni laite on kämmenlaite. Tiedot voidaan tallentaa esimerkiksi tietokantaan ja tunnistaa laite seuraavan kerran tietojen perusteella MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 99
Esimerkki: julkaisukonteksti ja HTTP-pyynnön otsikot Selaimen A välittämät tiedot: HTTP_ACCEPT_LANGUAGE: HTTP_ACCEPT: */* HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) Selaimen B välittämät tiedot: HTTP_ACCEPT_LANGUAGE: fi,en-us;q=0.7,en;q=0.3 HTTP_ACCEPT: text/xml,application/xml, application/xhtml+xml, text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 HTTP_USER_AGENT: Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.7.5) Gecko/20041107 Firefox/1.0 Selaimen C välittämät tiedot: HTTP_ACCEPT_LANGUAGE: fi,en-us;q=0.7,en;q=0.3 HTTP_ACCEPT: text/xml, application/xml, application/xhtml+xml, text/html; q=0.9, text/plain; q=0.8, image/png, */*; q=0.5 HTTP_USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1 Mitä tietojen perusteella voi päätellä? Voiko tietojen olemassaolosta tai esitysmuodosta tehdä oletuksia? MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 100
Esimerkki: julkaisukonteksti ja UAProf (1/2) CC/PP-protokollaan perustuva UAProf määrittelee täsmällisen tavan julkaisukontekstin kuvailemiseen. Keksitty esimerkki kannettavan tietokoneen tietojen esittämisestä UAProf-muotoisesta esitystavasta N3-muotoon sarjallistettuna: @prefix : <http://hmopetus.ee.tut.fi/device-profile#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix ccpp: <http://www.w3.org/2000/07/04-ccpp#>. @prefix uap: <http://www.wapforum.org/profiles/uaprof/ccppschema-20010330#>. :LapTop ccpp:component :Mozilla. :Mozilla a uap:browserua; uap:xhtmlversion "1.0"; uap:preferenceforframes "No"; uap:tablescapable "Yes". :LapTop ccpp:component :DefaultSW. :DefaultSW a uap:softwareplatform; uap:ccppaccept [a rdf:bag; rdf:_1 "text/png"; rdf:_2 "text/jpeg"]. :LapTop ccpp:component :DefaultHW. :DefaultHW a uap:hardwareplatform; uap:soundoutputcapable "Yes". UAProf-määritys käyttää tietojen esittämiseen Resource Description Framework (RDF) -kehystä, joka saattaa näyttää vaikeammalta kuin todellisuudessa onkaan MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 101
Esimerkki: julkaisukonteksti ja UAProf (2/2) Julkaisukontekstin kuvaus esitettiin edellä N3-kieliopin mukaan sarjallistettuna RDFgraafina, joten käsittely onnistuu esimerkiksi RDF Query Language (RDQL) -kielellä: SELECT?browser,?xhtmlversion FROM <profile.n3> WHERE (?browser uap:xhtmlversion?xhtmlversion ) USING ccpp FOR <http://www.w3.org/2000/07/04-ccpp#> uap FOR <http://www.wapforum.org/profiles/uaprof/ccppschema-20010330#> Kysely etsii RDF-mallista uap:xhtmlversion-ominaisuuden arvon eli selaimen tukeman XHTML-version. RDQL-kyselyitä tukeva Jena-komentorivisovellus tulostaa kyselyn lopputuloksen seuraavalla tavalla: browser xhtmlversion ================================================================= <http://hmopetus.ee.tut.fi/device-profile#mozilla> "1.0" RDQL-kielen opetteleminen ei ole SQL-osaajalle temppu eikä mikään. PHP-kielen PEAR-laajennuskirjasto tukee ainakin dokumentaation perusteella RDQL-kieltä, joten ei muuta kuin kokeilemaan! W3C määrittelee parhaillaan SPARQL-suositusta, joka on tulevaisuudessa varteenotettava vaihtoehto RDQL-kielelle MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 102
Lopuksi Verkkopalvelun mukauttamiseen liittyvät asiat avaavat täysin uusia mahdollisuuksia Web-soveltajalle, mukautuvan hypermedian perustan muodostavista tekoälyn periaatteista puhumattakaan.mukauttamisen periaate antaa aidon mahdollisuuden verkkopalveluiden saavutettavuus- ja käytettävyysongelmien ratkaisemiseen oikein toteutettuna Taustalla olevasta tekoälystä huolimatta mukautuvan hypermedian ideoiden hyödyntäminen on suoraviivaista verkkopalveluiden suunnittelussa ja toteutuksessa Semanttinen Web ja Web 2.0 esittelevät hyödyllisiä mahdollisuuksia mukautuvan hypermedian ideoiden toteuttamiseen suuressa mittakaavassa. Yhdistelemällä Semanttisen Webin teknologioita ja Web 2.0 ajattelun periaatteita soveltalla on mahdollisuus toteuttaa hajautettuja ja yhteisöllisiä mukautuvia verkkopalveluita hyvin monipuolisesti Mukautuvien verkkopalveluiden toteuttaminen onnistuu ideoiden ja toimintojen tasolla myös perinteisin tekniikoin, esimerkiksi PHP-kielen ja relaatiotietokannan avulla Viittaaminen tekoälyyn johtaa kuulijat usein harhaan; tekoälyssäkin on lopulta kysymys vain ja ainoastaan siitä, että tietokone toteuttaa rutiineja ihmisen puolesta. Ohjelmistot toki ovat huomattavasti keskimääräisiä sovelluksia monipuolisempia MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 103