OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

cxs message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Update on object-specific query language

Hello guys, 

Yesterday Chris and I worked on specifying a query language for object-specific queries. We mostly focused on the profile queries, and came up with something relatively simple, although not extremely compact. Basically the syntax looks something like this : 


where function is something like

	equals(propertyName, propertyValue)
	lessThan(propertyName, propertyValue)
	greaterThan(propertyName, propertyValue)
	closeTo(propertyName, geoLocation, distance)

and OPERATOR is one of : 


For example we can express something like : a profile between 30 and 60 and close to geneva with something like this

	greaterThan(‘age’, 30) AND lessThan(‘age’, 60) AND closeTo(‘city’, ‘geneva’, 30000)

Chris mentioned it was a bit verbose but at the same time it is very simple to implement and use. We could imagine then supporting either shorter function names such as : eq, gte (greaterThanOrEqualTo), lte (lessThanOrEqual). We could even see if we wanted to support “shortcuts” so that we can use the <=, >= operators but these would simply get translated into function calls.

The nice thing about functions is that they can be extended by an implementation, meaning that implementations could provide more powerful functions. We could even imagine functions that would query other objects, in effect providing some sort of “application join” functionality. 

We propose that we define a built-in set of core functions in the specification, and that we then leave the door open for extensibility.

Personally I like this proposal because it is a good compromise between simplicity and functionality, but of course we’d love to have your feedback.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]