Harvey,
I think you may have misunderstood me. If you apply tags A
and B to some text, and you build an exclusionary expression like
"NOT A," the text will
not appear in the output. (See rule #1 in my exclusionary
list: any text tagged with an excluded tag will be excluded, even
if other tags are applied.) If you build an inclusionary expression
like "B," the text
will appear. (See rule #1 in my inclusionary list: any text
tagged with an included tag will be included, even if other tags
are applied.)
So I don't think "include trumps exclude" in this sense. But
consider the following expressions in a 3-tag environment:
* A OR B
* NOT C
Logically, these might seem equivalent. But they aren't, and
RoboHelp doesn't treat them as equivalent. Let's assume that you've
created every possible set of tag combinations for this project: A,
B, C, A and B, A and C, B and C, all 3 tags (A, B, and C), and
untagged. Here's a look at what would be included in the output for
each build expression:
A OR B:
A
B
A and B
A and C
B and C
A, B, and C
Untagged text
NOT C:
A
B
A and B
Untagged text
When people say that RoboHelp's boolean operators "don't work
right," I think they mean that expressions that seem logically
equivalent (such as these two) produce different output. Without an
understanding of how the rules are applied, a user can easily build
expressions that seem right but produce the "wrong" output. In
fact, the output is correct according to the rules.
Again, I wouldn't say that "include trumps exclude," although
I think I understand what you're getting at. The difference lies in
the application of rule #1.
I tested a simple 3-tag environment yesterday with printed
documentation and CHM files, and the expressions worked as
indicated. I didn't try WebHelp, but I've used similar expressions
before, and I feel comfortable saying that WebHelp will also work
as I've described it. Also, note that we're dealing with very
simple expressions here; complicated expressions require more care.
But most RH users can generate the desired output with a few simple
expressions. Especially inclusionary expressions.