Srinivas Reddy’s Weblog

My Tech Rants

Role of Context in Applications

with one comment

I would like to share my thoughts on understanding the role of ‘Context’ in applications. What makes great applications is their ability to understand the user needs and support him smartly in their work. If we watch kids playing, even as they explore things they implicitly learn the function of different things and try to creatively relate them to what they know.  I am amazed by the way my Son tries to use as a ‘phone’ or a ‘ball’, different things he can lay his hands on.

Now what does this have to do with Applications and Context? While the definition of ‘Context’ in Applications itself would depend on the Application in Context (here I go again…), I would simply think of it as the relation between what the user really wants to achieve and what the application content provides him.  To be more concrete, if we do a search in Google, we get not only search results but also something called ‘contextual ads’. Google implicitly tries to understand user needs and displays related advertisements. While to what extent these ads are ‘in Context or out of Context’ is arguable, it also points to the challenges in design of applications which are fully in sync with what the user wants to achieve. Given that each individual is different, we can at best design a good enough solution suitable for most users. The more information we (ie the system) have about the user (i.e. user profile such as age, gender, occupation…) the more relevant/personalized can the contextual information be made.  Off course this would raise valid privacy concerns (Google knows a lot more about you then you can imagine!) and is mostly likely the biggest hurdle in providing rich contextual applications to users. However in design of domain specific applications where the user group and application scope is more narrowly defined the relevance of contextual data can be higher.

Given that we can some way capture the Contextual data, what can we do with it and why do we need it?

– We can capture the current state of the application for future use. Could be a static snap shot or a dynamic persistent session state

– Access related information. Something like the recommender service of Amazon, that points to related items bought by other users. Use collective intelligence (ex: usage history, tags, ratings…) as basis for recommendations. A more common example could be contextual help, which has a long history of usage in applications but is getting increasingly smarter over time.

– Pass contextual data across application domains. Could be to trigger external processes, activate agents to trigger jobs…

– Enable human interactions by enabling collaboration using contextual data. It provides a shared context using a user specific context

– Relate entities for analysis and business insights. This could be simple drill down using object relationships or a more complex mash up based on the contextual data. (Ex: the ability of new photo categorization software based on image recognition)

– Personalize the information based on the user profile. This is done dynamically by the system then the end-user building his own views

– Context could be generic information such as place and time. This information could be used in different ways by applications ( ex: a mobile phone with Camera and GPS could easily markup the photo with location and time data as needed for various map mash up’s). If additional sensory information is available (temperature, traffic, blood pressure level…) then applications could smartly use them as well

– Design adaptive systems which respond smartly based on contextual data (ex: based on the user status message could be delivered to him on the right channel making use of presence technologies)

Why is ‘Context’ playing a important role now? This is in a way related to all emerging technologies (Mobile technologies, Web 2.0, Software as a Service, Semantic web, Social Networks, Collective intelligence, Collaboration technologies, Service oriented Architectures, ..). They will be useful to end user only when they add value to his usage context and need minimum learning curve. The convergence of different emerging technologies is making this possible

What are the challenges in getting there? Ease of application integration (i.e. passing context data across app domains) is the biggest challenge (apart from the privacy concerns), in particular the usage of unstructured data (ex: E-mail, documents..). Different application silos do not have any common master data which can enable meaningful context reuse. While research in Semantic web tries to address this problem, we have a long way to go. While machine learning is improving all the time, it has a long way to go before it can reach the implicit learning capabilities of a kid. Probably its human usage of Context information, that really sets them apart from the machine :o).

So how do applications produce/consume contextual data? This is a bigger discussion for possible future blog post.

Written by srinivasreddy

December 31, 2008 at 2:25 pm

Posted in 1

One Response

Subscribe to comments with RSS.

  1. […] Role of Context in Applications $B”c(B Srinivas Reddy$B!G(Bs Weblog […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: