6 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 hypermedian (adaptive hypermedia) periaatteet: 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 2007) 104
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 Jakelukontekstin (tai palvelukontekstin, vrt. Saavutettavuus-opintojakso) (delivery context) kuvaileminen: Composite Capability/Preference Profiles (CC/PP) ja User Agent Profile (UAProf) Keino käyttäjään liittyvien tietojen välittämiseen palvelulle Pohjana joustavalle julkaisemiselle Räätälöity tai joustava julkaiseminen Semanttisessa Webissä: Semanttisen kuvauksen perusteella tietosisällöstä voidaan valita oikeat tietoalkiot, jotka esitetään jakelukontekstiin soveltuvassa muodossa Suljetun järjestelmän toteuttaminen onnistuu mainiosti esimerkiksi relaatiotietokannan, PHP-kielen ja HTTP-protokollan avulla MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 105
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 2007) 106
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ä esimerkiksi kielitaito, äidinkieli ja kansallisuus Brusilovskyn mukautuva hypermedia keskittyy suurelta osin sovelluksen navigaation muokkaamiseen, mutta myös sisällön mukauttamisessa on lukuisia mahdollisuuksia MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 107
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 2007) 108
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ä esimerkiksi 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 2007) 109
Kansainvälistäminen ja kotoistaminen Sovelluksen mukauttamisessa käyttäjälle sopivaksi voidaan ottaa oppia myös kansainvälistämisestä (internationalisation, i18n) ja kotoistamisesta (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, kulttuurille 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 2007) 110
Jakelukontekstin 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 2007) 111
Esimerkki: jakelukonteksti 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_ENCODING: gzip HTTP_ACCEPT: text/html, application/xml; q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*; q=0.1 HTTP_ACCEPT_LANGUAGE: en-us,en;q=0.9 HTTP_USER_AGENT: Opera/8.01 (J2ME/MIDP;Opera Mini/3.1.7196/1644; en; U; ssr) 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? Onko tietoja mahdollista väärentää? MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 112
Esimerkki: jakelukonteksti 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 aluksi vaikuttaa monimutkaisemmalta kuin lopulta onkaan MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 113
Esimerkki: jakelukonteksti 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" W3C:n SPARQL-suositus (http://www.w3.org/tr/rdf-sparql-query/) esittelee rikkaammat mahdollisuudet kyselyiden tekemiseen. Java-soveltajien käytössä on DELI-kirjasto (http://sourceforge.net/projects/delicon/), joka antaa mahdollisuuden CC/PP- tai UAProf-muodossa esitettyjen tietojen jäsentämiseen. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 114
Lopuksi Verkkopalvelun mukauttamiseen liittyvät asiat avaavat uusia mahdollisuuksia Websoveltajalle. Mukauttamisen periaate antaa oikein toteutettuna aidon mahdollisuuden verkkopalveluiden saavutettavuus- ja käytettävyysongelmien ratkaisemiseen Taustalla olevista tekoälytieteen periaatteista huolimatta mukautuvan hypermedian ideoiden hyödyntäminen verkkopalveluiden suunnittelussa ja toteutuksessa on suoraviivaista Semanttinen Web ja Web 2.0 sateenvarjo 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 Mukautuvien verkkopalveluiden toteuttaminen onnistuu 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. Toiminnallisuudet voivat toki olla keskimääräisiä sovelluksia monipuolisempia MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 115