In the play “The Tea house of the August Moon” one of the characters says: Pornography question of geography
This says that in different geographical contexts people view things differently
Furthermore, the syntax of the language (no verbs) is typical to the way that the people of Okinawa are talking
When hearing concert people are not talking, eating, and keep their mobile phone on “silent”.
Our IT systems are catching up Context is becoming a first class citizen in computing Gartner has designated Context enriched services and Context delivery architecture as Part of its application integration Hype Cycle of 2009
This tutorial’s agenda Part I: Context in general Introduction – context in pragmatics and language Roles of contexts in computing Introduction contexts in event processing Part II: Context in depth Introduction to Context categories Temporal context Segmentation context BREAK Spatial context State contexts Context composition Part III: Context in practice Operational semantics of context Context implementation in practice in event processing Context implementation in other computing areas Conclusion
Context in language – why are we laughing from jokes?
A man walks in the street with a duck, his friend approaches him
Friend: why are you walking with a duck?
Man: I went out of home and this duck followed with me and doesn’t leave me alone
Friend: take him to the zoo
Next day the same man still walks in the street with a duck, his friend approaches him again
Friend: why haven’t you taken the duck to the zoo?
Man: I took him to the zoo, cinema, pub– he still doesn’t leave me alone
Where is the context switch?
Another joke example Four researchers are exploring the jungle, and are captured by a tribe of cannibals The chief of the tribe said: we shall eat this one today, this one tomorrow, and this one the day after His deputy asks: what about the blond Guy? The chief answers: we shall release him, since he helped me preparing to the PhD qualification exam in MIT
The context switch principle The cannibals are wild The cannibal chief has PhD from MIT
Meaning disambiguation by context The table? “ The” is always within context
Some parts of the language affected by context Addressing people Request form Code switching for multi-lingual people Discourse context – e.g. shared experience
Context as “behavior selection” In some countries I carry money in my wallet, in other countries I hide the money under my clothes When the radio tells me about a traffic jam in the highway I take an alternative route If I am getting a request from an important person I re-arrange my priorities to handle it first (otherwise I put it in a queue) A Jewish person who observes the religious laws does not eat diary food within six hours from the time of eating meat I need to get to a certain address in Sidney using public transportation, I am looking for fastest way (train, bus, boat) Spatial Context State-oriented Context Segmentation Context Temporal + segmentation Context Spatial + temporal + state-oriented context
Context in pragmatics – travelling in Sydney Request Determine Context Select Service Take me to address X Requester is now in location Y; no car; has daily ticket for all public transport; it is rush hour Selected alternative
A major step towards modeling the real world functional behavior
Most of the software considers only direct information
Context-aware software acts also upon (indirect) relevant information, which represents the conditions under which the processing is done
Automatic tow service ordering system
Calls routing application
“ Context-aware computing is the concept of leveraging information about the end user to improve the quality of the interaction” (Gartner 2007)
Software Architecture in the Context of History Era of the Mainframe OLTP Batch Agility of Enterprise IT 1960s 1980s 1970s 1990s 2000s 2010s Era of the Server Two-tier Era of the Web SOA Three-tier CoDA Era of Context Presence Mobility Web 2.0 Social computing Time 2020s Advanced SOA = event-driven SOA CoDA = Context-driven Architecture Web Web Services Multi-channel PC LAN Server Internet Advanced SOA XTP CEP S/360 SNA Mainframe (Gartner 2007)
Context-aware Computing Context (indirect relevant information) Service Input (direct imperative information) Data stores Web feeds Services Events Sensors Queues Logs
Context has three distinct roles (which may be combined) Partition the incoming events The events that relate to each customer are processed separately Grouping events together Different processing for Different context partitions Determining the processing Grouping together events that happened in the same hour at the same location
Contextual representation of event Spatial coordinates System entry point Detection time Occurrence time
Context Definition A context is a named specification of conditions that groups event instances so that they can be processed in a related way. It assigns each event instance to one or more context partitions . A context may have one or more context dimensions. Temporal Spatial State Oriented Segmentation Oriented
Context Types Examples Spatial State Oriented Temporal Context “ Every day between 08:00 and 10:00 AM” “ A week after borrowing a disk” “ A time window bounded by TradingDayStart and TradingDayEnd events” “ 3 miles from the traffic accident location” “ Within an authorized zone in a manufactory” “ All Children 2-5 years old” “ All platinum customers” “ Airport security level is red” “ Weather is stormy” Segmentation Oriented
Context Building Block Context identifier Context dimension Context type Context parameters Context initiator policies Building Block Describing Context Context Details Explicit Partitions Partition identifier Partition parameters Composition Details Relationships Member contexts Priority Order Location service global state
Events grouping - group events to process them together based on the fact they have occurred during the same interval
Example: count all the bids within the auction period
EPA applicability - indicate that a certain event processing agent is applicable within certain intervals and is not applicable in other intervals.
Example: detect if all printers at the same floor are off-line during working hours.
Temporal interval is a half open interval [Ts, Te)
Ts is start-point, included in the interval
Te is end-point, not included in the interval
Temporal context is aimed to partition the temporal space into time intervals.
Fixed Interval Fixed interval Interval start Interval end Recurrence Temporal ordering In a fixed interval context each window is an interval that has a fixed time length; there may be just one single window or a periodically repeating sequence of windows. July 12, 2010, 2:30 PM + 3 hours 08:00 10:00 08:00 10:00 08:00 10:00
In an event interval context each window is an interval that starts
when the associated EPA receives an event that satisfies a specified
It ends when it receives an event that satisfies a second predicate, or
when a given period has elapsed.
Event interval Initiator event list Terminator event list Expiration time offset Expiration event count Initiator policy Terminator policy Temporal ordering Patient’s admittance Patient’s release Earthquake From patient’s admittance to patient’s release + 3 days Within 3 days from an earthquake
Sliding Fixed Interval In a sliding fixed interval context each window is an interval with fixed temporal size. New windows are opened at regular intervals relative to one another. Sliding fixed interval Interval period Interval duration Interval size (events) Temporal ordering 2 hours 2 hours 2 hours 1 hour 1 hour 1 hour
Sliding Event Interval A sliding event interval is an interval of fixed size (events number) that continuously slides on the time axis. Sliding event interval Event list Interval size (events) Event period Temporal ordering Every 3 blood pressure measurements
initiator event = volcano eruption, expiration time offset = + 3 days
March 5, 2010 10:00 March 7, 2010 06:00
Context Initiator Policies – cont. A context initiator policy is a semantic abstraction that defines the behavior required when a window has been opened and a subsequent initiator event is detected. add ignore refresh extend
Context Terminator Policies – cont. A context terminator policy is a semantic abstraction that defines the behavior required when several windows have been opened by subsequent initiators. first last all
Segmentation Oriented Context A segmentation-oriented context assigns events to context partitions based on the values of one or more event attributes, either using the value of these attributes to pick a partition directly, or using predicate expressions to define context partition membership. Segmentation-oriented Attribute list Partition identifier Partition expression
A f ixed location context has predefined context partitions based on specific spatial entities. An event is included in a partition if its location attribute indicates that it is correlated with the partition’s spatial entity.
Relations between the event’s location and the context entity’s location An event is classified to a context partition if satisfy a spatial relationship with fixed entity
Fixed location examples A person enters the house: The house location is an area, the person’s location is a point; the relation is touches A car parks across two lanes The car parked location is an area, the lane is an area; the relation is overlaps An Alzheimer patient has gone outside of the safe zone defined by his family. His location is a point, the zone is an area; the relation is disjoint
An entity distance location context assigns events to context partitions based on their distance from a given entity. This entity is either specified by an event attribute or is given as part of the context specification
Entity d1 d2
Entity distance location examples A driver enters the restaurant’s interest context when arriving to a certain radius from the restaurant A bus is within the context of a certain bus station if it is within a certain distance from the station
An event distance location context assigns events to context partitions based on their distance from the location of the event that triggered the creation of the partition.
Event distant location example A fire breaks within a certain radius from the earthquake epicenter The distance space is partitioned, different actions for different partitions A suspect fits the criminal’s profile is arrested within a certain radius from the crime scene
Where states are coming from? Explicit state machines Observation in Workflow/BPM State of some entity Typically stored in DB/ global variable
State examples When the CPU is overloaded When a backup is running When a person is presenting When the mood in Wall Street is bullish.
The temporal aspects of state Occurs while a state is valid? The “while” may be determined by detection time or by occurrence time If the state is – raining, Then it makes sense that the association of events is determined according to occurrence time If the state is – CPU is overloaded Then it makes sense that events that result in further processing are associated according to their detection time.
Composite context A composite context is a context that is composed from two or more contexts. Example: the set of context partitions for the composite context is the Cartesian product of the partition sets of its constituent contexts.
Composition of context – some observations: The most common combination is: segmentation and temporal The relations between the composed contexts can be – union or intersection (intersection is the more common) There may be multiple composition participants In some cases a priority is needed to disambiguate the context affiliation State: rainy union Temporal: every day between midnight and 6am Segment: customer Temporal: Every 10 orders Segment: driver Temporal: Within 1 hour from an accident Spatial: within 5KM from the accident Segment: customer Temporal: Every 10 orders
Priorities in event composition Temporal: Every 10 orders Segment: customer First create group of 10 orders and this group by customer The temporal context has higher priority
Priorities in event composition Segment: customer Temporal: Every 10 orders First group of by customer and then count 10 orders for each customer The segmentation context has higher priority
Context in Practice – Oracle EPL SELECT * FROM Withdrawal RETAIN 5 EVENTS SELECT * FROM Withdrawal RETAIN 4 SECONDS
Context in Practice –Sybase (Aleri/Coral8) CCL CREATE WINDOW Book_w SCHEMA Book_t KEEP ALL ; INSERT INTO Book_w SELECT * FROM Book_s; The KEEP policy specifies the kind of window. Here are some examples: KEEP LAST PER Id KEEP 3 MINUTES KEEP EVERY 3 MINUTES KEEP UNTIL (”MON 17:00:00”) KEEP 10 ROWS KEEP LAST ROW KEEP 10 ROWS PER Symbol
MIT Media Lab – context in kitchen appliances The Context-Aware Computing group is focused on demonstrating the possibilities for controlling systems with interpreted human intention. The goal is to demonstrate how “context” such as who we are, what we are doing, where we are doing it, why we might be doing it, and when it should be done can simplify our ability to control systems. http://context.media.mit.edu/press/index.php/about/
MIThril – context aware wearable computing http://www.media.mit.edu/wearables/mithril/ Based on sensing and machine learning – context engine and wearable sensors and processors
Sixth sense http://www.media.mit.edu/research/highlights/sixthsense-wearable-gestural-interface-augment-our-world
Context and websites Contextualization of websites: making them appear in searches of certain category (reverse engineering of the search engine algorithms) Using the user’s context to generate results Contextualization of websites: making them appear in searches of certain category (reverse engineering of the search engine algorithms)
IBM Entity Analytics – context acquisition by dependencies Good Guys Subjects of Interest Hotel guests Loyalty club enrollment Employees Vendors Victims Specially designated nationals Excluded persons Gaming license revocations Known cheaters Interpol FBI Most Wanted
Context Separation of context from the logic Next phase of abstraction independence BPM and rules provided separation between programming in the large and programming in the small Databases provided data independence
Context is: One of the key building blocks in event processing modeling A language construct that starts to appear in event processing languages An emerging concept in enterprise computing