On Fri, Sep 3, 2010 at 8:51 AM, Mike Taylor <[log in to unmask]> wrote:
> On 3 September 2010 13:44, Tim Williams <[log in to unmask]> wrote:
>> On Thu, Sep 2, 2010 at 4:18 PM, Mike Taylor <[log in to unmask]> wrote:
>>> On 2 September 2010 18:12, Tim Williams <[log in to unmask]> wrote:
>>>> I have this need to support complex boolean queries within a field.
>>>> I'd like to not have to repeat the 'index relation' over and over
>>>> within the statement. Rather, I'd like something like
>>>> title = ((fish OR turtle) AND sea) - though, much more complex -
>>>> and don't want to have to write:
>>>> ((title = fish OR title = turtle) AND title = sea)
>>>> Logically, it's just projecting the index and relation upon the
>>>> enclosed terms. Before we depart from the CQL spec I thought I'd see
>>>> if there was a way to get similar 'shortcutting' using build-in
>>>> extension mechanisms?
>>> Although the formal specification of CQL stupidly prohibits this
>>> useful and unambiguous syntax, most or maybe all actual
>>> implementations support it -- certainly the C/C++ parser in YAZ,
>>> CQL-Java, the Perl CQL::Parser and thr Ruby gem all do. Have you
>>> tried just going ahead and doing it? If it's being rejected, what CQL
>>> parser are you using?
>> Thanks Mike, I've got a little ANTLR grammar internally that
>> implements a version of CQL. This lack of index+relation projection
>> is one of two areas that I've had to stray from the spec so far... the
>> other is the limited support for proximity.
> If you're using ANTLR, does that mean you're in Java? If so, why not
> just use CQL-Java instead of rolling your own?
Yeah, I'm on the JVM. It's complicated and only somewhat reasonable I
o) I wanted freedom to easily break from the spec - I knew of the prox
problem early on and figured others would come up.
o) I need to do numerous translations to implementation
grammars/objects - easily done with ANTLR Tree Grammars.
o) It was easier than learning your api (documentation left me wanting) :(
As I said, it's only somewhat reasonable:) It made sense at the time anyway.