Over the last six to twelve months, I've used a number of the currently available PIMs in order to manage the great deal of information I have to deal with on a daily basis: seemingly bottomless to-do lists, random scraps of information, an enormous address book, schedules, and so forth. I tried a variety of products; among them were Evolution; Info Select; PIM Pro; Microsoft Outlook, Outlook Mobile Manager, and Schedule+ (yes, as a PIM, mostly for scheduling and Office tie-ins); Pocket PC running Windows CE 2.0; and a Handspring Visor Platinum running Palm OS 3.5.2. This essentially covered the gamut of non-trivial PIMs that I could come across using searches and word-of-mouth recommendations. I'm sure that there are many more that I have not tried that are non-trivial and recommendations are always welcome, especially if they begin to fulfill the goals I mention below. I've wound up writing programs for myself to manage my information; they don't work as well as what I describe below, but they do function for me.
All of the programs discussed above (besides my home brews) did a wonderful job of managing information; where they failed is managing my information. The distinction is a fine one, but a vital one; even books on the topic fail to make the distinction.
So, let's look at this distinction. Modern PIMs seem to take two approaches to solving the problem of managing information. The first, most popular, approach is the idea of making your information conform to their structures. You enter data into the fields already created by the software and search it using the methods they provide. The alternate approach, which Info Select used, was that all information is equal. It essentially treated all my information as bits and pieces, and searches would search everything and return all relevant results.
What's missing? A place in the middle in which software eventually conforms directly to the needs and uses of the end user.
Let's take a few examples to see what I am talking about. The first one I'll use is that of the task list. The usual task list takes in brief descriptions of the activity, puts it into a myriad of user-defined categories, and allows one to sort based on due date, category, importance, and so forth. A few such utilities allow sorting on additional areas of relevance, such as progress and so forth.
This method is very frustrating for me, as I'm often required to do several sorts in order to figure out what I should do next. The categories have different degrees of relevance to me and so I often have to sort by all the categories in order to figure out what is most useful at the moment.
A fantastic solution to this that I have yet to see implemented is a more intelligent task list. Such a task list would gradually adapt to the working style of the individual. At first it would function like a normal task list, as it has no information about your behavior. Over a period of time, though, it would see what importance you place on a variety of categories and would then adjust itself to list things based on your preferences. You could still sort by the traditional categories, but the default sort would take into account what fields matter most to you.
Many PIMs today can do this to a certain degree, as you can choose several layers of sorting. The difference is that in an intelligent task list, it would learn about your regular methods of completing and working on tasks, so it would know how important each field is to you, even to the point of determining at what value level a particular field takes precedence over another. For instance, I might be neurotic about getting everything done that needs to be done within the next two days at the expense of everything else, unless there was a high priority matter involving my significant other in the next week. Given time, the list would automatically learn to place the matter involving my significant other at the top of the list ahead of other matters, given repeated behavior.
A similar example could be given for each type of personal information. An address book with effective soft linking that helps with searching would be useful, as would a schedule that automatically figures out what things you do regularly and fits them in automatically without you telling it to.
Of additional use would be linking between information types. If the program figured out that I get a haircut on a roughly monthly basis, it might schedule in a haircut on a roughly monthly basis a week or so beforehand, stick a notice to call my barber with the appropriate settings on my to-do list, and link both to the phone number of the barber. All of this happens (after a learning period) without me lifting a finger.
The usefulness of this theoretical piece of software seems to be boundless. The only downsides I can perceive are the possibility of lack of privacy, which is relevant in any piece of software, and the objections some might have for letting software make their decisions. This group, however, would be the group that would be pleased with much of the current software available.
Implementing this would be a great challenge, to be sure, as it would push the boundaries of AI programming. True "learning" software is just beginning to be used and, interestingly, some of the best learning software available at a reasonable price is game software such as Black and White, which is quite successfully built around the concept of components that learn as you progress through the game. Applications to personal information will most likely require some new approaches and techniques.
Is this a reasonable goal for personal information management software? I think that it is. While there are a great deal of technical issues to be worked out, the advances in processing power today and the gradual evolution and improvement of software over time will eventually lead us down a path that manages information more effectively than today.