2006-10-25 klockan 12:27 skrev Jamie McCracken: > 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 jamiecc blueyonder co uk" 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): ross burtonini com > > Email address (personal): ross burton gmail com > > Email address (work): ross openedhand com > > > > 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 : ross burtonini com;ross burton gmail com > Contact.WorkEmailAddress : ross openedhand com > > 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? Looks pretty useless to me. Delimiters in database field? The RDF way would be (triples): hasPersonalEmail --- rdfs:subPropertyOf ---> hasEmail hasWorkEmail --- rdfs:subPropertyOf ---> hasEmail RossBurton --- hasWorkEmail ---> ross openedhand com RossBurton --- hasPersonalEmail ---> ross burtonini com RossBurton --- hasPersonalEmail ---> ross burton gmail com You would then be able to query on "hasEmail" and get all three addresses. mvrgr, Wouter -- :wq mail uws xs4all nl web http://uwstopia.nl i'm sorry that :: i'm sorry that i'm not like you -- porcupine tree
Attachment:
signature.asc
Description: Digital signature