Dr Petros Papapanagiotou

Senior Scala Engineer

Lightweight Social Calculus


We would like to change the way in which social machines are built. The central premise is: there is a model of interaction which sits behind any social machine, governing who can do what when, which kinds of messages can be sent and to whom, shaping the ways in which the complex socio-technical system unfolds through time. However, these interaction models are often not explicit, transparent, editable, discoverable, composable and so on, as they are scattered through many interacting pieces of code. In response, we are looking at a way to create social computation systems by starting with an interaction model, allowing all of the other components of a modern, large scale interactive system to be organised around a representation of the communication and coordination which takes place.

In order to explore this space, a modified version of the Lightweight Coordination Calculus (LCC) is used, termed the Lightweight Social Calculus (LSC). It is an executable, declarative process calculus for interactions between heterogeneous agents. Use of LSC is based on the enaction of protocols, which give a minimally intrusive framework for defining patterns of communication without overly constraining the internal knowledge and decision making architecture of the actors involved.

There are several motivations for doing this:

In order for this to work, humans need some way to engage with protocols as they are enacted. One mechanism for doing this is to create an interface with which people can engage, whether through webpages or mobile devices, or mediated through APIs of some sort. This is the means of engagement with which we’re familiar from earlier LCC work. Another possibility is to find a way to run the protocols alongside existing interaction, annotating their behaviour with formal structures. We call this approach ‘Soft Institutions’, where the formal edges of electronic institutions are softened to provide natural, human ways for people to engage with them.

LSC is a declarative, executable specification designed to give enough structure to manage fully distributed interactions by coordinating message passing and the roles which actors play, while leaving space for the actors to make their own decisions. It is derived from LCC with extensions designed to make it more amenable to mixed human-machine interactions; in practice, this means having language elements which cover user input, external computation or database lookup and storing knowledge and state.