Discover the technical side of the social media sites that keep us connected with friends around the world!
At the heart of many social networking platforms, such as Facebook, is a software tool called the Application Programming Interface (API). This enables multiple communities of users to create an open architecture for sharing data (including photos, tags, events and so on) between communities as well as other applications. Content created in one place can be posted and updated in numerous locations on the internet, creating a web of dynamic information.
At the core of this web is a set of rules and specifications that the social network’s software (ie the network’s web pages) can liaise with in order to transmit and share information. In essence, the rules dictate the structure of the social web around a user (and accessible by them), granting permissions and access, as well as dictating information relevant to them (their friend’s photos, pages, and so on).
For the rules to work – certainly when they are operating based on Hyper Text Markup Language (HTML, the building block code of any webpage) – each point on the social network’s web must be represented as an ‘object’ with a unique ID code. For example, on Facebook your profile page is an object with a unique code.
Therefore, if another user wishes to view your profile, to do so they must acquire that code – as dictated by the network’s rule-base – in order for the connection to take place. This is facilitated by Facebook’s software interface, allowing that person to click on your profile link to fetch that object. This is also why people who have not been granted permission to access a person’s full details (ie, they are not ‘friends’) cannot see that data. Their relationship on the social graph, as dictated by the API’s rules, does not allow them to fetch that object, as they have not been granted an ‘access token’.
Everything on a Facebook page – be it photos, events, news, comments or links – are classed not only as objects by the API, but are instead directly and indirectly connected by the social graph. Furthermore, there are various different types of connections for various objects, ranging from movie choices and audio/video tags through to groups and news feeds – each linked by the API’s rules across the social graph (ie the map by which all users are connected).
Where Facebook’s system gets really smart is in its utilization of an object/connection ranking formula referred to as EdgeRank, an algorithm that charts all interaction between objects, and ranks them accordingly. So, for example, if you have an event in your Facebook news feed (which is referred to as your ‘wall’) and a fellow user interacts with that object (ie, they click its link, leaving a comment or a ‘like’ or ‘dislike’ message), they create an ‘Edge’.
Each Edge/interaction consists of three components vital to Facebook’s algorithm: affinity, weight and time. Affinity is dictated by the frequency of interaction between two objects, characterised by two close friends who leave daily comments on each other’s wall. Weight refers to the level of interaction, with comments and direct messages carrying more significance than a ‘poke’.
Finally, the time factor of an interaction degrades over time, so if a user interacted with another three months ago, it is less significant than if they did so yesterday. These three components are then multiplied by the ranking system to produce that object’s EdgeRank or, simply, its relevance to any person on the social graph.
As well as using social network APIs and analysis software, Facebook and other similar social websites, such as Twitter, YouTube and Zynga, also employ an intelligent memory management system called memcaching, which offers smoother user-side accessing and fetching of any object (the data is stored in vast data centres across the world). Memcaching is a kind of ‘balancing system’ where commonly used data is stored in a user’s PC’s fast-to-access RAM memory, to reduce the number of times the website needs to call on the back end data centre.