Last week Twitter announced ‘Project Retweet’, their plans to develop a formalised API for the phenomenon of ‘retweeting’. It’s interesting that retweeting grew organically, a convention formed by user behaviour. In the announcement, Biz recognises that in this way some of Twitter’s best features are emergent – those “simple but creative ways to share, discover, and communicate” that the crucial Twitterverse have formed.

It reminded me of the ‘replies kerfuffle‘ earlier this year and Twitter’s reactive decision to review their technical decisions as a result of the amount of negative feedback they gained so quickly, their adaptability should be applauded. Biz admits they learned a lot.

What I’m getting to is that although Twitter has been near revolutionary, that now even though it’s such an important social tool – it’s still very young. Not in the sense of naivety (nor am I questioning their success), more that there is still a huge amount of potential in Twitter that we are eagerly awaiting to see come to fruition.

Here I want to talk about some of the things that I want to see, some of the things that I think are still lacking, though recognising some of the obstacles in seeing them fulfilled.

For me, the notion of conversations (as in actual conversations) and topic threads are pretty much non-existent and obviously missing. I mean ‘actual’ conversations as in direct correspondence between parties, rather than the more ‘global conversation’ reference that’s loosely thrown around when one wishes to sound informed lately.

Replies, Threads and Conversations

The function of ‘replies’ and ‘mentions’ have seen a lot of work on the Twitter platform, see their blog archives for the changes to-and-fro, but in my opinion they are still very limited.

When the ‘small settings change‘ took place in May, it turned out to be considered far larger than the heads at Twitter had anticipated. The intention was to clean up what was seen to be undesirable and confusing, though the result is arguably as vague. If you type ‘@someone’ into the status box and tweet then everyone following you will receive it, but if you click the ‘reply to’ button (which automatically puts ‘@someone’ in the update box for you) then only those following that ‘someone’ will see it. The reply button create a response message – manually typing it does not, apparently then it’s a mention. Correct me if I’m wrong.

Anyway since those changes, reply tweets now link to the original messages (facilitated by clicking the reply button on that tweet, no less). So now when viewing a tweet, the ‘in reply to [someone]‘ is actually a hyperlink to the status update to which the user has replied.

A tweet 'in reply to'

This connection though, is only one way. And that’s the main crux of everything I’m going to say here.

The reply is aware of the original tweet, but the original tweet does not know that it has been replied to.

This isn’t so much of a big thing in a simple two-tweet case of ‘question and answer’ (maybe), but this is what stops users and applications from easily following conversations that are taking place.

For example, look at the following illustration of a conversation over four tweets:

A conversation on Twitter with two participants

The messages read A through to D, chronologically, with each tweet replying directly to the previous. Without having witnessed these tweets being sent, the only way to follow them is essentially backwards. Each reply has a link to it’s original tweet, so starting with D, you can click through C, B and A to reveal the point of origin.

This is the problem. Tweets have no forward links to their replies.

In the above case:

  1. Tweet B is aware of tweet A (though A is unaware of B).
  2. Tweet C is aware of tweet B (though again, B is unaware of C).
  3. Tweet C is unaware of tweet A, even though it is linked to tweet B which is aware of tweet A.
  4. And so on, the coupling continues with D (and E and F, etc).

Without creating links in the forward direction of the conversation, structuring and viewing threads like this is almost impossible without some serious archive mining.

Regardless of whether users wanted these changes to happen or not, I don’t think they solved the problem they set out to anyway. They were put in place to clean up timelines, removing conversational tweets just like these because seeing without context they’re almost always irrelevant, having been written in 140 characters. But now, if someone was really interested as to the answer of tweet A but they didn’t follow @birdsigh (or any replier), then they would never know it had even been answered, not only because they don’t get @birdsigh‘s tweets but because they wouldn’t see tweet C either anymore.

If tweets had references to those that reply to it, anybody could see responses from everybody.

True, conscientious users often retweet replies that they’ve received if they are of value, but this can look a bit weird – seeing a number of usernames (including their own) then the message, like so (see the duplication of @aral):

A tweet retweet himself

So here’s another problem that Twitter are already on the heels of answering – with the new retweet functionality Biz mocked up, looking far cleaner and a lot smoother – no need to paraphrase or condense tweets to fit in n amount of usernames who deserve props.

I mentioned the archive mining – Twitter’s Search API has something almost there. If one of your results is a reply, there’s a ‘Show conversation’ button which expands to show nearby (?) tweets between the two participants. It shows the thread, yes, but it’s not that reliable – it can include tweets that weren’t direct replies to the others, rather mentions that were chronologically in between. And none of that is in the main API anyway.

Visualising conversation

That’s another thing – there’s no single place or any really decent way that I’ve seen to visualise this kind of information right now. It would be nice if the ‘in reply to’ link didn’t need a page change to see the related tweet.

Some of the desktop AIR applications try to solve this problem, for example, DestroyTwitter has a nice dialogue box – but only shows pairs of tweets, so you still have to click through:

DestroyTwitter dialogues

TweetDeck has a similar view to the Search page’s conversations, showing the latest tweets between two participants, filtered to those mentioning or replying to the other – so again it does show correspondence, but it’s uninformed – you can’t select a thread and show only that and here too you see unrelated and old tweets also.

I’ve not seen any application that shows conversations involving more than two participants.

It’s interesting that phase one of ‘Project Retweet’ introduces a ‘retweet’ button, something that’s been around in the desktop apps for a long time (even if on their part it’s a crude copy-and-paste with the additional ‘RT’ prefix added). Like Biz said, some of the best features are emergent – so it wouldn’t be so surprising if, seeing how desktop applications are already attempting to visualise threads like this, they might one day materialise on as a fully fledged feature.

What’s to come?

The Twitter API documentation now has some timeline methods labelled as ‘Coming Soon’, those for the new retweeting API. One of those is the statuses/retweets_of_me method, said to ‘return the 20 most recent tweets of the authenticated user that have been retweeted by others’, (here).

Woop! That does mean forward linkages right?

If tweets can be tagged to inform that they have been retweeted, surely its somewhere possible to also inform that they’ve been replied to?

Back to visualisations, it’s be great if Twitter had some pages similar to these to show retweets and conversations (respectively):

A conversation page 'on Twitter'

A retweets page 'on Twitter'

Okay, it’s easy to see one improvement and make an assumption that it can be applied ‘exactly the same way’ elsewhere. As as developer I know that and get tired of hearing those kinds of requests :(

But it’s good to hear that these improvements are but ‘phase one’ of what’s to come. Maybe all of this has been recognised, in store – maybe already in development! Who knows. I’m sure I’m not alone in wanting something like this.

I mentioned the idea of threads with more than two participants. Immediately my idyllic conversation view above falls apart right here if you want to see a whole topic of multiple threads on one screen.

I guess you could check for any replies to a given tweet and any replies to those replies exponentially, presumably listing them all chronologically, but you’d miss out on the direct correspondence between individual users.

A Conversation on Twitter with multiple participants

That kind of non-linearity is another great thing about Twitter, you don’t really get that anywhere else. Take for example correspondence on blog posts – if someone has something to say in response to a post then they can comment, but if in reply to that comment the person wants to write a second lengthier response, is the comments section the correct place to do it? Or would say, a post on their own blog ‘in response to’ be more appropriate – because that’s on their domain, under their name and heading?

Then there’s a weird loss of connection though, that post doesn’t appear in-line with the original post (other than a pingback, maybe) and users are confused where the topic continues.

That said, the ability to reply to multiple tweets also isn’t possible, only to reply to a single tweet and mention another user within that message to ensure they receive it.

Replying to two tweets

I look forward to seeing the new retweeting functionality come into effect. Hopefully the change will be well received.

Thinking about the negative feedback the changes to replies received, I recall when Twitter stopped providing their SMS service to UK members – back then I was gutted but now that they’re back, I don’t use them anyway. I’ve turned device updates off. Things are different now, there weren’t as many desktop applications (and those weren’t even half as useful as today’s) and my way of thinking about the people I follow and those that follow me is different now too, my behaviour has changed.

The way I use Twitter has changed and will no doubt continue to do so as the platform evolves. Though I’d be very happy to see anything like what I’ve written here turn up (somehow) on Twitter eventually, I think it would change change the way we use it even more.

Update (02.09.09): Since writing this I’ve been pointed to two more applications that attempt to visualise conversation threads.

The first is Tweetie for Mac, that not only shows more than two tweets in sequence, but updates from multiple users:

Tweetie conversation oneTweetie conversation 2
The second is Tweader, a web based tool declaring an outright ‘new way to view Twitter conversations’, clearly also in recognition of the need for one. Tweader requires an ID of a reply update and (as above) constructs the conversation backwards by retrieving each original tweet.

Both of these do the job as best they can, but are still subject to the limitations of Twitter’s API.

For example, with Tweetie you must click a reply tweet, you can’t click a tweet and see the conversation that followed – the forward links are still absent.

Same with Tweader – try this and this.

Now although it’s the Twitter API that doesn’t offer this kind of linking, these tools are standalone applications so there’s nothing to stop them from storing their own form of descriptive data internally to allow conversations to be pieced together in such a way.

For example, upon receiving a reply tweet, one could store the ID against the original tweet ID (within their own infrastructure) so if a query is made upon the original, it’s responses can be found.

But as I’ve said, what I would like is for Twitter to support threads with a formalised API call – say with a method whereby one can submit the ID of any tweet (that is part of a conversation) and get a full node list of all tweets connected to that it, either in response to or those that came before it.

Chrome wheeled, fuel injected.