We are planning the following research roadmap. On a high level, our research includes both short- and long-term goals. One of the pragmatic goals of our short-term research is prototype development. We plan to experiment with the developed prototype in order to collect practical experience needed for the long-term theoretical interdisciplinary research and evaluation, and for laying the foundation for converting the current prototype into a complete solution for consumer-driven application development and platform for consumer computing.
As a part of our short term research goal, we plan to use currently available Web technology to develop the widget-based Geppeto Consumer Programming Tool (http://www.geppeto.fer.hr/). Geppeto enables consumers to develop their application by using simple agents represented by three types of widgets: application-specific, collaborative, and generic. Recursively composing these three types of widgets, consumers build applications in the form of new widgets (widget-oriented architecture). While application-specific widgets provide application domain specific functionalities, generic widgets are programmable by demonstration enabling consumers to define data and control flow over the widget composition and build: secure and dependable applications that protect their privacy; event-driven, time-driven, and location-sensitive applications; real-time applications; context-aware applications; and, communicating and synchronized distributed mobile applications. Collaborative widgets use crowdsourcing and collective intelligence methods to help consumers during application development.
We plan to experiment and apply the Geppeto tool in a variety of application domains (business, entertainment, health, and energy), systems (cloud, mobile, system-on-chip), and environments (Smart Environments and Internet of Things).
Results of experimentation will be used to make theoretical models of intelligent agent socialization more realistic. Models of intelligent agent socialization define consumers’ role in a converging environment of self-organized collaborative intelligent agents coming from different Smart Environments and the Internet of Things.
We plan to research how to harness the power of human and machine intelligence in which both people and computers not only interact, but also reason and assist each other in self-organizing intelligent agent environments comprised of computers, software engineers, domain experts, and consumers collaboratively building applications in a way suited to their level of education and understanding of information technologies.
While advances of intelligent agent environments consisting of collaborative networks of computers and humans open many interesting theoretical questions in modern social epistemology, for example the relationship between individual and collective knowledge, emerging technologies like our Geppeto Consumer Programming Tool shift the effort from theoretical discussions to practical approaches in tackling explicit epistemic problems, for example in the domain of collective programming knowledge. We aim to create a capability to use formal modeling of collective programming knowledge as a starting point for a “collective programmer” effort: give insights into collective programmer existence, discover how and what the collective programmer knows, explore the relation between collective and individual programmers, inquire into how a collective programmer’s knowledge can assist individual programmers creativity, and look into whether the collective programmer requires second order knowledge.
Research will include both models where application development is distributed to a group of people or community (crowdsourcing) ensuring human-to-human collaboration and models of machine learning, statistics, data, process, and behavior mining (collective intelligence) that enrich quality of human-to-computer collaboration during the application development process. Crowdsourcing models will describe how to make attractive application development problems available to consumers; how to have a qualified crowd; how to attract consumers from a large enough pool to guarantee a diverse array of approaches; how to express consumers’ individuality; how consumers’ individual knowledge will not be diminished; and how to aggregate and process each individual consumer’s contribution. Collective intelligence models will explain how to draw conclusions about consumers’ experience during application development, applications usage in application development process, and human behavior in collaborative application development — all from information collected from consumers and applications’ ontology and morphology.
Similar to integration of social interaction and interactive processes into social software applications that include communication and interactive tools, we will expand our research to integration of other social phenomena, such as synchronization, dependability and security, into social software applications. Consumers will not use these social software applications just as tools for their synchronization and tools that make their communication and interaction dependable and secure, but also as mechanisms that will provide basic building blocks in synchronization of their applications and help them develop dependable and secure applications. In addition, we will research the implementation and collaboration of social mechanisms with software engineering mechanisms.