In this Section we review the state of the art regarding the creation of MAS to support social networking applications [24, 71] and we draw connections between the literature and our work, described in Chapter 7. The works that deal with ABM of social networks are discussed in Section 4.4. Here we consider two categories of MAS: (i) systems that essentially implement some feature typical of OSN and (ii) platforms, middle-wares or frameworks that support OSNs.
As for the first category, the most widely studied aspect that is present in modern OSN is that of expert-finding, referral, or matchmaking. Such features are specifically part of work-related OSN, such as LinkedIn, or dating systems, which can be considered the direct ancestors of all modern OSNs .
A seminal work in this area is ReferralWeb [101, 102], an interactive MAS that “reconstructs” a social network from data available on the web. In the reconstructed network two people are connected if their names appear in close proximity in a web page or if there is a documented co-authorship relationship.
A ReferralWeb user can (i) require the referral chain between himself and a named individual , (ii) search an expert in a given topic, providing a maximum distance, or (iii) request a list of documents written by people “close” to a specified expert.
A detailed discussion of agent-based algorithms providing answers to simi-lar queries is presented by Yu et al. [198–201], and discussed in an experimental context.
ReferralWeb is truly an innovative system, considering that it somewhat provided some of the features that made systems such as LinkedIn popular. In
3.4. Multi-Agent Systems for Social Networks 39
fact, while modern social networking systems require their users to manually insert the information about themselves and OSN providers are investing large amounts of money for tools that somewhat automate the process3, the MAS provides such features since the beginning.
Another ReferralWeb contemporary system, Yenta [63–65], provides some-what complimentary features. Yenta uses agents to implement a full-fledged match-making system, i.e., a system to help people with similar interests to get in touch. Yenta did not use web-pages to gather information, preferring to scan mails, documents and usenet posts instead.
Similar features are provided by modern social networking platforms, al-beit with a slightly different focus: nowadays people are mostly interested in socializing with “real-life acquaintances”, on the other hand, in the nineties, people used internet to interact with others on the basis of common interests.
An important aspect of Yenta was that a multi-agent approach was adopted not only for efficiency reasons, i.e., for distributing the computation among the many nodes involved in the network, but also for privacy concerns. Foner 
felt that it could be unlikely that users would grant full trust to a third party entity and give it their documents, so that it could analyze them and answer with a list of possible connections. Agents, on the other hand, can run on the local machine, so that the full documents is not disclosed and only the few pieces of information necessary for establishing the connection could be exchanged. We have also studied a similar problem and reached a similar conclusion on the suitability of agents for the task .
Although history proved Foner wrong regarding the dispositions of users towards privacy, in that apparently most people do not seem to care about the confidentiality of the data they provide until some incident occurs, he was absolutely right in that users should have been concerned with such issues.
For similar reasons, we created our own distributed privacy-aware OSN .
In more recent years, other works considered the development of
agent recommender systems. For example, Gursel et al.  applied the ideas to photo searching and recommendations for the popular social networking system flickr.com. Other works used MAS technologies in social networking contexts. Walter et al. present a model of a recommender system based on social networks, autonomous agents and trust relationships . The aim is to both reach information not available in close nodes and filter information to be processed. The system is analyzed with varying network density, preference heterogeneity and knowledge sparseness.
Although, many MAS focus on specific aspects of OSNs, virtually no major social networking platform is based entirely on multi-agent systems. Even in the contexts where the relatively lower operative costs could ease the adoption of the systems , agent-based solutions are not widely adopted.
Among the research works, MAgNet  is a multi-agent system built using JADE  and FOAF . It is a prototype application providing social oriented services to mobile users, i.e. defining groups of users and arranging group events.
Another distributed social networking system was being built in Japan roughly 10 years earlier. Hattori et al.  deal with network communities and not specifically with social networks; however, their definition of network community as a collection of personal units, community agent(s), and the set of relations between them, is in fact also a definition for a social network.
Hattori et al. system is composed of many personal units, each consisting of a user and a personal agent. Each personal agent helps the user by gath-ering and exchanging information, visualizing contexts, and recommending or assisting the user in making a choice. All the agents in the system cooperate and act as a unit, with the users being the central figures. The community agents have the function of providing shared information, knowledge, or con-texts within the community and act as mediators for informal communications between people.
The ideas expressed in the paper have been implemented in a first version of a prototype called “Community Organizer”. The main difference between
3.4. Multi-Agent Systems for Social Networks 41
the prototype and the system described so far is that the actual system has just one (essentially centralized) community agent, which essentially means the im-plemented system was a centralized system. On the other hand, Shine (SHared INternet Environment)  is a fully Peer-to-Peer (P2P) framework for net-work community support. The framenet-work also provides design guidelines and enables different applications to share program components and cooperate and features a peer-to-peer architecture through which personal agents can flexibly form communities where users can exchange information with peer agents.
Not dissimilarly from “Community Organizer”, Shine provides a personal agent to each user and several core modules compose each agent: Person database, plan execution module and communication module. In addition, one or more applications are installed in each agent. These applications pro-vide their services to the user using functionalities of the core modules via an API.
All considered, we feel there is a huge disproportion in the number of MAS that implement specific aspects of OSN and those that implement the whole system. On the other hand, many non agent-based distributed systems are be-ing created [5, 33, 34, 42, 72, 75, 83]. While some aspects of a full-fledged social networking platform are suitable for agent-based programming, for other as-pects the advantages are relatively minor and more traditional techniques are as successful. All considered, probably the most promising route is developing hybrid systems in which agents are used where they can shine and other tech-niques are used were agency is not necessary. We adopted a similar approach for our own work 
Agent-based Modeling and Simulation
ABM is a very powerful technique that has been applied increasingly often in the last years in a variety of different contexts. Examples of those contexts are (i) social sciences [11, 13, 53–55, 108, 123], (ii) economy [8, 14, 56], and mar-keting , (iii) epidemics and medicine [15, 35, 62], (iv) archeology [45, 109], and (v) warfare [92, 97, 131].
However, agent-based modeling is more than a simulation technique that is appropriate for inherently complex problems: agent-based modeling is a cogni-tive approach to science. In Section 4.1, this point of view and the epistemolog-ical foundations of agent-based modeling are laid out; agent-based modeling is also compared with traditional equation-based modeling. After discussing in Section 4.2 how based models should be designed, in Section 4.3 agent-based modeling is discussed in the context of social sciences and then, in Section 4.4, some successful agent based models related to social networks are presented. Eventually, in Section 4.5 the more popular tools for agent-based simulation are compared. These tools will be compared with the one developed in this work in Chapter 6.