Proposal for Linking To Users Across Social Networks @[email protected]

We present here a convention for linking to users across social networks.

Social networks have evolved into a category of their own. They are not like most Web sites in the traditional sense and even when considered modern Web apps, they are a special type of application. They have become our new digital personas. Email used to be our online persona. Blog URLs (especially when coupled with OpenID) have also served that purpose. Instant messenger IDs and online forum handles have been also serving as our partial online identities. Social network personas combine elements of all  of these: Personal blog/comment URLs, email, discussions and real-time chat.

We often see people including their Twitter usernames ( e.g. @rajivpant ) as contact info on presentations, business cards and email signatures. This has helped make Twitter even more popular. There is a need for a simple, short and consistent way to refer to a user on any social network.

We propose three alternative options.1 A. @[email protected] , B. socialnetwork:@username and a third option as conventions to link to users across social networks. Why? Because Twitter has already made the @username widely popular. These conventions are backwards compatible and extend the existing convention to include other social networks.

Option A.  @[email protected]

On Twitter posts (tweets), you would continue refer to a Twitter user as @rajivpant (implying a Twitter user as the default). On posts on other sites, you would refer to the user as @[email protected] and still have it link to the user’s page on Twitter (and potentially also notify them on Twitter). That way, we’d have a consistent person naming and linking convention across social networks and perhaps even blogs. E.g. @[email protected] , @[email protected] , @[email protected] and @[email protected]

social-network-link-convention

Option B.  service:@username (URL format)

On Twitter posts (tweets), you would continue refer to a Twitter user as @rajivpant (implying a Twitter user as the default). On posts on other sites, you would refer to the user as twitter:@rajivpant and still have it link to the user’s page on Twitter (and potentially also notify them on Twitter). That way, we’d have a consistent person naming and linking convention across social networks and perhaps even blogs. E.g. facebook:@rajiv.pant , linkedin:@rajiv.pant , google:@rajiv.pant and tumblr:@rajivpant

Option C.  sn:[email protected] (Unified URL format)

A third option, and one that we originally proposed is to have social network URLs like sn:[email protected] where sn:would be a universal social network protocol handler that would be distinct from the email URL syntax of mailto:[email protected] . It would avoid the need of per-site handlers like twitter:@rajivpant on iOS that are becoming common.

One benefit of having the @ (or + in Google+) at the beginning is that the text editor can start to autocomplete the name for you. It would still continue to do that. However, when you type @@, it would first give you a list of other social networks and then could even show you names from your connections on other social networks if you have authorized it!

In your contacts (e.g. MacOS Address Book), you could then enter someone’s social network addresses using the @[email protected] or the sn: URL format. When someone clicks on an @@ or sn: link, the URL handler would first look to see if there is registered custom app for that domain name (e.g. Twitter client on MacOS or iOS) and then launch that app. If no app is registered for that social network’s domain, it would map it to an http: URL like https://twitter.com/rajivpant , https://www.facebook.com/rajiv.pant or https://profiles.google.com/rajiv.pant
This would avoid social network specific URL formats like twitter:@rajivpant proposed by option B.

For brevity, the URLs could simply be in the format @[email protected] , @[email protected] , @[email protected] and @[email protected] If such shorter forms are adopted, then each social network’s brand name could be registered via a system of registries or it could default to .com if the full domain name isn’t specified. We could also have shortcuts like @[email protected] or fb:@rajiv.pant since Facebook owns the fb.com domain at the fb: URL schema on iOS.

Either way, a number of people have agreed that this problem needs to be solved. Which option do you prefer, A, B, or C?

  1. Thanks to Adnan Alam and Vinod Unny for suggesting option B. []

Social Graphs API: WordPress Plugin: Blogroll Links

If you already know what the Social Graph API and XFN are, you can skip the background information and go directly to the Blogroll Links plugin for WordPress that is designed to work with these.

Update: 2010-Feb-20: Version 2 of the Blogroll Links plugin for WordPress uses the Shortcode API and so introduces a new code-tag format. The new plugin still supports the old (now deprecated) code-tag format for backwards compatibility. See below for examples.

Social Graph API

Google recently announced the Social Graph API.1 From Google’s Code site:

With so many websites to join, users must decide where to invest significant time in adding their same connections over and over. For developers, this means it is difficult to build successful web applications that hinge upon a critical mass of users for content and interaction. With the Social Graph API, developers can now utilize public connections their users have already created in other web services. It makes information about public connections between people easily available and useful.

We (Google) currently index the public Web for XHTML Friends Network (XFN), Friend of a Friend (FOAF) markup and other publicly declared connections. By supporting open Web standards for describing connections between people, web sites can add to the social infrastructure of the web.

The Google Code site also has a video introduction to the open social graph:

The Google Code site has some interesting example applications. To see the power of the open social graph, follow these links:

All I did was enter my home page http://www.rajiv.com/ into these applications and got the results linked to above.

XHTML Friends Network, a component of open social networks

XFN (XHTML Friends Network) is a simple way to represent human relationships using hyperlinks. In recent years, blogs and blogrolls have become the fastest growing area of the Web. XFN enables web authors to indicate their relationship(s) to the people in their blogrolls simply by adding a ‘rel‘ attribute to their <a href> tags, e.g.:

<a href="http://www.rajiv.com/" rel="friend met">Home Page: Rajiv Pant</a>

The above link means that the page at http://www.rajiv.com/ belongs to a friend of the person who who owns the page this link is placed on. The met tag specifies that the two friends have met in real life. The link above would not be placed on a page owned by Rajiv Pant. It would be placed by a friend on their page, for example, on http://www.paradox1x.org/

Here is another example:

<a href="http://photos.rajiv.com/" rel="me">Photo Albums: Rajiv Pant</a>

This link states that the page at the URL http://photos.rajiv.com/ belongs to the same person who owns the page this link is placed on. For example, the above link would be placed on http://www.rajiv.com/ telling the Web that the URLs http://photos.rajiv.com/ and http://www.rajiv.com/belong to the same person.

To find out how to write and use XFN, or to write a program to generate or spider it, visit the XFN Web site.

Blogroll Links Plugin for WordPress

For people who maintain their Web site or blog using the WordPress blog content management system, I created an open source plugin called blogroll-links that uses WordPress’ built-in Blogroll feature2 and presents links to friends’ home pages and own pages on social networking sites using XFN in the links.

Features of this plugin

  • It can show the links by category in blog posts and WordPress Pages.
  • It uses WordPress’ standard built-in Blogroll links database. There is no hassle of another list of links to maintain.
  • It can be used to show only the links assigned to a particular category, by stating the category slug as defined in that category’s setting in WordPress.
  • It honors the Show/Hidden setting as defined for each link in WordPress.
  • It displays the link in the same window or new window, as specified for each link in WordPress.

See this plugin in action

  • http://www.rajiv.com/friends/
    • The two lists, first one of links to my own pages on various social networking sites and the second one of links to some of my friends’ pages are generated by this plugin. Yes, those social networks’ logo pictures are also taken by the plugin from the WordPress standard Blogroll links. Code:
    • <h3>My Pages on Social Networking Sites</h3>
      [blogroll-links categoryslug="rajiv-web" sortby="link_name" sortorder="desc"]
      <h3>Web Sites of Some People I Know</h3>
      [blogroll-links categoryslug="people" sortby="link_name" sortorder="desc"]
  • http://www.rajiv.com/charity/
    • This list of charitable organizations with brief descriptions is generated by the plugin. Code:
    • [blogroll-links categoryslug="charity"]
  • http://www.rajiv.com/blog/2004/08/02/search-engines/
    • This list of search engines is maintained as Blogroll links in WordPress. Code:
    • [blogroll-links categoryslug="search-engines"]
  • http://www.rajiv.com/
    • The featured links shown under the “What’s featured here?” section shows the links I’ve categorized as featured in WordPress’ Blogroll links. Code:
    • <a title="featured" name="featured"></a>
      <h2>What's featured here?</h2>
      [blogroll-links categoryslug="featured" sortby="link_name" sortorder="desc"]

Download & install plugin

  1. WikiPedia article explaining what an API, or application programming interface is. []
  2. It does not make you maintain yet another list of links []

The Evolution of Web Sites

Over the past 15 years, as the Web has evolved, the web sites have gone through these generations. What’s likely to be next in the future of what the Web will be? This article describes the Web so far and what form it will likely assume.

  • 1993-1997: Generation 1.0
    • These web sites can essentially be considered digital versions of printed newspapers, magazines and books.
    • Like with the printed products, the consumer is primarily a reader and interactivity is generally limited to filling out and submitting forms.
    • Content and design are the most important part.
    • Product = Content + Design
    • Examples: Most news and other content sites in the 1990s.
  • 1997-2004: Generation 1.5
    • These web sites are similar to what interactive CD-ROM based software used to be in the 1990s.
    • The consumer is a user (as in user of software). There can be significant interactivity between the web site and the user. Interactivity between users is generally limited to discussion boards and marketplace activities.
    • Product = Technology + Content + Design
    • Examples: Online multimedia sites, online gaming sites.
  • 2004-present: Generation 2.0
    • The concept of user-submitted-content grows stronger. Users in the virtual community of the site publish, share and view photos, videos and text.
    • The consumer is a community participant.
    • Product = People (User Community) + Technology + Content + Design
    • Examples: YouTube, del.icio.us, Wikipedia
  • 2006-future: Generation 3.0 (prediction)
    • Concept of user-submitted-interactivity / user-submitted-programming arises. The users create, own, sell, share, alter and use interactive objects in the virtual environment.
    • Consumers are co-developers.
    • Product = Community Developed Interactivity + People (User Community) + Technology + Content + Design
    • Examples: Virtual environments and ecosystems like Second Life and Kaneva.