Keith,
How would one specify this "Logical Collection"? Describe the user interface.
-Kirk
Kirk,
If PMP created a variable for each collection then you could use those variables to build up your logic in a simple string variable specifying what the logic would be. Taking the above example I would then use:
{Collection 1} AND ({Collection 2} OR {Collection 3}) NOT {Collection 4}
This would be the simplest to implement. Lightroom allows you to build your logic in the GUI but as we already have variables and power users already know about how to use them then my suggestion above should be pretty simple to specify and to program. Logic precedence would follow the standard precedence or can be explicitly specified using parentheses. I don't think any programmatic checking of the logic would be necessary either as that could be caught using standard error processing. Checking that referenced Collections exist would be required though.
As collections might use names already used by existing variables you could prefix the Collection Variable with something like {collection:Collection 1} or {coll:Collection 1} or something similar.
Does that sound feasible?