[Xesam] Relative date queries / Mono XESAM library

Evgeny Egorochkin phreedom.stdin at gmail.com
Tue Jan 15 00:10:49 PST 2008


В сообщении от Tuesday 15 January 2008 06:51:33 Gabriel Burt написал(а):
> What is the best way to support relative date queries in XESAM?  For
> example, in Banshee people will have smart playlists such as "songs
> not played in the last 2 hours."  This is turned into a SQL query
> similar to "LastPlayed < now() - 7200".  The user query language form
> of this would ideally be "played < 2 hours ago", but what of the XML?
> What do you think of an optional 'relative' attribute on the date
> value specifying the seconds to add to the date, and allowing 'now' as
> a valid date?
>
> <lessThan>
>   <field name="lastplayed" />
>   <date relative="-7200">now</date>
> </lessThan>

I can very well understand why user-level language needs constructs like this, 
but for internal api, probably this would needlessly complicate the spec. 
Somehow this resembles alowing Pi to be a valid value for a float field.

> Now the announcement:
>
> In Banshee we recently rewrote our query code and tried to make it
> compatible with XESAM.  It includes two parsers (user query language
> and XML) and methods to produce user query language, XML, and SQL.
> The code is here:
>
> http://svn.gnome.org/viewvc/banshee/trunk/banshee/src/Core/Hyena/Hyena.Data
>.Query/
>
> It's in a namespace/assembly that is not specific to Banshee, so
> Mono/.Net-based apps should be able to reuse it easily.  The user
> query language is very similar to XESAM's, but also allows | and comma
> for or, NOT for -, and ()'s for grouping/nesting.  We have some
> preliminary documentation up at:
>
> http://banshee-project.org/OnePointEx/Search

Nice! :)

-- Evgeny


More information about the Xesam mailing list