INES – National Institute of Science and Technology for Software Engineering

RSS feed


December 2021
« Nov    

  • S.Ma.R.T – Social Machines Research Team

    Publicado em October 14th, 2011About the Institute, News

    The traditional concept of software has been changing during the last decades. Since the first definition of a computing machine described by Turing, software started to become part of our lives and has been turned pervasive and ubiquitous with the introduction of personal computers, the internet, smartphones and, of later, the internet of things. In fact, one can say that software and the internet changed the way we communicate, the way business is done and the internet is changing the way software is developed, deployed and used. Nowadays, computing means connecting; and it just may be the case that developing software is the same as connecting services.

    Although there have been many studies about the future of the internet and concepts such as web 3.0, programmable web, linked data and semantic web, the segmentation of data and the issues regarding the communication among systems obfuscates the interpretation of this future. Kevin Kelly, of Wired fame, is quoted as having said once: “The internet is the most reliable machine ever made. It’s made from imperfect, unreliable parts, connected together, to make the most reliable thing we have”. Unstructured data, unreliable parts and problematic, non-scalable protocols are all native characteristics of the internet that has been evolving for 40 years; at the same time, they are the good, the bad and the ugly of a web in which we rely more and more in the everyday life of everything, that needs a unifying view and explanations in order to be developed, deployed and used in a more efficient and effective way.

    Indeed, the web is changing in a fundamental way and approaches such as SOA, REST, XaaS, and Cloud Computing each play an important role in this emerging web. However, the read/write and programmable webs are recent enough to represent very serious difficulties in understanding their basic elements and how they can be efficiently combined to develop real, practical systems in either personal, social or enterprise contexts. There has not been a clear, precise description of each and every entity on this new emerging web (above the basic, 1.0, which is a restriction of it) and we believe it is necessary to create new mental models of such a web as a platform, in order to provide a common and coherent conceptual basis for the understanding of this young, upcoming and possibly highly innovative phase of software development.

    In this context, this project aims to explain the web in terms of a new concept named Social Machines (SM). We define a notion of social machine and envisage an algebra that can describe networks of such. To start with, social machines are defined as tuples of input, output, processes, constraints, state, requests and responses; apart from defining the machines themselves, the algebra defines a set of connectors and conditionals that can be used to describe the interactions between any number of machines in a multitude of ways, as a means to represent real machines interacting in the real web, such as Twitter, Twitter running on top of Amazon AWS, mashups built using Twitter and, obviously, other social machines.

    This is not a theoretical initiative as yet; but, in more than one sense, we think that this work contributes to the process of providing a unifying vision to describe web based information systems and are starting to work on what could be a practical way of dealing with the complexity of this emerging web of social machines.

    If you are interested to interact and collaborate with this initiative you can start reading this paper and contact by email

    , , , ,