Saturday, January 18, 2014

Proposing - Context Intelligence System(CIS)

Website/App has to adapt and behave in accordance with the Context. I'm sharing a design  idea of  a software component to achieve this context aware behavior. For now, I name this component as "Context Intelligence System(CIS)".

What is Context?


User may be a registered user (or) who visits your site without signing in which can be identified by a cookie.  User's are mapped to location , device,  time stamp, social media data, interests etc. to form a context.

Context can also be any other circumstantial data relevant to the product. For example,
- User Affinity to the product  like first time user, active user can be a context
-  Data from outside circumstances and surroundings which are relevant to your business.  For example, weather data, stock market data etc. can also be part of a context.



CONTEXT INTELLIGENCE SYSTEM(CIS)



You can see from above picture, CIS has two components - CIS - Data Store and  CIS -Engine.

CIS - Data Store


CIS will be the central location for all context related data.  Below I have listed down the various types of data that can go into this CIS datastore.

This is a sample data set, selection of this data are highly specific to your business.
1) User location, device, time-stamp data are stored and manged here.
2) Data from your third party data stores like Janrain(user social media data) are pulled and stored here.
3) External available data like weather information, stock market data.etc can be stored here.
4) User actions, User Product affinity are aggregated and stored here.
We can use Hadoop or any other big data solution to collect, crunch and store this data.

CIS also captures and mange the data real time when user interacts with your app. Real time data can be device info, location info .etc

CIS datastore has very good data-set, so this data can be used by other components in your system like recommendation engine, BI.

Point to consider  - Data Duplication.  Make careful decision when you have a requirement to duplicate the data from original data store.

CIS - Engine


CIS Engine is the core component of CIS System.  It performs the below operations

Context specific API Facade


CIS Engine add context specific parameters to your API call via API facade layer. CIS gives personalized context aware behavior to the API.  ( You can read this eBook to know about API facade -http://apigee.com/about/content/api-fa%C3%A7ade-pattern)

For example,

We can pass the context like device, location to the API call  to make your API context aware.
Search API call for the default search page can have items related with the context.
Notification API call can get the context (device =mobile and location) to display context aware notification


Context Rules


CIS Engine have context rules to perform context specific decision making.

For example,

Rule1 - If the context = (device=mobile) --->send notification about the nearest store offer.
Rule2 - If the context = (location=Boston,weather=raining) ---> run the Google Adwords campaign in this locality for a product/food that people like in rainy days.
Rule3 - If the context = (action=discarded shopping cart) ---> send the mail and run the re-marketing campaign
Rule4 -  If the context = (user affinity=first time user) ---> display the notifications for first time users
Rule 5-  If the context = (user affinity=active user, location=Los Angeles) ---> roll out a new feature (This helps to roll out a new feature for selective audience.)

Rule2 talks about Google Adwords. Google Adwords provides API's to manage campaigns. Here depending on a context, you can pause or restart a campaign.  Campaign management can be automated to a extent to be in-line with the context. ( Other marketing platform like facebook, twitter works in similar way.)


Adaptive User Interface(AUI)


Adaptive UI/ website itself is a broad topic with separate design patterns and principle, so I didn't put the adaptive UI design in this CIS scope. As CIS stores and manages all context information, I believe it can also manage the functionality/code for adaptive website. 


What's new about CIS?


Having the context aware system at the center place helps to better mange, have control and visualize the things. CIS gather all useful information about users, actions, context at one place for better decision making and applying rules. Like any other development, you can build CIS iteratively and improve.

This is the initial design of CIS and there may be scope of improvement.

No comments:

Post a Comment