Thoughts on Systems

Emil Sit

Twitter Needs Better Message Tracking Options

Twitter is the hot messaging platform of choice for many discerning technologists and early adopters. (If you don’t know what Twitter is, check out the CommonCraft intro video for a quick overview.) In short, Twitter provides laconic insight into what people are doing, with a diversity of client interfaces to satisfy (almost) every need. While Twitter is nominally for providing ambient intimacy, recent research shows that many are using Twitter as a way to publish information—as an op-ed/news venue—and subsequent discussion forum. This usage is mixed together with more “traditional” updates of a personal nature. While personal updates provide insight into people’s non-work activities, sometimes it may be more than desired. Twitter would benefit from the ability to isolate such messages and subscribe to updates more selectively.

I propose taking a lesson from the Zephyr instant messaging system. In college, Zephyr was where ambient intimacy and information publication/discussion occurred. Like Twitter, Zephyr was originally intended for one purpose—notifying users of upcoming outages—but was co-opted for another. In its heyday at MIT, Zephyr was the place to catch up with your friends, chat with the community about the latest on current events, and get help with esoteric technical problems (or homework) from the top people in the community. Zephyr is still in use, though the community of users has declined since the growth of AIM and ICQ.

Unlike Twitter, Zephyr provides an advanced subscription mechanism, instead of forcing you to follow all messages of a given user. Each Zephyr message has a class, an instance and a recipient. The class acts as a namespace, typically used by different communities to separate their messages from others. Instances act like tags, marking the subject of conversation. For private messages, a specific recipient can be specified as well. Subscriptions are required to specify a class/namespace but can match any tag or any recipient (though the system would only deliver messages to the intended recipient).

The result of this mechanism is tremendous flexibility in usage and community isolation. Classes (namespaces) can be established to partition discussion by student groups (e.g., -c sipb) or by function (-c help). Discussions in those groups will not be delivered to anyone not specifically subscribed to the class. Instances/tags further sub-divide discussions—for example, SIPB members seeking dinner might coordinate a food order over the food instance (-c sipb -i food). A default class (called message) is provided for general simple discussions, where users can subscribe to all instances/tags. Typically, discussions about particular classes (e.g., -i 6.033 for the instance about the intro computer systems class), news and politics (-i white-magic), or local technical issues (-i network) are on this default class. Zephyr’s default client also allows for customization of formatting and placement of messages based on the <class,instance,recipient> tuple.</class,instance,recipient>

This sort of isolation and organization is difficult to achieve on Twitter currently. Imagine how nice it would be if all Twitter messages about South by Southwest were isolated to a sxsw class, with rich differentiation for those present (e.g., <sxsw,zuckerberg,*>) and completely ignorable for those of un-interested; at the same time, you could still get Scoble’s non-SXSW related tweets.</sxsw,zuckerberg,*>

The best proposal I am aware of uses hashtags, which look a little like #channels from IRC, to tag tweets. Such tweets are indexed by various services like hashtags.org or twemes.com. Unfortunately, these proposals require embedding metadata in the Twitter message itself, which can be aesthetically unappealing enough to warrant removal. Further, it is difficult to track tags (or even @replies from strangers) from within API clients, since the track command is limited to IM and SMS, and appears to ignore punctuation.

There have been some demands for groups in the Twitter support forums, so it does appear that a feature like this may be in our future. As a simple start, if Twitter’s track command caused tracked tweets to appear in your timeline (for the API) and also supported stemming (e.g. #sxsw.food), I think I would be happy. However, even better would be to take recipient and tagging information out of the tweet and make it explicitly metadata (much like d is used for direct messages). Whatever is implemented, I hope it will allow for Zephyr-like organization of discussions. Until then, #hashtags and third-party extensions will have to do.

Comments