>> i rather like the proposal
>>> FOO f
> tag a b
> tag c d tag3 e
>> where tag3 is in a submodel, then
>> ee = ff.tag[2][tag3]
>> i have to get used to it, but i think it is natural
>> and if i want what is right of c i would have to do it
> as a constraint WHERE tag[1]=c, i suppose ?
>
No, "WHERE tag[1] = c" will not work. There is nothing tying that to
the ee line. You need
FROM
cc = ff.tag,
ee = cc[1][tag3]
WHERE
cc = c
This binds cc to match c, and hence ee only ranges over things right of that.