I've taken Ralph's original bnf at
and tried to bring it up to date, to what I think
we agree to so far. Please look it over, and can
we use this as a starting point to begin to
finalize it? I haven't addressed Thomas' points
on adjacency and proximity, or more generally,
precisely what the search term looks like; I'd
like to get past this first.
CqlString ::= Term | Term Boolean CqlString
Term ::= QualifiedTerm | "(" QualifiedTerm ")"
QualifiedTerm ::= [IndexQualifier Relationship]
IndexQualifier ::= [IndexSet.] IndexId
IndexSet ::= SimpleString
Relationship ::= "=" | "<" | ">" (etc)
IndexId ::= SimpleString
Boolean::= 'AND', 'OR' (etc)
Note: FunnyString yet to be defined. It will
include spaces and special characters.