I have no clear understanding as to what is happening in the below
description, but it sounds wrong :)
I think what you want is:
a prox/unit=element/distace=0 b
(which is to say, a and b within the same element)
An example of this is used when searching ZeeRex databases:
Could be matched as:
zrx.set = (cql's URI) prox/unit=element/distance=0 zrx.index = anywhere
I don't think WHEN NOT can be expressed without additional constructions.
It could be done with a negation modifier on prox however.
The special-case prox relation is implemented using the WHEN and WHEN NOT
boolea ns in Adlib. Unit 0 selects WHEN, unit -1 will select WHEN NOT. In
Adlib, the WHEN (NOT) booleans on two dis tinct indexes will first search
records using the left operand index. For each record the right operand o
perator and value will be checked in the same occurrence. The
Adlib-specific property of occurrences comes down to the following: each
field can have 0 or more values (unless explicitly stated as
non-repeatable), wh ereas conventional RDBMS's can only hold 0 or 1 values
in a field. Indexes can be specified to index either the first or all
occurrences. The WHEN operator explicitly checks matching occurrences. See
section 6.3.10 in the Adlib User Guide (available from
http://www.adlibsoft.com/) for more information.