From: "Alan Kent" <[log in to unmask]>
> * Instead of 'etc', are the following complete?
> Relationship ::= "=" | "<" | ">" | "<=" | ">=" | "<>"
> Boolean::= "AND" | "OR" | "NOT"
'etc' meant that I was leaving that open for now.
> * I prefer the grammar to define precedence if possible. For example,
> if the binding of operators is OR, AND, NOT (ie: NOT is tightest) then
> get rid of the "Boolean" rule and use:
> CqlString ::= OrTerm *( "OR" OrTerm )
> OrTerm ::= AndTerm *( "AND" AndTerm )
> AndTerm ::= Term *( "NOT" Term )
> Term ::= QualifiedTerm | "(" CqlString ")"
This raises (again) the question, are we defining a wire- or
human-readable/typeable-syntax, and of course, the answer is something in
between. But with this definition, will the productions be intuitive
> * Do we need to refer to previous result sets?
We debated this question extensively with no strong consensus but, I think
grudging acceptance. However..
> If so, I think someone proposed:
> Term ::= QualifiedTerm | "(" CqlString ")" | "set" "=" SimpleString
I don't know if this will work until we nail down the syntax for the
qualified term, which might also degenerate to a simpleString so you won't
be able to distinguish a term from a result set. (In Z39.50 it's not a
problem because there is an explicit tag for result set.)
> * I will raise (not propose) that CCL allows multiple IndexQualifiers
> in front of a single term (so you can say Author,Title="smith").
Is this just to avoid constructing an OR? or does this refer to an
Author/title index?(In which case, just define an Author/title index.)