Not expression syntax:
not_expression ::= 'not:' expression
Not expression evaluate the expression string (recursively) as a full expression, and returns the boolean negation of its value. If the expression supplied does not evaluate to a boolean value, not will issue a warning and coerce the expression's value into a boolean type based on the following rules:
If no expression string is supplied, an error should be generated.
Zope considers all objects not specifically listed above as false (including negative numbers) to be true.
Testing a sequence:
<p tal:condition="not:here/objectIds"> There are no contained objects. </p>