>> It is possible to extend expression types to include
>> an N peer boolean expression that contains a list of
>> expressions and applies the same operator to each.
>>
>> Like a 'flatened' part of a binary tree:
>> 'if (a | b | c | d)' instead of 'if (a | (b | (c | d)))'
>>
>> (There are probably logical precedence rules to automatically
>> work out this sort of thing from a binary tree and group
>> leaf nodes. I bet its a one liner is lisp!).
>>
>> Attached is some idl, does this 'express' a boolean
>> expression model for the GUI use cases you and
>> Matthew have 'expressed'?
>
>That looks good to me. Just to see if I understand... would the unary
>node type be used for the leaf nodes in the tree? where you'd have a
>field name, a condition and a value? e.g.("Sender", "contains",
>"spambot") Since you have an NPeer node, isn't the Binary node just a
>special case of that? Would it make things simpler to not have a Binary
>node type and just use Unary and NPeer? Or maybe I'm overlooking
>something.
>
Unary: This would be for operations like: ((!a) || (!b))
or (!(a && (b || (!c)))). This contains a single expression
which could be a condition.
Ah! redundancy, good point.
I think both Unary and Binary can be represented by the NPeer
interface.
I will modify the directory query interfaces to take
a binary expression interface and for the moment
use a specialized boolean expression (i.e. the simple
match all or one which was previously defined) for
implementations/clients to use.
Thanks,
Paul.
| ? + ? = To question
----------------\
Paul Sandoz
x19219
+353-1-8199219