Adam Flinton wrote:
>
> I am assuming allow then deny i.e. include all, exclude all = include all.
>
> Otherwise...exclude all becomes somewhere between pointless & dangerous.

I think of it in terms of items moving back and forth between an "include" 
list and an "exclude" list.

* Initially, the slot is completely unconstrained. Therefore, all archetypes 
are in the "include" list.
* Excluding some archetypes shifts them to the "exclude" list.
* Excluding all shifts all archetypes into the "exclude" list.
* Including some archetypes overrides exclusion, moving them back to the 
"include" list.
* Include all shifts all archetypes back into the "include" list.

So it's basically a three-state process:

1. All initially included.
2. Move some (or all) to the "exclude" list.
3. Move some (or all) back to the "include" list.

This seems to be the behaviour that we observe in Ocean's Template Designer. 
In particular, this way of conceptualising it is consistent with how 
including has no effect unless you also exclude all; and it is also 
consistent with your hope, Adam, that include all should override exclude 
all.

It also means that "include all" is rather pointless, doesn't it, because 
doesn't "include all" have exactly the same effect as not constraining it at 
all?

Maybe it would be clearer if there was only one list. It could have worked 
like this, I think:

* By default, the list would be an "exclude" list; i.e. it would serve to 
constrain the slot by specifying that certain patterns be disallowed.
* There would be an option to treat it as an "include" list; i.e. only the 
specified patterns would be allowed.
* There would be no need for the "all" options. They would be redundant, 
because "include all" would be the same as not constraining it at all, and 
"exclude all" would be the same as an empty "include" list.

Unless there's something I don't understand about how it is meant to work 
now, this suggestion would give us most of the power of the current 
arrangement, minus the confusion. (The only capability that we would lose, 
that I can think of, would be the ability to exclude a proper subset of the 
archetypes, but then to re-include a subset of that subset: e.g., to exclude 
"problem-.*", but then to re-include "problem" itself. Do we really need 
such fine-grained control?)

- Peter 



Reply via email to