The DIEM project recently had its 3rd year review. Simply put the goal of the project is to develop technologies that enable devices to interoperate better. This is done within the conceptual framework of a Smart Space. A Smartspace is an abstraction of space that encapsulate both the information in a physical space as well as access to this information allowing devices to join and leave the space. In this way the smartspace becomes a dynamic environment whose membership changes over time when the set of entities interact with it to share information between them. A Smart Space is essentially an information storage architecture, where the “smartness” comes from the applications or services that it provides.
For example, your smartphone could notice that your favorite program will start in 5 minutes, based on your profile information or a fan page on Facebook and the TV guide available on the broadcaster’s web page. Then, it could use GPS to find that you are not at home, and deduces that it needs to start the PVR at home. Clearly this kind of an application is not possible today because most devices are islands and they do not expose their internal API’s to application designers.
The DIEM project has emphasized on the one hand on the development of a Smart Space infrastructure, the SmartM3 framework, and on the other hand on the development of a number of domain specific smart space solutions. Our work has been in the development of the Smart Space infrastructure where our focus has been application development tools. Our research group has been working with Domain-Specific-Languages for many years, and we have proposed a DSL based approach to smart space application development. Our goal is to try to hide as much as possible of the Smart Space infrastructure API:s and instead let the programmer concentrate on expressing the essence of the application logic. To give an example: A simple application for a smart space would be a “smart mute function” to your TV. Whenever you receive a phone call, the TV automatically moves into time-shift mode and starts recording the program you are watching, when you finish the call, the TV resumes to show the programming. Application is actually a very simple rule that we can express in our DSL as follows:
with phone:- Phone(id=”phone01″), pvr:- PVR(id=”pvr01″):
when phone.IncommingCall: pvr.Pause
The with clause is a quantifier that binds variables to results of queries. It works over sets of bindings, i.e. instead of binding to a particular phone Phone(id=”phone01″) we could bind to all phones in the Space with phone:- Phone. This approach makes it very easy to express the typical use case of a Smart Space: listen to an event, and the react to it.
The people currently involved in the project are:
Below you can find links to the our main publications on the topic.
Suenson, Espen and Lilius, Johan and Porres, Ivan. OWL Web Ontology Language as a Scripting Language for Smart Space Applications.. In the International Symposium on Rules, RuleML 2011., Jul 2011.
Saleemi, M. Mohsin and Díaz rodríguez, Natalia and Lilius, Johan and Porres, Ivan. A Framework for Context-aware Applications for Smart Spaces. In Proceedings of The 4th conference on Smart Spaces ruSMART 2011
Saleemi, M. Mohsin and Lilius, Johan. End-users Service Composition in Ubiquitous Computing using Smartspace Approach. In Proceedings of the Sixth International Conference on Internet and Web Applications and Services 2011
Kaustell, Andre and Saleemi, M. Mohsin and Rosqvist, Thomas and Jokiniemi, Juuso and Lilius, Johan and Porres, Ivan.Framework for Smart Space Application Development. In International Workshop on Semantic Interoperability (IWSI 2011)