Sunday, December 5, 2010

On intention language - take one

I am in a one week vacation now (not related to the big fire in the Carmel mountain),  had some vacation days to finish before the end of the year, and thought that the week of Hannukah is a good timing.   When I lived in the USA I surprisingly found out that Hannukah became a major Jewish holiday, but this was done due to its proximity to Christmas so that the Jewish children would not be deprived of the holiday season spirit, and the gifts.   In Israel, Hannukah is a minor holiday, people are working (unless they take vacation), and it is a week vacation in schools, thus the timing of my own vacation, spending time with my daughters. 

Driving one of my daughters today got me a good example why an "intention language" is needed if we want "business users" to program event processing systems.  I have a Bluetooth support in my Toyota Verso car, and with some effort I succeeded to program my mobile phone to connect to it, so if I am getting a call while driving I don't have to touch the phone, but can answer using the car's buttons, and hear the voice on the car's radio system.   

Today,  I realized that I need to reset the phone, something was not working properly, and I closed and opened it again -- did it while parking, I am not playing with the phone while driving!   when the phone came to live again it was working properly, but did not connect to the car's Bluetooth.  I realized that the connection is event-driven, assuming that the phone is operating when one enters the car, and the car is the one who is starting, so I tried to validated this theory by turning the car's engine off, and then turning it on again, and as I assumed, this did the trick.   

What I really want to have is an intention language:  whenever the car engine and the phone are both working, the phone should be connected to the car's Bluetooth.   

The way it really works is:   When the car is starting and the phone is already working, connect it to Bluetooth.

In most cases there is no difference between the two, but in case where the car is already working, it really does not.

When writing things in event-driven way -- it sometimes difficult to capture all possible cases, so we need and intention language which should be then translated to an event-driven one.    This is not an easy task, but one of the big challenges ahead.  I wonder if there are any relevant work, not just for simple cases like this one.
More - later.  

No comments: