Ray Denenberg, Library of Congress wrote: >How's this: > >1. change: > cql-query::= cql-query boolean search-clause +AHw- search-clause > to: > cql-query::= +AHs-prefix-assignment+AH0-base-cql-query >(note that the curly brackets mean zero or more) > >2. Change other occurences of "cql-query" to "base-cql-query" >(only one, in search-clause definition) > >3. add: > prefix-assignment ::= ">" index-prefix "=" index-identifier > index-identifer ::= string > > > Ray, what is wrong with the ability to define prefixes for any given subquery? We allow in XCQL. Why not in CQL as well? It may sound complex, but the CQL parsers I know of - all have this capability. I'll repeat (more or less what Rob wrote way back), the ability to define prefixes for "sub queries" makes it easy to combine them. If you have two arbitrary queries a and b and want to combine them, it becomes rather tricky with up-front prefixes only. First you have parse the front of a, then front of b. Then collect the prefixes, then possibly rename the prefixes inside a, then b to avoid conflicts. For example, had you had the two queries: >dc="core-v1" dc.title=first >dc="core-v2" dc.title=second you would have to tranform that to something like: >dc1="core-v1" >dc2="core-v2" dc1.title=first and dc2.title=second Allow me to repeat the grammar in used by parsers and semantics for it: search-clause ::= ">" [identifier "="] term cql-query meaning: define prefix (identifer) to uri (term) for cql-query. The prefix applies to the cql-query on the right-hand side. Nothing more. -- Adam