One idea that I thought of recently is that of spatial email. Unsurprisingly perhaps, this sprung from my thoughts about spatial nautilus and my “actually, after a couple of weeks, this spatial idea rocks” epiphany.
I am generally thinking about thought processes in the real world where you know where things are: “here are my letters from Aunt May”, “there are my business things” and so on. Could this idea be extended into the realm of email in a similar way to files in the spatial phor?
In addition to having mailboxes in the traditional sense, you would probably need some kind of smart-filtering system. This would automatically sort out those letters from Aunt May from other letters and place them in an obvious location, such as “Email from Aunt May”. The email client in Opera has a similar feature. In Opera, email folders can also be search-folders, whereby you provide a set of criteria and the folder displays all emails that fit this criteria.
The Opera method of choosing your filters is similar to mail-rules in other email clients. I think this method is still too primitive. Why not have the client do it for you? While we are thinking along these lines, why have a separate client at all? This was one of my favourite lines of enquiry. The removal of an email client altogether and making managing email far more similar to the rest of the file-system. Email is generally sorted in folders — a small file-system of its own — and each email is pretty much the analogue of a file.
Linux is generally very flexible in what you can use as a file-system. For example, there is a /proc file-system that you can browse through which contains files that represent the state of your system — it is a file-system that is generated on-the-fly by the Linux kernel as you browse it; it is ephemeral and has no physical existence. Yet, you can use nautilus to browse it just like a disk. Take a look at the screen-shot to the left to see this in action.
You can also change some of the files to make changes to a running system. Think that over for a minute: the kernel is making available a file-system that allows you to learn up-to-the-second information about your currently running system and change that information in real-time. Quite clever really.
This led me to wondering whether you could implement an email browser in a similar way. Create a file-system that, say, mapped information from an IMAP server into a browse-able file structure. Thinking in terms of current email clients, you could have a path such as /email@example.com provide you with all your email from that account. With the addition of the smart-filters that were described earlier you could do much more interesting things.
Take /firstname.lastname@example.org/unread mail or just /mail/unread mail. These would provide you with all your unread emails; /mail/Aunt May for good old Aunt May. These folders could be generated on-the-fly as the user browses. The use can create a folder, and the file-system could apply natural language processing techniques to find out what to put in them. For example, if the user were to create an appointments for work folder, then try to match all appointments the user has at work. Allow the user to put emails into the folder and then apply Bayesian learning techniques to better improve what you filter into that folder. There are many exciting possibilities once the basic architecture is in place.
You also gain from the fact you can use your normal file browser to browse files, a familiar interface, and whatever other features that may offer, for example the built in spatial features of nautilus and so on.
More information if I try to run with this idea a little further.