Looking for web-based contact management tool recommendations

I am looking for a web-based contact management tool either open-source or commercial. The features I am looking for are
  1. Add person.
  2. Add company.
  3. People and companies have the attributes name, telephones, emails, addresses (time zone), and description.
  4. People and companies have tags (al del.icio.us)
  5. Associate person with company.
  6. Associate person with person.
  7. Associate company with company.
  8. Associations have tags.
  9. Associations have attributes (optional).
  10. People and companies have a chronological log of contacts (by phone, in person, by email, etc.).
  11. A summary view of activity over a period of time (people added, contacts made, association changes, etc.).
  12. Export data as XML.
Can you recommend anything? Can you recommend a Windows desktop tool?