May I just be shameless and point you to an existing Maemo brainstorm that roughly covers this subject. I thought about it a while ago and, like you, came to the result that embedding the information in EXIF/XMP rather than relying on some kind of external database was the way to go.
However, I'm not sure that nickname+tag (tag meaning the kind of tags we use to descibe a picture in words, as we do on the N900) is the ideal solution. It relies on a nickname that may not be unique across the devices I use - or across several N900s owned by people who all know each other and have friends in common. It stores the nickname as a tag for everyone to read. Not all the nicknames I use are made for this. ;)
EXIF and XMP know other fields or allow for extensions. A contact database usually holds information that's really unique and not prone to spelling mistakes, such as an email address (or any instand-messaging-ID) Using, say, the MD5 hash of any mail address in such a non-visible field to associate the picture with the person would be unique enough to work even across several devices and for several users. It would keep people's privacy more than a readable nickname (the MD5 hash means nothing)... It's just an awful lot of work to implement.
Read here for the full brainstorm: http://maemo.org/community/brainstorm/view/tag_images_with_people-s_names-from_contacts/
There's a brainstorm for that :)
However, I'm not sure that nickname+tag (tag meaning the kind of tags we use to descibe a picture in words, as we do on the N900) is the ideal solution. It relies on a nickname that may not be unique across the devices I use - or across several N900s owned by people who all know each other and have friends in common. It stores the nickname as a tag for everyone to read. Not all the nicknames I use are made for this. ;)
EXIF and XMP know other fields or allow for extensions. A contact database usually holds information that's really unique and not prone to spelling mistakes, such as an email address (or any instand-messaging-ID) Using, say, the MD5 hash of any mail address in such a non-visible field to associate the picture with the person would be unique enough to work even across several devices and for several users. It would keep people's privacy more than a readable nickname (the MD5 hash means nothing)... It's just an awful lot of work to implement.
Read here for the full brainstorm:
http://maemo.org/community/brainstorm/view/tag_images_with_people-s_names-from_contacts/