Tuesday, 12 November 2013

Context is More Than Device ... Perhaps it's About Socks

The SDL Context Engine was born from technology that made a lot of head way in creating web sites that adapted to the device capabilities where we would enhance responsive web design techniques with server side optimisation.

However, the philosophy has always been about contextual experiences way beyond adjustments based on the screen. SDL provides a whole suite of technologies that put a lot of contextual, or ambient, information sources at our finger tips. The Tridion Ambient Data Framework (ADF) has been taking advantage of this for some time.

Let’s start with one of our team architectural definitions.

Ambient information is information that is observed from the continuous interactions between users and applications, along with a devices that the users use to interact. This includes:

  • Customer analytic information.
  • Content item properties consumed by users, and associated content metadata.
  • Device capabilities.
  • Contextual properties that are selected from a context repository.
  • Information from users interactions with social networks.

Such information can help web interactions between you and your customer to be tailored based on who they are, how they are communicating and the user’s intent, just like the conversations between a local shop keeper and their loyal local people can be quite different to conversations with newcomers (VIDEO).

The Context Engine Vocabulary is a strongly typed definition of the language of this contextual information. This vocabulary is grouped together into aspects of the context, such as device, browser, os, user, ui.

Some properties that we provide are :

AspectPropertyType
browserdisplayHeightInteger
browserdisplayWidthInteger
browservendorString
browserversionVersion
devicevendorString
deviceversionVersion
osvendorString
osversionVersion

The vocabulary can be extended way beyond the set of device, browser and os aspects that we provide. So you may decide to extend this vocabulary, for example :

AspectPropertyType
userlikesSet

This vocabulary forms the foundation of the language that we interact with such that may deliver targeted content to a user based on their known desires.
Perhaps you’ll see something like this in one of your Tridion templates.

<tcdl:if expr="user.likes.contains['socks']">Show socks</tcdl:if>