Twitter Introduces Annotations; Hash Tags become Obsolete

Share this article

One of the new developments announced at the recent Chirp Twitter developers’ conference was ‘Annotations’ — a way of adding additional metadata to your tweets. Annotations provide a simple way to take those tiny extra bits of data that usually take up some of your 140 characters of tweet space, and put them in a logical, organized and search enabled place for developers to access. Twitter has very specifically not defined exactly what annotations are for or how they should be used to encourage innovation in their use, but provided a few examples in their announcement. Their main example centered around a tweet about a book, and the additional information an Annotation could provide, such as the isbn number and an Amazon.com link.

'annotations':
{
  'iso':
  {
    'isbn': '030759243X'
  },
  'amazon':
  {
    'url': 'http://www.amazon.com/Although-Course-You-Becoming-Yourself/dp/030759...
  }
}

How Will This Work?

The additional data is in a namespace/key/value setup, the example above containing an ISO namespace with an isbn key and value, and will be returned from the Twitter API along with the tweet. Annotations must be provided when creating a new tweet, and cannot be added or altered at a later stage. Twitter is not defining how developers should use the new data, so it will be up to them to create the rules and structure in their apps to create and view annotations, although I fear this could lead to problems (read below). If you’ve worked with the Twitter API before, accessing this new feature will not be difficult as it will be provided along with the main tweet payload in whatever format you have requested. At first annotations will be limited to 512 bytes, but Twitter has admitted they’re flexible on this and it could end up being as large as 2Kb. This is huge considering that 512 bytes could contain up to 512 extra characters of information; which is three times the limit for the actual tweet.

The end user experience will eventually be seamless, as developers build these new features into their apps in a transparent way. Expect to see a different field for your urls, hash tags and other information — and have them displayed back to you next your tweet.

What Can This Be Used For?

The possibilities for annotations are really huge, with the removal of the commonly used hash tags one of the first implementations I expect to see. If you’re not familiar with hashtags, they are values added to the end of a tweet in the form of #topic used to provide a way for people to search Twitter for tweets on a similar topic, an informal way of categorizing Twitter; for example recent tweets have used the ironic hash tag #ashtag regarding the huge ash cloud cancelling flights all over Europe at the moment, e.g. “British govt: British airspace to stay closed at least another 24 hrs #ashtag”.

The problem with hashtags has always been that they eat into your already limited 140 character allotment, and it’s not uncommon for hashtags to start to take over a tweet! By providing your hashtags as part of the annotation for a tweet, it frees it up for what matters: the content.

Other uses I could think of for these annotations

Links: The large size of urls has created a plethora of url shortening services, designed to create the smallest character url to fit into your 140 character tweets. Annotations can now be used to attach these links and keep them out of the content. Links could also be categorized depending on the content of the link destination.

'annotations':
{
  'links':
  {
    'web': 'http://www.xyz.com',
    'image' : 'http://www.abc.com',
    'video' : 'http://www.foo.com/'
  }
}

Extended Tweets: With a limit of 140 characters for the tweet and 512 for the annotation I wouldn’t be surprised to see the extra data used as a way to extend the information of your tweet, kind of like what ‘Read More’ is to an article, making the tweet itself just an excerpt of the total content.

'annotations':
{
  'extended':
  {
    'continued': 'and that is why I will never arm wrestle a goat again.'
  }
}

Languages: Imagine being able to produce a tweet in multiple languages! I think this is one of the more exciting uses of the new Annotations feature, as you can provide multiple versions of a tweet based on contextual information, for example; language. Imagine seeing a tweet with various flags underneath it and being able to change the language simply by clicking on a flag.

'annotations':
{
  'languages':
  {
    'en' : 'Has anyone seen my crepe maker? I last saw it at Easter.'
    'fr': 'N'importe qui a vu mon fabricant de crêpe ? Je dernier l'a vu aux Pâques. ',
    'de' : "Hat jemand meinen crepe Hersteller gesehen? Ich habe zuletzt es an Ostern gesehen. "
  }
}

Code: For the geekier types, you could even try to fit in an entire program or function.

'annotations':
{
  'code':
  {
    'javascript': 'function(){var d=0;setInterval(function() {document.body.style['-webkit-transform']= 'rotate('+ d +'deg)';d+=1},10)};
  }
}

Other examples that I have seen floating around include the weather, your location, currently listening music / watching tv/ film and your Facebook / social media profile information.

Problems I Can See Arising

I fear that, while incredibly empowering, this new feature could lead Twitter and Twitter apps into an era akin to the Wild West. There is no formal structure, or presiding body, over the format of these new annotations and app developers are going to have to be very careful not to work against each other. Having one app implement a way of adding links to a tweet, only to have another app do it in an entirely different way will not benefit anyone as the additional information will only be available to an app with that reads it correctly.

The end user shouldn’t have to be responsible for knowing about the ‘compatibility’ of their metadata. If I’m typing a tweet and I annotate in some information about a book; I shouldn’t have to know if every user is going to actually get that additional information in their chosen Twitter reader; and this is even worse if you’re referring to, or relying on, information in the metadata in your tweet. A Tweet that says “Just finished this book, check it out” and assumes that a client has the capability to read the annotation with book information will lead to a large amount of confusion in clients that don’t support that format.

I fear that by essentially creating a system for developers to create new features, Twitter is going to be making the lives of other developers increasingly difficult as they have to build feature support to their applications as they become widely adopted; and make the lives of consumers difficult as they have to understand that some users may not have access to these new features that they want to use.

Call me old fashioned, but…

The thing I love about Twitter is its simple eloquence, the way that all you have is 140 characters to get your message across. The intricacies of retweeting and hash tags were fun because there was no formal structure for it, you only had to add in some text here, or there, and voila; people will know what you mean! Squeezing the last character out of a tweet often means culling off other information, which ultimately leads to a tweet that is as straight to the point and relevant as possible. Twitter has already formalized the way we retweet, but I don’t use it; preferring instead to simply add my ‘RT @username’ in front of a tweet; and I think that I will still continue to use hashtags as the world moves to annotated categories.

In conclusion

Twitter has created a very extensible way for developers to create new features in Twitter and innovate in ways that have not been possible before. What do you think about the new annotation feature, what would you use it for?

Read the entire announcement at the Twitter Developer Google Group.

Mal CurtisMal Curtis
View Author

Mal Curtis is a Kiwi polyglot software engineer currently focussing on Go and JavaScript. He’s the founder of transaction email management service Apostle.io, and is a Principal Engineer at Vend, where he helps make beautiful Point of Sale and Inventory Management software (yes, it can be beautiful). In the past he’s helped launch Learnable.com, and worked for SitePoint in Melbourne. In his spare time you’ll find him attempting geeky pursuits with varying levels of failure, such as quadcopters and sous vide cooking.

twitter
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week