2008 Part II Project Suggestions

The general theme is post Web2.0, distributed or (social) networksy stuff. I am willing to oversee one, or at most two, of the projects below, based on interest. All other things being equal, I will choose to oversee projects that interest me most (more asterisks below=>more interest, possibility of answering research questions =>more interest).

Last update: 8/Sep/08

Secretary Bot**
In the dark ages before the Internet, a human secretary would guard access to the important employees, organise their days, take phone calls on their behalf, remind them of important meetings etc. These days, people are deluged by an enormous amount of information in the form of email, instant messaging, phone etc.[1], and face enormous difficulties in juggling multiple tasks [2].

The goal of the project is to build a secretary bot that would mediate on behalf of the user and manage their attention. Instant messages should only be allowed if the user is not working on something important. Arrival of unimportant emails need not be notified whilst the user is engaged in a complex task. Phone calls can be forwarded to voice mail directly. At the same time, important interrupts should be allowed to go through. User should be reminded of and prepared for imminent meetings and appointments.

An example implementation might use XMPP to interface with google talk, use the google calendar API to store, and retrieve appointments, use Twitter API to send reminders to mobile phones, even when the user is away from their computers. Interaction with the bot could be in a language resembling natural english, to make it seem even more secretary-like. By integrating tightly with the OS you choose, you can detect what apps (tasks) the user is focusing on, and determine whether it is an interruptible moment or not.

[1] Models of Attention in Computing and Communication
[2] A diary study of task switching and interruptions

Skills and interests: HCI, NLP, Web 2.0 APIs

Challenge level: Simple. A safe grade would likely be easy to get. A high grade is not out of bounds, but depends entirely on your creativity in coming up with useful secretary-like features, and level of tight integration achieved with user's task flow.

Distributed Twitter***
Twitter is a popular micro-blogging site that sends user status updates ('tweets') to friends who subscribe to such feeds. Twitter uses SMS & Instant Messaging services to distribute these updates. The goal of this project is to instead use a pocket switched network [1] to transmit tweets. Imlement an Android app that sends tweets to people near by, who then send it to other people they meet later on, and so on, until all the intended recipients of a tweet receive it. Evaluate the idea using traces of real human contacts, which will be made available.

Extension 1: A person who has a lot of SMSes free in their monthly plan could be used as a gateway to transmit tweet SMSes of people near by.
Extension 2: Hashtags have developed as a means to provide context [2]. For instance, users can subscribe to a bus stop (e.g. JJ Thomson Ave) and be alerted that their bus is about to arrive via tweets from other passengers at previous bus stops. Ditto for current traffic conditions in major cities. Use presence at a bus stop to detect what contexts other users are interested in, and develop a method to automatically decide which contexts to subscribe to.

[1] Pocket Switched Networks: Real-world mobility and its consequences for opportunistic forwarding
[2] Usefulness of Micro-blogging (see section on Twitter as Message Bus)

Skills and interests: Web 2.0 APIs, Mobile platforms

Challenge level: Moderately simple.

Spreading your Aura*****
How can friends of your friends discover what you are good at, what your interests are and so forth? What about friends of friends of friends? What about friends of friends of friends of friends?...

[1] proposes a way to distribute expertise information via email in a social network using a modification of bloom filters [2]. This can easily be extended to other kinds of keyword information as well. I call this spreading your aura. In this project, you will investigate how well aura can be spread in a social network by mining friendship data from an online social network such as myspace or facebook or orkut (APIs are available to help do this).

[1] Disseminating Expertise in Social Networks
[2] Bloom Filter

Skills and interests: Implementing algorithms and cool data structures

Challenge level: Moderately simple. With proper evaluation, this could be converted into a research paper.

Folksonomy-based routing****
[1] suggests a way to use people's interests to route data in a pocket switched network. User interests are captured by a folksonomy, and relations between interests can be found by forming a bipartite graph with the folksonomy tags on one side and the tagged objects on the other. Related tags are then used to make routing decisions. The goal of the project is to implement and evaluate this idea.

[1] Folksonomy-based Reasoning in Pocket Switched Networks

Skills and interests: Social Networks, routing, graph algorithms

Challenge level: Moderately hard - most of the difficulty is in coming up with a convincing evaluation methodology for validating your solution. This could become a research paper.

Statistical characterisation of online social networks****
User generated content and the social web revolution have thrown up numerous sites where social interaction is part of the added value. Examples: Youtube, flickr, twitter, overstock, jaman, amazon, netflix (ilovefilm)
Analyse and characterise one of them. See [1,2] for illustrations of characterisation. Folksonomies embedded in many of these sites have not been characterised and offers an interesting opportunity.

[1] I Tube, You Tube, Everybody Tubes: Analyzing the World's Largest User Generated Content System
[2] Delivery Properties of Human Social Networks

Skills and interests: statistical skills, scripting (perl, python etc).

Challenge level: Hard - the difficulty is in finding interesting things in the characterisation. If done well, there is lot of scope to do great research. For instance, [1] got the best paper award at the 2007 Internet Measurement Conference.

Automatic code splitting between server and client for web apps****
Web apps have a reputation of being easier to write than systems programs, but there is a huge deal of difficulty because different parts of the code are in different languages and execute at different times (e.g. javascript on client, and JSP on the server). It is hard to imagine when writing the code that some of the code actually will not execute in a linear fashion. This complex information flow is the source of a lot of bugs and security holes.

This project would take an existing web application framework and add a preprocessor that would split code into server and client side executables. [1] is an excellent first attempt at doing this, and solves some of the most difficult problems ([1] got the SOSP 2007 best paper award). The contribution of this project would be to make it practical by embedding into a widely used web app framework (e.g. JSP, Rails, Django).

[1] Secure Web Applications via Automatic Partitioning (the PPT may be a good intro)

Skills and interests: Experience writing web apps, strong programming skills, knowledge of security

Challenge level: Very Hard!! If successful (and sufficiently improved from [1]), this will be an outstanding piece of research.