[DAS2] query language description

chris mungall cjm at fruitfly.org
Fri Mar 17 00:04:03 UTC 2006


On Mar 16, 2006, at 2:46 PM, Andrew Dalke wrote:

> Hi Chris,
>
>> I presume one constraint is that you want to preserve standard CGI URL
>> syntax?
>
> Yes.

I'm guessing you've been through this debate before, so no comment..

>
>>  I think this is the best that can be done using that constraint,
>> which is to say, fairly limited.
>
> Then again, the functionality we need is also fairly limited.

ignorant question.. (I have only been tangentially aware of the outer 
edges of the whole das2 process)..

how are you determining the functionality required? surely someone 
somewhere will want to write a das2 client that implements boolean 
queries

I speak from experience - I designed the GO Database API to have a very 
similar constraint language (it's expressed using perl hash keys rather 
than CGI parameters but the same basic idea). For years people have 
been clamouring for the ability to do more complex queries - right now 
they are forced bypass the constraint language and go direct to SQL.

>
>>  This lacks one of the most important features of a real query
>> language, composability. These ad-hoc constraint syntaxes have their
>> uses but you'll eventually want to go beyond the limits and end up
>> adding awkward extensions. Why not just forego the URL constraint and
>> go with a composable extendable query language in the first place and
>> save a lot of bother downstream?
>
> Because no one can decide on a generic language which is more
> powerful than this.
>
> Anything more powerful would need to support .. boolean algebra?
> numeric searches?  regexps?  What about quoting rules for "multiple
> word phrases"?
>
> Is it SQL-like?  XPath/XQuery-like?  Is it a context-free grammar?
> How easy is it to implement and work cross-platform?

None of these really lit into the DAS paradigm. I'm guessing you want 
something simple that can be used as easily as an API with get-by-X 
methods but will seamlessly blend into something more powerful. I think 
what you have is on the right lines. I'm just arguing to make this 
language composable from the outset, so that it can be extended to 
whatever expressivity is required in the future, without bolting on a 
new query system that's incompatible with the existing one.

The generic language could just be some kind of simple extensible 
function syntax for search terms, boolean operators, and some kind of 
(optional) nesting syntax.

If you have boolean operators and it's composable, then yep it does 
have to be as expressive as boolean algebra.

I'd argue that implementing a composable query language is easier than 
an ad-hoc one

> For what people need now, this search solution seems good.
>
> For the future we can have
>
>    <CAPABILITY type="xpath-query" query_uri="http://whatever" />
>
> and clients which understand that interface will know that it's
> there.

hmm, not sure how useful this would be - surely you'd want something 
more dasmodel-aware?

if you're going to just pass-through to xpath or sql then why have a 
das protocol at all?

>
> 					Andrew
> 					dalke at dalkescientific.com
>
> _______________________________________________
> DAS2 mailing list
> DAS2 at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/das2




More information about the DAS2 mailing list