I was reading a post by Tim O'Reilly about what he missed from Jaiku's S60 client and it got me thinking about what I would want for the perfect address book, web 2.0 style.
I think a key thing is online presence and ease of updating information for people who are not already on the service.
But to begin, one needs basic contact info. Name, number, email, IM, portrait, web address, and street address is good. All need to allow for multiple entries that are tagged as to what they are about. I would also want birthday, partner, and children names (along with their birthdays). Pretty much what vCard already provides, but with some extra stuff to help keep track of people in your friend's life.
But then you also want presence information. That is when you tie into Twitter, Jaiku, and Facebook. Get their latest status update and show it so you know what they are up to right then and there. That way you have a chance to know if they are busy or not at that moment.
Then you tie into the IM systems. If you detect when your contact is on IM you can display their IM status which gives you another idea of their availability.
Now let's say you want to actually communicate with someone. How do you go about that? Well, the IM systems tend to have web versions of their clients, so you could provide a link to launch that version for them. As for phone numbers, various VoIP services have click-to-call features that you could tie into so phoning someone is a simple click away.
This is all great an all, but how do you keep the information updated. If a contact is also on this service you can just add them and their info as entered into the system will just link over. There is always vCard importing to also get you started. I don't know how much info Facebook shares, but you could possibly tie into their system to get info.
But I think forwarded emails might be really helpful. Gmail, for instance, has a filter option on incoming emails to forward emails. If you had emails forwarded to this service it would collect all new email addresses and look for once you have not seen before. You could then go through and associate new addresses with any of your contacts. That way at least email addresses are kept up-to-date. And if it is a Gmail account you also then know a possible IM account and you can try to make an association there as well.
Basically, if I decide to phone someone, I should have a single page to visit that presents me with as much info as possible as to their current availability to talk along with every possible way to contact them at that point.
Here is to hoping someone builds this for me. =)