The Emerging Web of Social Machines - V0.07
The Emerging Web of Social Machines - V0.07
Abstract
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 work is not a theoretical paper as yet; but, in more than one sense, we think we have
found a way 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 that is all around us.
This version should be read as work in progress and comments, observations, bugs... are most welcome
and should be sent to the email of the first, corresponding author.
Disclaimer
This is a very early report of work in progress,
progress being made available in this version and timing to help
creating context for the submission of proposals for the MSc and PhD degrees at Federal University of
Pernambuco at Recife. The authors welcome all sorts of comments and contributions; at some stage in
the future, we hope to submit a later version of this report to be considered for publication in a learned
journal.
Acknowledgment
This work was partially supported by the National Institute of Science and Technology for Software
Engineering (INES
INES,
INES www.ines.org.br), funded by CNPq and FACEPE, grants 573964/2008-4 and APQ-1037-
1.03/08.
2. Related Work
Although the concept of Social Machines overlaps other research fields and issues currently well studied such
as SaaS, Cloud Computing, SOA and Social Networks, we have not found any research that deals with the
concept as we do propose herein. Some authors had already mentioned the term Social Machines, as [Roush,
2005]. However, the expression has been used with a different meaning, representing human operated
machines responsible for socializing information among communities, that is, an intersection of the areas and
studies of social behavior and computational systems.
The notion of social machines described in this work is not related to or does originate from Deleuze and
Guattari's; theirs are virtual machines operating in given social fields [Patton, 2000]. It is nonetheless
interesting that they (or indeed Guattari in [Guattari, 1995]) thought of language and mass media as "large
scale social machines" (as discussed in [Fuglsang & Sørensen, 2006]), systems that (in society) consume,
produce and record (information) and, maybe even more relevant to our approach, are connected at large.
In contemporary robotics, there is a notion of social machine, but that is also unrelated to what is proposed
here; the robotics view of a social machine is that of one that can relate to people, i. e., can demonstrate
empathy to humans. But attempts to build "empathy machines" [Eller & Touponce 2004] are not new: the
japanese chahakobi ningyo, windup dolls that are capable of serving tea [Hornyak, 2006] are centuries old and
antecedents of japanese robots of all sorts that, somehow, interact with humans nowadays [Kroker & Kroker,
2008].
Having said so, it is very likely that the notion of social machines introduced here was waiting to be described
for some time now, reason why we do not claim to have invented it but rather to have discovered a new
interpretation of the expression in a particular setting, that of a network of programmable machines that are
connected to each other and also connect people and institutions in a web of computing, communication and
control that needed a much more abstract description and formalization than its external behavior in the form
of a public (web) interface and number of APIs on top of the de facto standard internet protocols.
In what follows, we are going to try to define the web of programmable machines in terms of the interpretation
we are assigning to the expression "social machines", without any hope of having covered the whole of the
subject, its wider implications and, even more important, its foundational theories.
We are still doing the basic research on an algebra that can be used to describe social machines, their networks
and interactions between any number of them; for now, let us define each element of a SM as:
• Relationships
Relationships,
ips <Rel>: A SM can connect with other SMs following any well defined protocol. The concept
of relationships between SMs is similar to that of relationships between people; we can view them as
trusted relations between different SMs, satisfying established constraints. For example, if a specific
SM intends to establish a trust relationship with Twitter.com it needs to meet twitter’s connection
contraints1. This gives us the liberty to connect any number of SMs through the Web in order to form
different networks and implement new services from the ones that already exist. The types and
degrees of these relationships are explained in more details in Section 3.2.
• Wrapper Interface,
Interface <WI>: wrapper interface is a communication layer through which a SM externalizes
its services and allows interactions with other SMs on the web. For example, considering Twitter as a
SM, the API it provides can be considered a wrapper interface. Through Twitter’s API it is possible to
interact with its main services (search, tweet, direct messaging, retweet...). It is important to
highlight that APIs represent one instance of interactions. Facebook, for example, uses email
notification to alert users of new wall posts; in this case, Facebook’s email service is a another type of
wapper interface.
• Request,
Request <Req>: A request can be seen as a remote procedure call to the services provided by an SM’s
wrapper interface. Requests can be of two types:
1
http://dev.twitter.com/pages/rate-limiting
A Wrapper Interface of a Social Machine is the element responsible for the incoming and outgoing traffic of
information and therefore an interface for the exchange services between Social Machines. If a given Social
Machine does not provide means for interacting with its services then this Social Machine is classified as
isolated.
isolated. A typical example is a simple standalone application.
If a Social Machine has the ability to interact
interac with other machines then it is said to be sociable. A Social Machine
that provides services to other Social Machine can be classified as a provider.
provider. Applications such as Bitly, Twitter
and Google Maps are all good examples of Social Machines as providers.
A Social Machine may also consume services that others provide. Web applications that consume services
servi from
other web applications (usually called mashups) are examples of Social
Machines as consumers
consumers. Seesmic, Tweetdeck,
Tweetdeck HousingMaps and
Wikipediavision consume services from Twitter, Google Maps and Wikipedia.
Finally, a Social Machine can both
th provide and consume services,
being prosumers
prosumers; they consume media and information from
one or more Social Machines,, process this information,
combine it and provide the processed data to other Social
Machines. The application described on our case study is an example
exa of
this type of Social Machine; Futweet is a SM that interacts with other
applications and also provides its own services.
One way to compare Social Machines is in terms of the Figure 3: Social Machines as a partial order diagram.
complexity of the interactions between them, which is
shown by the classification in Figure 3,
3 that of a partially ordered set.
4. Case Study
In this section we describe a real system (Futweet) which was developed using the unifying idea we have been
discussing so far. Futweet is both a social network and a guessing game about football (soccer)
results. Initially developed for Twitter users, Futweet was subsequently connected with other online social
networks, e.g. Facebook and Orkut, making it a good case study for illustrating the development of an
application that uses the concept of Social Machine.
2
http://www.cis.upenn.edu/~cis610/discmath5.pdf
@futweet <TEAM1 Acronym> <Score for TEAM1> X <Score for TEAM2> <TEAM2 Acronym>
Futweet has an engine that periodically searches for tweets with this pattern, extracts the information that
represents the guess of a user and then recalculates the overall rank. Since Futweet also exists as embedded
Figure
Figure 5: SMADL
• Request specifies the signature of a remote procedure call to a service defined by the SM’s wrapper
interface.
• Parameters are the parameters of a request.
• Response represents the reply to other SMs through the wapper interface.
• Relationships represent and mediate interactions between social machines.
• ConnectionSettings specify settings to be used in a relationship between two social machines.
• Properties are annotations that store additional information about other elements (Constraints,
Request, etc).
The listing below summarizes the specification of the Futweet network in SMADL, with a lot of the details
omitted to facilitate looking at the overall specification.
SocialMachine twitter = {
ProcessingUnit twitter_pu = {...};
Constraint constraints = {...};
WrapperInterface api = {...}}}
SocialMachine futweet_core = {
ProcessingUnit fuweet_pu = {
Input inputXml: xml;
Output outputXml: xml;
Input inputJson: json;
Output outputJson: json;
States {processing; idle; overload}};
WrapperInterface api = {
Request doGuess = {
Parameters {guesses:int[ ]};
Response success: json;
Property httpMethod="POST";
Property url="http://futweet.com.br/futweet/palpitar";};
Request getFutweets = {
Parameters {filter:string};
Response list: json;
Property httpMethod="GET";
Property url="http://futweet.com.br/futweet/getfutweets"}}}}
Relationships {
(futweet_core to twitter) = {
ConnectionSettings {name="Futweet";
apikey:string;
apisecret:string}};
4.5. Considerations
There are several factors that shouldld be taken into account when developing
developin a social machine; one has to bear
in mind that the complexity of a given system’s development is directly related to the properties, power,
limitations and restrictions of other social machines considered in the project. Non-functional
Non functional requirements
such as response time (in our project or design) can be affected by quality attributes of SMs being used as a
basis for design and implementation, such as availability, limitations or restrictions of third party APIs, changes
in the mechanisms for accessing social ial machines, among many other considerations.
The “emerging” in the title of this paper has a lot to do with that; for some time to come, it is likely that many
people will resist to design applications in terms of social machines, especially when dependability
depend is a serious
matter,, which is usually the case in (say) corporate systems.. Even so, chances are that this market will develop
quite fast when compared to (say) software reuse and software product line, given the huge gains in
productivity that can be achieved here if we can depend upon stable, reliable social machines.
machines Instead of
reusing (for example) a piece of software that needs a supercomputer to run upon,, one can just use (and not
“reuse”) the service provided by a supercomputer in i the web, of course supported by that piece of software.
Figure 7. Social
Social Machine Research Framework.
For future developments under this research framework,
framework there is a large number of challenges which include
(among many others):
• Social Machines as a Unifying Architectural Framework for Defi
efining and Developing Web-
Web-based
Information Systems: this is what this paper should be and what we aim at, given time (and
(a
competence);
• SMADL as a Language to Specify Social Machines: this includes language definition (syntax, semantics
and pragmatics) and the development of methods, processes, tools and environments;
• Ways, Formal and Less Formal, of Refining
Refining SMADL-
SMADL-defined Social Machines into Possible
Implementations thereof: the research question to be answered
answer d here is… is it possible to find simple
ways to refine (transform) SMADL specifications into usable, real world implementations of SMs? That
• A Variant of SMADL as a Language to Specify Contracts between Social Machines
Machines:: how do we define
machine executable contracts between social machines? Would it be possible to write such contracts
in a way that could empower independent (although constrained, for obvious reasons) negotiations
between machines (i. e., could a machine ask for higher levels of QoS from another one, subject to
limits of payment?...);
• A Privacy
Privacy Policy Framework for Social Machine Computing:
Computing: this research project would aim to study the
combined privacy challenges of social machines, trying to develop a common SM privacy policy
framework based on open standards;
References [Partial]
[Bizer et al. 2009] Christian Bizer, Tom Heath and Tim Berners-Lee:: Linked Data - The Story So Far.
Far
International Journal on Semantic Web and Information Systems, Vol. 5(3), 2009, Pages 1-22. DOI:
10.4018/jswis.2009081901.
[Eller & Touponce 2004] Eller , J. R., Touponce, W. F. Ray Bradbury: the life of fiction.
fiction Kent State University
Press, 2004, p.22.
[Fuglsang & Sørensen, 2006] Fuglsang, M; Sørensen, B. M. Deleuze and the social.
social Edinburgh University
Press, 2006, p. 80.
[Halb et al. 2008] W. Halb, Y. Raimond, and M. Hausenblas. Building Linked Data For Both Humans and
Machines.
Machines In WWW 2008 Workshop: Linked Data on the Web (LDOW2008), Beijing, China, 2008.
http://bit.ly/b8xGg3
[Hitzler et al. 2009] P. Hitzler, M. Kroetzsch, S. Rudolph, A. McGettrick, and J. Impagliazzo,, Foundations of
Semantic Web Technologies,
Technologies Chapman and Hall, 2009.
[Hwang et al. 2009] Junseok Hwang, Jörn Altmann, Kibae Kim, The structural evolution of the Web 2.0
service network,
network Online Information Review, Vol. 33 Iss: 6, pp. 1040 – 1057 (2009).
[Kroker & Kroker, 2008] Kroker, A.; Kroker, M. Critical digital studies: a reader.
reader University of Toronto Press,
2008, p. 454.
[Monroe, 2001] Monroe, R. T. Capturing Software Architecture Design Expertise with Armani,
Armani Version 2.3,
School of Computer Science - Carnegie Mellon University, Pittsburgh, 2001
[Open Dining Network, 2010] Open Dining Network Food Ordering API.
API Available at http://bit.ly/b6SjXP,
Accessed in September, 2010.
[Programmable Web, 2010] ProgrammableWeb - Mashups, APIs, and the Web as Platform.
Platform Available at
http://www.programmableweb.com/, Accessed in September 2010.
[TwitP, 2010] The Twitpocalypse is Near: Will Your Twitter Client Survive? Available at http://bit.ly/9YLIl7,
Accessed in September, 2010.
[Twitter, 2010] Twitter - Discover what’s happening right now, anywhere in the world.
world Available at
http://twitter.com/, Accessed in September, 2010.
[Yu & Woodard 2009] Yu, S.; Woodard, C. Innovation in the programmable web: Characterizing the mashup
ecosystem.
ecosystem Service-Oriented Computing - ICSOC 2008 Workshops, pp. 136—147, 2009, Springer. (also
available at http://bit.ly/9pLMoI).