- From: Anssi Kostiainen <anssi.kostiainen@nokia.com>
- Date: Tue, 13 Oct 2009 17:00:38 +0300
- To: "ext richard.tibbett@orange-ftgroup.com" <richard.tibbett@orange-ftgroup.com>
- Cc: "brian@westcoastlogic.com" <brian@westcoastlogic.com>, "public-device-apis@w3.org" <public-device-apis@w3.org>
On 9.10.2009, at 17.12, ext richard.tibbett@orange-ftgroup.com wrote: > On 7th Oct, 2009 10:41am, anssi.kostiainen@nokia.com wrote: >> I'd also add: >> >> MAY provide an interface to search through contacts. > > Taking the use cases from my previous email and with the assumption > that > 'within each Contact object the fields are ANDed' and 'between Contact > objects the fields are ORed' then this could be accomplished using > sequences of ContactFilter objects as follows: > > 1. Filter contacts that are in my ('friends' OR 'collegues') group AND > are based in the 'UK'. > > var search = { > { category: 'friends', country: 'uk' }, > { category: 'colleagues', country: 'uk' } > }; > > /*...*/device.contacts.addressbook.find(search); > > 2. Search for the entered query string 'london' over any of the > following contact attributes: 'firstname', 'lastname', 'address', > 'job' > and return all matching results. > > var search = { > { firstname: 'london' }, > { lastname: 'london' }, > { address: 'london' }, > { job: 'london' } > }; > > /*...*/device.contacts.addressbook.find(search); > Looks like a fairly intuitive subset of a JavaScript-ish query language. Granted, it's easy to start sliding into the direction of specifying a full-blown query language but let's stop here. I feel the proposal above (=support for AND and OR operators) fulfills the following requirement by striking a balance between simplicity and functionality (perhaps a bit on the expense of extensibility): "SHOULD enable filtering the list of contacts to search for a subset" Btw. I assume the search variable should be of type Array in the above examples? > Does that provide the search feature required? This would denote only > the following minimal change to the existing Contacts API WebIDL (plus > some descriptive text): > > [NoInterfaceObject] > interface AddressBook { > ... > sequence<Contact> find (in Object filter); > }; > The find method should perhaps be described as something like (reflecting the latest Contacts API ED): sequence<Contact> find (in sequence<ContactFilter> filters); -Anssi
Received on Tuesday, 13 October 2009 14:00:59 UTC