Masser af de IT-systemer vi bruger til dagligt bruges ikke af én bruger foran én skærm på et fast sted. Context-aware, eller kontekstbevidste computer systemer og applikationer forsøger at tilpasse sig en bestemt kontekst eller situation. Kontekstbevidst teknologi skal altså opfatte og reagere på forandringer i miljøet eller brugerens behov. Det er inspireret af mennesket evne til konstant at tilpasse sig nye omgivelser og sociale situationer.
Hvis vi ønsker at udvikle kontekstbevidste applikationer så kræver det derfor:
- at vi vurderer hvilke kontekster der er relevante for en given applikation
- at vi kan fortolke en kontekst ud fra de data, der er til rådighed.
Det er dog ikke altid ligetil. Menneskets evne til at navigere i en kontekst er dynamisk og flydende og den samme handling kan have vidt forskellige betydniner i to forskellige situationer.
Kontekst
Der er forskel på den kontekst, som mennesket kan opfatte og som teknologien kan opfatte hvilket gør det til en interessant opgave at definere kontekst.
“[Context is] any information that can be used to characterise the situation of entities (i.e., whether a person, place, or object) that are considered relevant to the interaction between a user and an application, including the user and the application themselves. Context is typically the location, identity, and state of people, groups, and computational and physical objects.” [Dey et al 2001]
En kontekst er altså ikke bare en kontekst. Den afhænger af hvilken teknologi der er til rådighed; dens muligheder og begrænsninger. Den afhænger af de mennesker der bruger den, hvordan de forstår ting og hvordan de har det. Den afhænger af hvilke typer situationer den bruges i, under transport, i mødelokaler osv.
Derfor kræver sådanne applikationer en grundig analyse af brugssituation for at forstå hvilke data, der kan tolkes til hvilke kontekster. I den forbindelse er machine learning et rigtig godt redskab. Det er ofte nødvendigt at gå på kompromis med hvor meget data, der indsamles, af hensyn til teknologiske begrænsninger såsom batteri. Det kan også være nødvendigt at tage hensyn til hvilke data der indsamles for at respektere brugerens privatliv.
Håndtering af kontekst
Når applikationen har modtaget data og fortolket disse til en kontekst kan man forholde sig til dette på flere måder.
Man kan f.eks præsentere brugeren for information om konteksten eller en række valgmuligheder som bliver relevante udfra en given kontekst, f.eks. genstande som er tæt på brugeren kan fremhæves eller gøre nemmere at vælge.
Man kan også vælge at benytte informationen til at ændre resultatet for den samme hændelse afhængig af hvilken kontekst de aktiveres i.
Slutteligt kan man vælge simple IF-THEN regler, f.eks. HVIS det regner SÅ tag busrute frem for cykelruten til din ønskede destination.
Konteksten kan altså fungere både med og uden brugerens indgriben, hvilket rejser nogle spændende etiske problemstillinger omkring hvor meget af konteksten vi egentlig skal forudsige i en given situation og hvor meget data vi kan og bør indsamle. Her løber vi ofte ind i at selvom man beder om brugerens samtykke er det ikke altid at de træffer en velinformeret og velovervejet beslutning.
Det kan være svært at overskue konsekvenserne af kontekstbevidsthed og det er ikke altid ligetil at vurdere en kontekst ud fra tekniske data, men hvis det gøres godt så kan programmer og applikationer forbedres til den optimale brugeroplevelse.