<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>March</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Talash : Friend Finding In Federated Social Networks</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ruturaj Dhekane</string-name>
          <email>ruturaj@cse.iitk.ac.in</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Brion Vibberz</string-name>
          <email>brion@status.net</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>yStudent of Computer Science And Engineering at Indian</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Indian Institute Of Technology</institution>
          ,
          <addr-line>kanpur</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institute Of Technology</institution>
          ,
          <addr-line>Kanpur</addr-line>
          ,
          <country country="IN">India.</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>StatusNet</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <volume>29</volume>
      <issue>2011</issue>
      <abstract>
        <p>In large online social networks, Friend Recommendation has evolved into an interesting problem. We try to nd known acquaintances and new interesting friends on a Federated Social Network (FSN) , using StatusNet as our platform. FSNs are decentralized networks on the internet which can interoperate using the OStatus Suite of protocols. Friend nding on these networks is hard because we do not know the existence of other social networks or Users. We show how Linked Data representation like FOAF can solve this problem. We devise a model for the Federated Network centered around a User and use it to de ne the problem of Friend Finding. The solution uses two phases, rst known as Quick Connect which tries to nd old acquaintances. The second phase, Delayed Connect uses the Social Graph of Users to nd prospective friends. We show how the FSN information centered around a User can be extracted from FOAF entries and generate new recommendations. We shall illustrate the working of Talash as a part of StatusNet. We experimented on the existing FSN and collected feedback from its Users. The results are encouraging and open new avenues for Friend Finding on the Internet. To the best of our knowledge, this is the rst study of Federated Social Networks and the problem of Friend Finding in them.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Categories and Subject Descriptors</title>
      <p>E.1 [Data Structures]: Graphs and networks; H.3.5 [Online
Information Services]: Web-based services
Part of this work was done as Google Summer Of Code
2010 project for StatusNet Inc. Part of this was also done at
Indian Institue of Technology, Kanpur, as a part of authors
masters program.</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>
        Online social networks have evolved over the past few
years and have been interest of research for the
community. Social graph analysis has opened new avenues for
better user experience and expansion of these networks. The
term social networking is now synonymous with the various
activities such as commenting, replying, direct messaging,
like/faving, updating status etc.. Typically an Online
Social Network(OSN) for a particular User has three parts to
it [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] . Every User owns a Public or semi public pro le within
a bounded system. Secondly, it displays a list of Users with
whom they share a connection, either one way or two way.
Thirdly, the dynamism in the OSN is due to the actions
of the User to view, traverse and interact with this list of
connections.
      </p>
      <p>
        Popularity of OSN sites like Orkut, Facebook, Twitter has
generated huge amount of data about the various interaction
of Users on the Internet. Social network analysis deals with
study of these networks and their properties[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Social
networks t a scale free model, have small world properties and
show a community structure [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        Many forms of social networking have existed before OSN's.
Interaction on email within an organization has been an
area of interest[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. A drawback with all these OSN's is the
bounded environment in which people need to interact. A
public pro le on one OSN means that he can only
interact with other User's on that OSN and cannot interact with
Users from external OSN without explicitly registering a new
pro le on it. The Linked data initiative however envisage a
more open and interconnected social networking experience.
1.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Federated Social Networks</title>
      <p>
        A Federated Social Network (FSN) tries to break the
boundaries of the speci ed system in which the User interacts. A
User owns an online pro le page (website) on which he
describes himself and his connections. The connections, or
friends list is described in a machine readable format [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ],
hence any change in his connections can be made easily[
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ][
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. The advantage of Federated Social Network is that
each User controls his presence on the internet and can
interact with other Users using a set of protocols such as the
OStatus Suite [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ][
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. It allows interoperability between
di erent OSN's and give a distributed control to their
owners. This does not bind any User to xed rules like those
in Online Social Networking Services (OSNS). StatusNet[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
is an open source microblogging [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] software that provides
such a facility to the Users. StatusNet was chosen for
experimentation over other nascent projects like Thimbl,
Appleseed, Diaspora, OneSocialWeb and Elgg.
1.2
      </p>
    </sec>
    <sec id="sec-4">
      <title>Contributions</title>
      <p>In such a federated scenario we study the problem of friend
recommendation. Since each individual exists on di erent
websites, it is very di cult to nd a speci c individual on
the Internet that you already know, unless you know the
exact website on which he exists. Once we know the website
that pro le can be accessed.</p>
      <p>In this work, we model the Federated Social Network of
a User in the form of a graph. We give the problems faced
by a system for Friend Finding in this setting. Initially we
only consider nding those friends that a User already knows
beforehand. Further we design an automated friend
recommendation system for the Users. We show how the scale
free nature of a social network a ects this recommendation
system. We then exploit the properties of the social graph
centered around a User to reduce the overheads in
recommending new and nding interesting friends for a User.</p>
      <p>The remainder of paper is organized as follows. Section
2 contains a review of technologies used, a quick overview
of the OStatus Suite of protocols and Social Graph API.
Section 3 builds a model of social graph and we formally
de ne the problem of Friend Finding. Section 4 describes
our approach to nding friends in federated social networks.
We give a simple method to nd new acquaintances on the
Internet, or those friends that, you did not know, already
existed. We give the problems faced by this system and how
the nature of graph centered around a User in Federated
Social networks can be used to leverage the drawbacks. Finally
we provide the experimental results to show the success of
our method.</p>
      <p>
        This system named Talash was built for the StatusNet
software and the results presented here are feedbacks from
the users of Identi.ca [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. To the best of our knowledge, this
is the rst work that focuses on Federated Social Networks
and the problem of Friend Finding in them.
      </p>
    </sec>
    <sec id="sec-5">
      <title>PRELIMINARIES</title>
    </sec>
    <sec id="sec-6">
      <title>Federated Social Network</title>
      <p>
        To de ne a Federated Social Network we break the phrase
into two parts and try to infer its collective meaning. The
term Social Network here is synonymous to the interactions
among individuals with each other. Since we are studying
OSN's we call the participants of this network as Users.
Every User has an online presence in the form of a web-page,
also known as the Pro le Page. That presence may be
either public or access controlled. Many di erent systems have
been developed for securing privacy issues on OSN's[
        <xref ref-type="bibr" rid="ref34">34</xref>
        ][
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
If it is public, any one can access and view the information
available on it.
      </p>
      <p>Typically, Users sign up on Online Social Networking
Service (OSNS) e.g. Facebook, Orkut for networking with friends
and family. All the mechanism of social network interactions
are governed by and limited to the regulations of that online
service. There are other Users signed up on the same OSNS
with whom hhe can interact. Usually Users on one social
networking service cannot interact with a User on another
social networking service.</p>
      <p>StatusNet is a microblogging platform that enables a User
to set up his own public pro le. The activities of this User
are now governed by his own regulations. He is not under
any central authority or social networking service. The
StatusNet software provides a set of protocols to interact with
other independent pro les on the Internet. Since each of
these pro les is federated (individually controlled and not
under a central authority) in its activities and regulated by
the User's themselves, we call this system a Federated
Social Network.</p>
      <p>In this paper we study the task of Friend Finding on this
federated social network. In the following sections we give
a brief overview of the OStatus Protocol suite and a
centralized index of the Social Network on the internet - Social
Graph API.
2.1.1</p>
      <sec id="sec-6-1">
        <title>OStatus Protocol Suite</title>
        <p>
          Previously known as the OpenMicroBlogging [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]
Protocol, OStatus is an open source speci cation for
interoperability between various sites. This allows various Users on
these sites to interact with each other. The interaction is in
the form of subscriber-subscription, updating status, repeat
updates of your connections and mark them as favorite.
OStatus is a suite of protocols which give the speci cation for
such interoperability. There are mainly four protocols in the
suite as described below.
        </p>
        <p>
          WebFinger : an open protocol to identify Users with their
email addresses [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ]. This allows OStatus Users to refer to
other Users as someuser@example.com.
        </p>
        <p>
          PubSubHubBub: an open protocol based upon Publish
Subscribe architecture [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. It allows a publisher to
distribute content to its subscribers by using an intermediate
hub. When a hub server receive updates, it multicasts the
new or changed content to all registered subscribers.
        </p>
        <p>
          Salmon: [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] an open protocol to let information like
comments on a post to ow from subscribers to the
publishers. When the information reaches the source of the post
it is re-published by the original content creator so that it
reaches back to all its subscribers.
        </p>
        <p>
          Activity Streams: interactions of a User with his social
network are published to his subscribers and appear as a
stream of activities [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ].
        </p>
        <p>Any OSNS can independently develop a website which
uses OStatus Protocols and can become a part of the FSN.
Any User who has OStatus enabled on his pro le page can
subscribe to or be subscribed by other Users on the FSN
and we call such pro les OStatus Subscribable.
2.1.2</p>
      </sec>
      <sec id="sec-6-2">
        <title>FOAF and Social Graph</title>
        <p>
          FOAF [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] stands for Friend Of A Friend is speci
cation to describe a User and a list of his connections. The
FOAF is described using the Resource Description
Framework [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] and stored in a machine readable format. The
machine readability feature powers the automation of friend
nding exercisee in this work. Users can de ne their own
connections by describing their links with other Users and
de ne a relationship between them.
        </p>
        <p>
          The social interaction of individuals can be modeled as
a graph, with individuals being nodes and the interactions
being edges if one User interacts with the other. For our
problem we look at the social graph generated by the social
interactions of Users on the internet. There are millions of
Users on the internet that are part of various Online Social
Networks. We study the graph whose nodes are public
proles and those that declare their connections publicly.
Former work [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] has described how FOAF data can be used
to develop Social Graphs of OSN. FOAF can be used in a
decentralized manner to declare a Users social connections.
Publicly declared FOAF's can be parsed to create a social
graph. Thus FOAF creates a base structure for the
Federated Social Network.
        </p>
        <p>
          Google has indexed the FOAF data on the internet and
made it available as the Social Graph API [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. We can query
a User by his public pro le page (URL) to discover all his
public existences on the Internet as well as his publicly
declared connections. We directly use this API for our Friend
Finding algorithm.
2.2
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Notations And Definitions</title>
      <p>We now de ne certain notations which we shall use often
in the paper.</p>
      <p>Users: an individual who uses and interacts on the
Federated Social Network.</p>
      <p>Connections: the set of other Users with whom one
User interacts. The interaction may be one way or two
way.Connection are neighbors of a User on the social
graph.</p>
      <p>Public Pro le: an online webpage which describes the
User and lists his publicly described connections.
Status Update: an update posted by the User on his
Pro le Page that can be seen by everyone else.
Subscriptions: list of connections whose activities User
follows and declares on his Pro le.</p>
      <p>Subscribers: list of connections that follow a Users
activities.</p>
      <p>Friends: a common word to describe the connection.
It might be an acquaintance, known individual, a
subscriber or a subscription.</p>
    </sec>
    <sec id="sec-8">
      <title>NETWORK MODEL</title>
      <p>
        There already exist many systems on the web that behave
in a decentralized mechanism.TCP/IP, Email, DNS operate
in a distributed manner on the Internet [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Here we de ne
the Federated Social Network centered around a User. Each
User (U1) has a pro le page which is publicly displayed.
This is a web page on the Internet and can be visited by
navigating to the URL of the webpage. He keeps a list of
his subscriptions and subscribers that follow his activities
on the social network. Every subscriber or subscription is
another User (U2) on the internet who is part of the
federated social network. This User also own a pro le page,
which is completely under his control. The User (U1) can
visit his connection by using the URL of the pro le page of
other User(U2).
3.1
      </p>
    </sec>
    <sec id="sec-9">
      <title>Mathematical Model</title>
      <p>Consider the federated social network existing on the
Internet. Let there be N Users, each denoted by Ui 2 U where
U is the set of all Users and i 2 1:::N . Every User Ui has
a label which is a unique URL on the Internet. If any two</p>
      <p>URL's are same, then they represent the same User, hence
we assume that all Users Ui are distinct and hence unique.</p>
      <p>For every User Uj, he keeps a list of connections in two
separate lists. Sjin U n Uj is the set of all Users that
subscribe to User Uj. Sjout U nUj is the set of all User's to
whom Uj subscribes to and hence known as subscriptions of
Uj. All the User's Uk 2 U n (Sjin [ Sjout [ Uj) are unknown
to the User Uj and is denoted by the set H.</p>
      <p>The interactions in this social networks are modeled as a
graph. The G = (V; E) where V is set of vertices's and E
is a set of edges. The V here is a set of User's in the social
network, also equal to U . Each User (node) is uniquely
dened by is URL of its public pro le. The edges are directed
and Eij shows an edge from User Ui to User Uj.</p>
      <p>We de ne a directed edge Eji if Ui belongs to the
subscriptions list of the User Uj, that is Uj 2 Siin , and directed
edge Eij if Uj belongs to the subscription list of User Ui,
that is Uj 2 Siout .</p>
      <p>Since the model is federated, any User Ui can never view
the complete social network. He can only see or operate
upon the network with Ui as the center and intereact with
Siin [ Siout . This is the FSN centered around a User. If he
needs to query the social graph of any User Uk , he sends
a request to the pro le of Uk and is returned with the
social graph of User Uk as its center. Figure 1 shows a FSN
User labeled 65, and all his connections. All the friends are
connected to the User 65, and may have interconnections
between themselves.</p>
      <p>Problem Statement: For every User Ui we choose a set
Ri H such that for every Rij 2 Ri
1. Ui knows Rij
2. Ui will nd Rij interesting, if they know each other.</p>
      <p>
        The notion of knows is de ned by the fact that, one User
appears in the others address book or has communicated
with the other atleast once over email or on other public
forums or online social networks. The relationship strength
between two Users can be modeled by the interaction
activity and the notion of knows can be made stronger [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ].
      </p>
      <p>
        The de nition of interestingness of one User to another
is relative and we say that one User will be interesting to
another if they share some common attribute. Tags for
people and status updates can also determine intrestingness of
a User [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
    </sec>
    <sec id="sec-10">
      <title>FRIEND FINDING</title>
      <p>Consider a new User on the Internet, a new addition to
the FSN. Initially he does not have any subscriptions and
subscribers and his pro le URL is unknown to the rest of
the nodes in FSN. We have no social graph associated with
this User at the center that can be analyzed to nd the rst
set of subscriptions for our User. Its a Cold Start - where
we don't have apriori knowledge about the User's friends
and interests. Thus we divide the problem of nding friends
in two parts. The rst deals with the cold start to provide
the User rst set of subscriptions to interact with. We call
this Quick Connect. The second approach known as
Delayed Connect deals with analysis of User's social graph and
nding prospective friends.
4.1</p>
    </sec>
    <sec id="sec-11">
      <title>Quick Connect</title>
      <p>
        The idea of Quick Connect is to allow a User to
generate his rst set of connections as fast as possible. One of
the largest data stores of information about the di erent
contacts of a User is the Address Book. An address book
associated with online email services stores the frequently
contacted individuals. Email data can also be parsed to
nd the most contacted friends of a User and to mine their
Social Network [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Email contact lists can be optionally be
stored in a at le as comma separated values. A vCard
[
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] format can also be used to store information about an
individual.
      </p>
      <p>Address books generally have a particular format which
can be parsed to get the information about the contacts.
They have various elds which can be of interest to our
system. We extract the email address eld from the User's
address book for all his contacts and use the Social Graph
API to search for the contacts OStatus Subscribable public
pro les.</p>
      <p>
        Since most of the address books are easily available from
email service providers, its easy to access such contact lists
and generate a list of email addresses. OAuth [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is used to
authorize the StatusNet software to access the User's address
books. We could have used other methods of authorization
to access this data but we chose OAuth so that the User's
password is never stored in the software. Large number of
email service providers provide OAuth end points for
accessing this data which makes our method more exible to suit
to any service. These services also o er a wide variety of
data format in which they provide the contact lists. When
ever available we chose the PoCo [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] address book format.
4.1.1
      </p>
      <sec id="sec-11-1">
        <title>Anatomy Of Quick Connect</title>
        <p>The User is given a list of email service providers from
which the address book information will be retrieved. The
User is redirected to the OAuth Authorization page on the
service providers OAuth endpoint. After the User delegates
authorization, the service provider returns an OAuth
Access Token and and OAuth Secret Token. This pair can
be used in future to access the address book data without</p>
        <p>Users intervention. The User can alternatively revoke an
Authorization to stop access.</p>
        <p>
          When returned from delegating authorization, the User is
shown a list of his contacts page by page. Here he is given an
option to email the contact to invite him to create his own
presence on the Federated Social Network. Simultaneously,
the request is en-queued in the StatusNet software's Queue
[
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] to update the list of contacts in background. If the User
navigates away from the list of contacts, the Queue Daemon
ensures safe download of all email contacts.
        </p>
        <p>The background process of download the address book
additionally queries each email address on the Social Graph
API. This returns a list of public pro les of the contact.
If these are OStatus Subscribable then the User is noti ed
about it. This way User's can directly subscribe to FSN
User's whom they already know. Figure 2 shows the OAuth
Authorization followed by handing over of OAuth tokens to
the StatusNet Queue Handler. The address book is
downloaded and Social Graph is queried to check whether it is
OStatus Subscribable.</p>
        <p>Quick Connect is used partially in many social
networking websites. This is the rst instance in which we search
for User's not on the same domain. In case a centralized
database of social graph as provided by the Social Graph
API does not exist, WebFinger protocol can be used to query
the contact email address. The Linked Data representation
of friends list in the form of FOAF can be parsed to obtain
this information.</p>
        <p>The method has a disadvantage of many HTTP GET
requests to download the address book and to query the
prole page of each contact through the Social Graph API. It
is a long process for address books containing thousands of
contacts. The use of StatusNet background queues coupled
with OAuth access token to a User's data allow download of
all the contacts without the User's intervention.
4.2</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>Delayed Connect</title>
      <p>In an online social network, a User tries to expand his
social boundaries by connecting to more friends. These maybe
his long lost classmates, new friends based on similar
interests or connecting to new communities. The graph expands
slowly and the Quick Connect provides enough fuel to give
him the initial set of connections to interact with. Once all
the contacts in the address book are analyzed for their
presence on the Internet, the responsibility of further expansion
of the User's social graph solely lies with him. This is the
section where we illustrate the friend nding algorithm of
Talash.</p>
      <p>The existing social graph of the User is now analyzed and
uses the social graph API to recommend prospective friends.
We also de ne the problem of nding connections that might
be interesting to the User. The algorithm will try to uncover
the prospective social network as seen by a User.</p>
      <p>This method is named Delayed Connect because the
execution of this mechanism is not instantaneous and is heavy
on resources e.g. Bandwidth. We can run this mechanism
for any User whenever we have available resources and
suspend the completion in its absence. Delayed Connect
believes in expanding the social graph of the User very slowly,
so as to give him enough time to share his thoughts and
interact with his existing network.
4.2.1</p>
      <sec id="sec-12-1">
        <title>Interesting Connections</title>
        <p>
          A User might be interested in interacting with friends from
same community, geographical location or similar interests.
Interestingness of a pro le is de ned with respect to our
Users pro le information. Interestingness can also be
dened in terms of Similarity between two pro les. If the two
pro les display content on similar topics, if the biographies
of both the User's declare a geographic location close by, or
they are both connected to same set of friends, then we say
that the pro les are similar and they might be connected for
interaction on the social network. Many di erent similarity
functions can be de ned given the various attributes of each
User [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>We augment the model given in Section 3.1 to include
Pro le attributes. Pro le attributes is a set of attributes
declared by the pro le owner as being his own. Formally
we augment every node of the FSN by a feature vector
F = a1; a2; :::; an where ai is a pro le attribute denoted
by a key value pair of fAttribute Name : Attribute Valueg.
Since each User on FSN controls his pro le, the number of
attributes he declares is his wish. Hence di erent User's may
have di erent set of attributes and di erent in number. We
assume that Attribute Names are are unique and uniformly
used. Hence an attribute of name 'Location' on two di erent
pro les will denote the same attribute.</p>
        <p>
          A Similarity function is de ned which takes two pro les
P1 and P2 and returns a similarity score between them. The
function returns a score between the two attribute vectors
provided by each pro le. Various metrics such as common
friends, graph distance, Adamic-Adar [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] can be used to nd
the similarity score[
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. The score is normalized to the range
[
          <xref ref-type="bibr" rid="ref1">0,1</xref>
          ] with higher value signifying higher similarity between
Users. We claim that a User nds those pro les interesting
with whom it has higher similarity.
        </p>
        <p>
          Since each pro le is not centrally controlled and Attributes
can be newly added by installing plugins [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] on the
StatusNet software, the problem of de ning a Similarity function
gets complicated. We solve it by de ning an endpoint in
the StatusNet software, where these plugins can register a
handler function. This handler function is designed by the
creator of the plugin, whose responsibility is to nd the
similarity score between attribute values of two di erent pro le.
4.2.2
        </p>
      </sec>
      <sec id="sec-12-2">
        <title>Searching Friends</title>
        <p>We now turn our attention to identifying new connections
whom we can recommend our User to subscribe to. We
return to the mathematical model described in Section 3.1
and remind that a User does not have holistic view of the
FSN. The User can only see and access his connections, all
his subscriptions and subscribers, and the publicly displayed
connections of his friends. This idea is captured in the FSN
centered around a User. User does not know anything
beyond two hops from the him.</p>
        <p>The Social Graph API is used to identify new connections
for the User (say Ui). For every Subscription Sij 2 Siout
for User Ui we query the Social Graph API for his publicly
declared connections. We parse the response from the API
to generate a list of Users which are at two hop distance
from Ui, let this denote a set F oafi.</p>
        <p>For every pro le F oafik in F oafi we use two criterion on
which we recommend the pro le to the User.</p>
        <p>Friends You Already Know : For every pro le F oafik in
F oaf we re-query the Social Graph API to nd all his public
pro les and the publicly declared connections on that pro le.
If F oafik is connected to Ui on some other social networking
service, it is possible that they know each other beforehand
and its safe to recommend the pro le to the User. Instances
of such a recommendation is when two friends are connected
on sites like Twitter or Flickr! and do know about each
others OStatus Subscribable accounts. The social graph of
prospective connection is queried and its checked whether
the User Ui is connected to him on other OSNS. If yes, we
can recommend the new connection's OStatus account to Ui
for subscription.</p>
        <p>Interesting Pro les: For every pro le F oafik the
Similarity function is provided with two pro les, F oafik and
Ui. The function returns a similarity score based on the
attributes of two pro les. A pro le is called Interesting if the
score is greater than 0. The score can be also used to rank
each connection in F oafik in decreasing order of their
similarity scores. The connection with higher similarity score is
more interesting than the others.
4.2.3</p>
      </sec>
      <sec id="sec-12-3">
        <title>Caching Techniques</title>
        <p>The number of friends of friends found at two hop
distance from a User in FSN grow exponentially. For
example, consider a User Ui with 400 subscriptions. Each of the
subscription has at least 400 connections. The number of
HTTP requests generated to nd interesting friends for Ui
is about 160000. Figure 3 shows how the number of Friends
and number of Friends of Friends varies for every User. The
X axis shows the Users of the FSN and places them in the
order they joined the FSN. The Users with higher User ID
have lesser number of Friends since they have joined recently.
However they have a very high value for Friends of Friends.</p>
        <p>We implemented a Cache to store the Social Graph API.
For each connection Sij for User Ui, we store its connections
in a database with a time-stamp. The tuple stored is of the
form fSij , Sjk, TIMESTAMPg, where Sij 2 Siout is set
of subscriptions User Ui and Sjk is the set of subscriptions
of Uj . The cache served the twin purpose of skipping the
HTTP request to Social Graph API in immediate future
(Till the entry was invalidated) and allowing interruptions
in the Delayed Connect due to network disruption.
4.3</p>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>Algorithm</title>
      <p>We now outline the algorithm used to identify new
connections which can be recommended to the User.
1. Consider the FSN centered at the User. Find the
communities to which he belongs by removing the User
and nding connected components in this graph. 4.2.3
shows 3 such communities formed.
2. For every friend in the community we can nd his
FOAF to nd prospective connections. Top log(n)
friends (ranked by number of subscribers) are chosen
and their FOAFs are requested.
3. For every FOAF, the similarity function evaluates the
score of interestingness between the User and FOAF.
4. Top log(jF OAF j) connections of the FOAF are
returned as recommendations.</p>
    </sec>
    <sec id="sec-14">
      <title>EXPERIMENTAL RESULTS</title>
      <p>Experimenting on the system designed and discussed in
this paper is a challenging task since the StatusNet software
can be con gured by any User of the FSN. User's can select
what plugins to run and control the features displayed on
their pro le page such as their location, tags and
biographies. The results of this system can be only seen when the
algorithm runs on the Users StatusNet instance and the
network evolves with the help of these algorithms. User's may
independently add new friends and connect to newly joined
friends and family members.</p>
      <p>
        We experiment on a snapshot of the Federated Social
Network using the network formed on Identi.ca [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] as our
basis. Identi.ca is a OSNS from StatusNet that gives each
User the complete control on their activities and allow
interoperability to other OStatus Subscribable accounts such
as Blogger.com and Youtube.com. We use the
SubscriberSubscription data from Identi.ca as our dataset for
experimentation. The remarkable property of this dataset is that
Identi.ca Users subscribe to or are subscribed by other Users
on the FSN, and these links are also included in the dataset.
Hence we get a partial but relevant chunk of the FSN for our
experimentation. The di erent parameters of this dataset
are shown in Table 1. With more than 280,000 nodes we see
that there are 6724 strongly connected components. This
shows that the network is diverse and has various
communities which do not overlap. We now give our experimentation
strategies and the method to evaluate our results.
5.1
      </p>
    </sec>
    <sec id="sec-15">
      <title>Manual Feedback</title>
      <p>A manual feedback is the best test of the system and can
gauge the usefulness of our algorithm. The choice of friends
a User would like to have is dependent on the User's
interests. We used the Similarity function to nd the similarity
between the User and the prospective connections and hoped
that the User will accept them. We were not able to test
Quick Connect for these Users because each one owned their
instance and did not have our system installed.</p>
      <p>Each User was provided with a set of prospective
connections called the recommendation set. The User was asked to
mark the connection as accepted on rejected. We call the
accepted connections as positives. Figure 5. shows the
percentage of positives against the size of the recommendation
set. It was seen that the User's accepted not more than 4-5
prospective connections. For a recommendation set of size
larger than 10, very few Users accepted all the connections.
A User is recommended a set of size larger than 10 when
the User is part of many communities (so that each
community recommends at least one connection) or belongs to
one large community (size of log n). A trend was seen that
Users marked at least one positive from each community
and tended to discard a majority when most connections
came from a single community. This means that the
algorithm is able to nd the best recommendable connection in
each community to which the User belongs with the quality
decreasing with increase in size of community.
5.2</p>
    </sec>
    <sec id="sec-16">
      <title>How Good is a Recommendation?</title>
      <p>For every community of the User which recommends a
new connection we nd out how much the cluster improved
in its bonding. The average shortest path length of the
cluster are good indications of how the individual communities
to which the new User belongs has improved the bonding
in the system. The average shortest path length in a
cluster quanti es this value with a value of one meaning tighter
interaction where everyone in the community knows each
other (Clique) and a higher value meaning that the
community is loosely interacting (everyone does not know each
other). A value lesser than 1 means that some Users are not
reachable from some other User in the network.</p>
      <p>For a graph G = (V; N ), let d(u; v) be the shortest path
length between nodes u an v. The average shortest path is</p>
      <p>The motivation for clustering a User's FSN into
communities was to nd recommended seeds and to reduce the
number of HTTP requests made to the Social Graph API or
to WebFinger(if it existed). Figure 6. shows the size of
communities to which a particular User belongs. We see
that more than 50% of User's belong to a single community.
Such User's are either new and have very less subscriptions
or tend to interact with a closed group of User's. This
reenforces our idea of using recommender seeds from a
community to nd newer connections for our User. User's from
same community will interact closely and will not overlap
signi cantly with other communities. For example, Users
from a family may choose to interact only with their family
members. A User from that community may be part of
another community , say Presley Fan Club. The community
nding exercise can also give the User an indication of why
the new connection is being recommended.</p>
      <p>Figure 7 shows the number of HTTP requests sent to nd
new friends for each User on the FSN. The number of such
requests is reduced drastically. If all the recommendations
are accepted by a User, the size of each community of the
FSN centered around the User increases. Hence, the
recommendations count will keep increasing and will expose the
User to newer prospective friends in every iteration. The
log n upper bound for choosing the size of recommendation
set gives rise to slow growth of FSN of a User. The feedback
collected from the User's of FSN showed a trend of having
lesser positives when the recommendation set was very large.</p>
    </sec>
    <sec id="sec-17">
      <title>CONCLUSIONS</title>
      <p>The federated nature of the social network enpowers Friend
Finding algorithm to be executed on individual Nodes of the
FSN. The network can evolve independently and expand at
each node as required by the User. We showed a simple
mechanism to nd new friends on this network and show
how we can depend on the Friends Of a Friend information
alone to extract this information. Clustering of a FSN
centered around a User into communities allows expansion of a
Users FSN in all the domains he is interested. Community
based categorization of recommendations is a valuable
addition to our algorithm and can be used in various applications
where the community feature can be exploited.</p>
      <p>The algorithm makes many heuristic assumptions and
exact evaluation of them can be only made by analyzing the
behavioral pattern of the User for whom the
recommendation is made. This is a rst attempt to experiment a friend
nding algorithm on federated networks. The actual impact
of this algorithm can be felt only when the network evolves
considerably using this system.</p>
    </sec>
    <sec id="sec-18">
      <title>ACKNOWLEDGMENTS</title>
      <p>We would like to thank Evan Promodrou and his team of
StatusNet developers for constant support and interaction
during the Google Summer of Code 2010. We would also
like to thank Dr. Sanjeev Saxena for his guidance. A part
of this work was a result of discussions with him during
the work carried out under his supervision for the Masters
Program at IIT Kanpur. The authors thank the anonymous
referees for their valuable comments that helped improving
this paper.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Adamic</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Adar</surname>
          </string-name>
          .
          <article-title>Friends and neighbors on the web</article-title>
          .
          <source>SOCIAL NETWORKS</source>
          ,
          <volume>25</volume>
          :
          <fpage>211</fpage>
          {
          <fpage>230</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S. G.</given-names>
            <surname>API</surname>
          </string-name>
          . http://code.google.com/apis/socialgraph/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bird</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gourley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Devanbu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gertz</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Swaminathan</surname>
          </string-name>
          .
          <article-title>Mining email social networks</article-title>
          .
          <source>In MSR '06: Proceedings of the 2006 international workshop on Mining software repositories</source>
          , pages
          <volume>137</volume>
          {
          <fpage>143</fpage>
          , New York, NY, USA,
          <year>2006</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Boyd</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Ellison</surname>
          </string-name>
          .
          <article-title>Social network sites: de nition, history, and scholarship</article-title>
          . Engineering Management Review, IEEE,
          <volume>38</volume>
          (
          <issue>3</issue>
          ):
          <volume>16</volume>
          {
          <fpage>31</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Carminati</surname>
          </string-name>
          , E. Ferrari,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Perego</surname>
          </string-name>
          .
          <article-title>Enforcing access control in web-based social networks</article-title>
          .
          <source>ACM Trans. Inf. Syst. Secur.</source>
          ,
          <volume>13</volume>
          (
          <issue>1</issue>
          ):1{
          <fpage>38</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Contacts</surname>
          </string-name>
          . http://portablecontacts.net/draft-spec.html.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Culotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bekkerman</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Mccallum</surname>
          </string-name>
          .
          <article-title>Extracting social networks and contact information from email and the web</article-title>
          .
          <source>In In Proceedings of CEAS-1</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Galloway</surname>
          </string-name>
          .
          <article-title>Protocol, or, how control exists after decentralization</article-title>
          .
          <source>Rethinking Marxism: A Journal of Economics, Culture &amp; Society</source>
          ,
          <volume>13</volume>
          (
          <issue>3</issue>
          ):
          <volume>81</volume>
          {
          <fpage>88</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>[9] Identi.ca. http://identi.ca.</mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Inc</surname>
          </string-name>
          . http://www.status.net/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>H.</given-names>
            <surname>Kwak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Park</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Moon</surname>
          </string-name>
          .
          <article-title>What is twitter, a social network or a news media?</article-title>
          <source>In WWW '10: Proceedings of the 19th international conference on World wide web</source>
          , pages
          <volume>591</volume>
          {
          <fpage>600</fpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>K. J. Liben-Nowell</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>The link-prediction problem for social networks</article-title>
          .
          <source>Journal of the American Society for Information Science and Technology</source>
          ,
          <volume>58</volume>
          (
          <issue>7</issue>
          ):
          <volume>1019</volume>
          {
          <fpage>1031</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mislove</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Marcon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. P.</given-names>
            <surname>Gummadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Druschel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Bhattacharjee</surname>
          </string-name>
          .
          <article-title>Measurement and analysis of online social networks</article-title>
          .
          <source>In In Proceedings of the 5th ACM/USENIX Internet Measurement Conference (IMC^aAZ07)</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Newman</surname>
          </string-name>
          .
          <article-title>Detecting community structure in networks</article-title>
          .
          <source>The European Physical Journal B - Condensed Matter and Complex Systems</source>
          ,
          <volume>38</volume>
          :
          <fpage>321</fpage>
          {
          <fpage>330</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M. E. J.</given-names>
            <surname>Newman</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Girvan</surname>
          </string-name>
          .
          <article-title>Finding and evaluating community structure in networks</article-title>
          .
          <source>Phys. Rev. E</source>
          ,
          <volume>69</volume>
          (
          <issue>2</issue>
          ):
          <fpage>026113</fpage>
          ,
          <string-name>
            <surname>Feb</surname>
          </string-name>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>[16] OAuth. http://oauth.net/.</mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>[17] OMB. http://en.wikipedia.org/wiki/openmicroblogging.</mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Passant</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hastrup</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Bojars</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Breslin</surname>
          </string-name>
          .
          <article-title>Microblogging: A semantic web and distributed approach</article-title>
          .
          <source>In 4th Workshop on Scripting for the Semantic Web (SFSW2008).</source>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Plugins</surname>
          </string-name>
          . http://status.net/open-source/add-ons/plugins.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F.</given-names>
            <surname>Project</surname>
          </string-name>
          . http://www.foaf-project.
          <source>org/.</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>O.</given-names>
            <surname>Project</surname>
          </string-name>
          . http://www.ostatus.org/.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>S.</given-names>
            <surname>Protocol</surname>
          </string-name>
          . http://www.salmon-protocol.org/.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>[23] PubSubHubBub. code.google.com/p/pubsubhubbub/.</mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Queues</surname>
          </string-name>
          . http://status.net/wiki/queues.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>[25] RDF. http://www.w3.org/rdf/.</mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rowe</surname>
          </string-name>
          .
          <article-title>Interlinking distributed social graphs</article-title>
          .
          <source>In Proceedings of Linked Data on the Web Workshop, World Wide Web Conference</source>
          <year>2009</year>
          , April,
          <year>Spring 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>O.</given-names>
            <surname>Spec</surname>
          </string-name>
          . http://www.ostatus.org/speci cation.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Speci cation</article-title>
          . http://xmlns.com/foaf/spec/.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>X.</surname>
          </string-name>
          <article-title>Speci cation</article-title>
          . http://gmpg.org/xfn/1.1.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>A.</given-names>
            <surname>Streams</surname>
          </string-name>
          . http://activitystrea.ms/.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>[31] vCard. http://www.imc.org/pdi/vcard-21.doc.</mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>[32] WebFinger. http://code.google.com/p/web nger/.</mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>R.</given-names>
            <surname>Xiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Neville</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rogati</surname>
          </string-name>
          .
          <article-title>Modeling relationship strength in online social networks</article-title>
          .
          <source>In WWW '10: Proceedings of the 19th international conference on World wide web</source>
          , pages
          <volume>981</volume>
          {
          <fpage>990</fpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>B.</given-names>
            <surname>Zhou</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Pei</surname>
          </string-name>
          .
          <article-title>Preserving privacy in social networks against neighborhood attacks</article-title>
          . pages
          <volume>506</volume>
          {515, apr.
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>