Thursday, April 22, 2010

Facebook vs. Twitter: To Like or To Annotate?

Facebook and Twitter each held developer conferences recently, and the conference names speak worlds about the competing worldviews. Twitter's conference was called "Chirp", while Facebook's conference was labeled "f8" (pronounced "FATE"). Interestingly, both companies used their developer conferences to announce new capability to integrate meaning into their networks.

Facebook's announcement surrounded something it's calling the "Open Graph protocol". Facebook showed its market power by rolling it out immediately with 30 large partner sites that are allowing users to "Like" them on Facebook. Facebook's vision is that web pages representing "real-world things" such as movies, sports teams, products, etc. should be integrated into Facebook's social graph. If you look at the right-hand column of this blog, you'll see an opportunity to "Like" the Blog on Facebook. That action has the effect of adding a connection between a node that represents you on Facebook with a node that represents the blog on Facebook. The Open Graph API extends that capability by allowing the inclusion of web-page nodes from outside Facebook in the Facebook "graph". A webpage just needs to add a bit of metadata into its HTML to tell Facebook what kind of thing it represents.

I've written previously about RDFa, the technology that Facebook chose to use for Open Graph. It's a well designed method for adding machine-readable metadata into HTML code. It's not the answer to all the world's problems, but it can't hurt. When Google announced it was starting to support RDFa last summer, it seemed to be hedging its bets a bit. Not Facebook.

The effect of using RDFa as an interface is to shift the arena of competition. Instead of forcing developers to choose which APIs to support in code, using RDFa asks developers to choose among metadata vocabularies to support their data model. Like Google, Facebook has created its own vocabularies rather than use someone else's. Also, like Google last summer, the documentation for the metadata schemas seems not to have been a priority. Although Facebook has put up a website for Open Graph protocol at and a google group at, there are as yet no topics approved for discussion in the group. [Update- the group is suddenly active, though tightly moderated.]

Nonetheless, websites that support Facebook's metadata will also be making that metadata available to everyone, including Google, putting increased pressure on websites to make available machine readable metadata  as the ticket price for being included in Facebook's (or anyone's) social graph. A look at Facebook's list of object types shows their business model very clearly. Here's their "Product and Entertainment" category:
  • album
  • book
  • drink
  • food
  • game
  • movie
  • product
  • song
  • tv_show
Whether you "Like" it or not, Facebook is creating a new playing field for advertising by accepting product pages into their social graph.

Facebook clearly believes in that fate follows its intelligent design. Twitter, by contrast, believes its destiny will emerge by evolution from a primordial ooze.

At Twitter's "Chirp" conference, Twitter announced that it will add "Annotations" to the core Twitter platform. The description of Twitter annotations is characteristically fuzzy and undetermined. There will be some sort of triple structure, the annotations will be fixed at a tweet's creation, and annotations will have either 512 bytes or maybe 1K. What will it be used for? Who knows?

Last week, I had a chance to talk to Twitter's Chairman and co-Founder Jack Dorsey at another great "Publishing Point" meeting. He boasted about how Twitter users invented hashtags, retweets and "@" references, and Twitter just followed along. Now, Twitter hopes to do the same thing with annotations. Presumably, the Twitter ecosystem will find a use for Tweet annotations and Twitter can then standardize them. Or not. You could conceivably load the Tweet with Open Graph metadata and produce a Facebook "Like" tweet.

Many possibilities for Tweet annotations, underspecified as they are, spring to mind. For example, the Code4Lib list was buzzing yesterday about the possibility that OpenURL references (the kind used in libraries to link to journal articles and books) could be loaded into an annotated tweet. It seems more likely to me that a standard mechanism to point to external metadata, probably expressed as Linked Data, will emerge. A Tweet could use an annotation to point to a web page loaded with RDFa metadata, or perhaps to a repository of item descriptions such as I mentioned in my post on Linked Descriptions. Clearly, it will be possible in some way or other to put real, actionable literature references into a tweet. Whether it will happen, it's hard to say, but I wouldn't hold my breath for Facebook to start adding scientific articles into its social graph.

Although there's a lot of common capability possible between Facebook's Open Graph and Twitter's Annotations, the worldviews are completely different. Twitter clearly sees itself as a communications media and the Annotations as adjuncts to that communication. In the twitterverse, people are entities that tweet about things. Facebook sees its social graph as its core asset and thinks of the graph as being a world-wide web in and of itself. People and things are nodes on a graph.

While Facebook seems offer a lot more to developers than Twitter, I'm not so sure that I like its worldview as much. I'm much more than a node on Facebook's graph.
Reblog this post [with Zemanta]


  1. Thanks for this post, Eric! It was nice to see these co-incident announcements analyzed side-by-side.

    I've really only thought about the case of Twitter. It seems to me the most robust thing they could do is bring to the foreground a tweet's persistent identifier as a URI and allow various linked data or other (such as FluidDB) based annotation approaches to emerge. Elsewhere I have discussed my own experiments creating FluidDB objects based on tweets and associating arbitrary public and private annotations with them. The trouble is FluidDB doesn't support the construction of link-based graphs, much as it is hard to construct graphs based on the Handle System.

    Indeed, if Twitter were already publishing persistent identifiers for tweets --- rather than the brittle URLs used to access tweets via the Twitter web site --- then we wouldn't even be discussing this; annotations would have already happened!

  2. "I'm much more than a node on Facebook's graph."

    I'm far from a fan of Facebook (I deleted my briefly-held account long ago, in response to their cavalier approach to privacy), but doesn't the RDFa approach mean that those nodes being exposed by various services can - potentially - become nodes in anyone's graph? i.e. IMDB et al's exposing RDFa may be motivated in the first instance by the prospect of Facebook consuming it via their post button, but in principle anyone can write an app to consume that data and add it to their graph?

    Sure, I'm not going to be able to persuade IMDB to put my post button on their Web pages, but there are other ways of my app getting at the data.

  3. Seems to me like Facebook's distributed Like facility is, at last, a use-case for the Semantic Web that your grandmother can understand. This might turn out to be very important in the long term. I'm often quoting Clay Shirky's aphorism (originally said of HTML) that you cannot have both rigour and mass adoption, and that's been what's stopped the Semantic Web from taking off in a big way up till now; that may be about that change.

  4. PeteJ- good point. My first draft read: "I'm more than a node on a graph". Unlike you, I AM a fan of Facebook, but still, their worldview disturbs me. Maybe it's just these "Likes" arcs which seems to be the only thing that Facebook currently pays attention to. And I worry about passive "Views" arcs that FB could collect. The reason I'm still a fan is what Mike puts his finger on- Facebooks simplification of the Semantic Web does a elegant job of popularizing it.

  5. Great post, Eric, and I think you explained it well. Packets of metadata leave much more room for innovation than a centralized proprietary database of likes. I've been picking up a trend among people who are in more academic roles, as opposed to selling a product or service, of quitting Facebook. Have you noticed the same? For example, I was at a scientific society meeting where the topic was using social media in education. Twitter was discussed as a means of informal, asynchronous communication, but when the topic came to Facebook, several people said their students didn't want teachers getting in touch with them on Facebook. Others said they've discussed it in departmental meetings and decided it wasn't appropriate, due to the personal nature of Facebook.

    On a global scale, Facebook as a central clearinghouse of this information is limited because their graph only encompasses likes from people on Facebook, which is primarily people from the US and a few other countries. is a protocol which can be used in a similar fashion, but it's open in the true sense of the word, and incorporates input from anyone who chooses to implement it. Of course, the service with the lead will be the most useful immediately, but I'm just advising caution for academic usage, particularly in the face of the changing demographics of Facebook.