PersonalInformationManagers (pims) are a type of software designed to integrate functions that are often found in multiple simpler programs. They may include features such as [not an exhaustive list]:
- contact management
One primary justification for pims is to integrate information that comes from different sources and to allow users to organize that infomation in ways that they find more convenient. For example, if you have a project that you are working on, the email related to that project, the contact information for the people working on it and the calendar entries for its milestones could all show up on the main page for that project.
A discussion of pims in the Derby user mailing list produced several good references.
pim projects on SourceForge: http://sourceforge.net/search/?type_of_search=soft&words=pim
Who is working on pims (July 2003): http://www.iis.ee.ic.ac.uk/~rick/pim.htm
Shortcomings of traditional pims
It's easy to buy into the "x is an object" approach. If a contact is an object then there is a contact class and the contact has a name field, home and work phone numbers and an email address.
What are you supposed to do if somebody has more than one name, or more than one email address though? I have seven email addresses, my wife has two work phone numbers and many of the people that you meet on the internet have public and private identities. How is a pim supposed to manage information about a contact when there are no limits or constraints on numbers and types of information that can be associated with a person?
What I want in a pim
I don't want any limits or limitations.
I want it writen in Java in a way that supports plug-in functionality.
I want a desktop swing app.
Unfortunately, as near as I can tell, it doesn't exist yet, so I'm writing it myself using Derby and Hibernate and hosting it here on the Derby wiki. I'm calling it LifeCache.