Clusters and Flows of Data: The Twitter Way

Twitter have flashed an annotation API that allows metadata fields—anything that users choose—to be attached to each tweet message.

Did Twitter forget to abstract, again? This language design dilemma leads to a major decision about how the basic components of the social network are expressed in the format provided by the API.

With such a flexible tuple space available, it is far more elegant to express the entire structure of a normal tweet using pure annotations. Instead, Twitter chose to attach the annotations as an extra field on the existing data-structure. This effectively ‘bakes’ the model of the social network into the format in the most overarching way possible.

I think this decision is almost essential for the future of the Twitter API. Having just an open tuple space for storing data would open up the Twitter ecosystem to a big-ball-of-mud of usage that has absolutely nothing to do with near-realtime messaging and social network actions, a stumbling step along the path to becoming a wacky and senseless Freebase clone.

In this situation, perhaps the conservative syntax is the best answer. Regardless, Twitter are here, demonstrating to developers and rival companies that they’re ready to take more radical steps with their product than just incremental development. Although, they might argue that this is just incremental development.

Annotations make possible many new features – perhaps even whole new styles of applications and games; signaling to third-party developers that Twitter are really interested in responding to outside input and creativity. Just as the development of @reply syntax was invented spontaneously by the user community and later cemented into the platform by Twitter themselves, the engineering and design team at Twitter will look for emerging semantics from client developers, and the best ideas may end up supported officially.

I don’t see the absence of guidelines or a ‘standards body’ as a major concern. Twitter are simply paving the cowpaths.