LinkedList


 

Author:

 

Nitin Borwankar (@nitin)

 

In 140 characters:

 

A linkedlist syntax allows a set of tweets to be listed as a sequence and recognized as a sequence. This is useful for threading tweets.

 

Description:

 

There is a burning need to thread tweets together for many different purposes - this microsyntax allows this to be done and the whole thread to be sent around as a single tweet.  This microsyntax is meant to be primarily machine readable but can be used by humans too.  This is obviously useful to thread ones own tweets together. It also allows creating lists like "my favorite 10 tweets by @xyz" or "my summary of the foobar controversy".   Each of these is an example of a curated set of tweets which may not even be a conversation.  It could just be a random sequence of tweets that are insightful or funny or educational etc.

 

The format allows "paging" to be incorporated so that an arbitrary number of such lists can be chained. Paging is necessary as the 140 char limit imposes a limit on how many tweets can be in a linked list.

 

The limitaton on 10 tweets is arbitrary - current status id's are of length ~ 10, the extra 40 characters will allow some preamble such as a hashtag to aid search or a pageid etc. Also it allows length of status ids to grow to maybe 13 or so which is a thousand times now.

Future linkedlists will have fewer permitted elements in the list as id lengths grow, but this will not break older lists which will point to statuses with smaller ids. So this structure is evolutionarily adaptive

 

 

Details and Use Cases:

  

Threaded conversations

There is a very urgent need for threading together tweets that are conversations and to do it preferably in a twitter-friendly standard way.

This would allow tweet threads created in one tool to be shared and sent around allowing content re-use

 

Curated Tweet sequences

A "tweditor" might be able to filter and curate the real time stream and pick the best (in their opinion) tweets to form a thread that represents either intertwingled opposig points of view or just one side of the discussion or some variation - this format is content agnostic obviously.

 

Collected tweets from a conference

The format allows "paging" so that a number of linkedlists can be chained and a curated list longer than ten tweets can be created.

 

 

Format

 

Simple LinkedList

 

~~:twid1:twid2:twid3:....twid10:*

 

where twid is the integer part of a status url such as 2197528354 to represent the following tweet

http://twitter.com/vanderwal/status/2197528354 So each twid is a pointer to a content tweet.

 

All of this text is sent out as the body of the tweet and can propagate through the normal Twitter channels.

 

The leading ~~ indicates the start of a tweet sequence, the shape suggestive of a chain. Two ~ characters are used rather than one to avoid picking up the ordinary use of ~.

The trailing * indicates this is a self contained and non-paged tweet.

 

Chained LinkedList

 

~~:twid1:twid2:twid3:....twid10:**

 

The only difference here is a trailing double asterisk which indicates that this is a chained list.

In the case of the chained list the last id is not a pointer to a content tweet but is a pointer to a tweet that is itself a LinkedList (containing content in this same microsyntax).  Hence the tail of a chained list point to the start of the next "page" (which is a tweet containing the next 10 tweetids in the sequence).

 

Note that to be consistent the next page will also have to be a simple or a chained linkedlist.

 

If the next page is a simple linked list then it is the last page in the chained sequence.

If the next page is a chained linked list then it's last id points to another page etc.

Eventualy every chain ends in a single *.

 

Clients that ingest and interpret chained linked lists can choose to put limits on number of pages they will accept in a chain - this is to prevent prank infinite chains. Ideally clients that understand this syntax shoud allow the human to indicate that for a trusted tweeter's content, the limit is to be ignored.

 

[[ Note this is a very early draft and needs critique and feedback, but the basic idea is sound and has been vetted for over the last 4-6 weeks ]]