Ross Burton wrote: > On Wed, 2006-10-25 at 11:12 +0100, Jamie McCracken wrote: >>>> With everything mapped 1:1 you can then use RDF query to search them >>> Why would you need a 1:1 mapping to do a query? A query for "contacts >>> with an email of [EMAIL PROTECTED]" should be possible >>> independent of the number of email addresses a contact can have. >> we need the 1:1 mapping to get/set the values. Whatever we implement we >> must have a unique metadata name for a particular service in order to do >> that otherwise getting or setting a value would be impossible. >> >> One problem with metadata relationships is that some metadata like in >> the above case would only be searchable like Contact.JabberID as the >> actual storage would be in Contact.WorkJabberID or Contact.HomeJabberID >> so it might get confusing for developers if they try and get the value >> of Contact.JabberID which would be NULL. > > A real world, physical example: > > Name: Ross Burton > Email address (personal): [EMAIL PROTECTED] > Email address (personal): [EMAIL PROTECTED] > Email address (work): [EMAIL PROTECTED] > > How would you store this in Tracker? If we declare that Tracker Contact > objects are *not* vCard clones I can handle dropping the personal/work > annotations for now.
would suggest: Contact.HomeEmailAddress : [EMAIL PROTECTED];[EMAIL PROTECTED] Contact.WorkEmailAddress : [EMAIL PROTECTED] note using semicolon as delimiter so contents would need to be escaped for the semicolon. I guess standardising on semicolon delimiters might be a good idea? -- Mr Jamie McCracken http://jamiemcc.livejournal.com/ _______________________________________________ desktop-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/desktop-devel-list
