1. A data structure embodied on a computer-readable medium and configured for use in exposing commands in a software application program, the data structure comprising: a root node having a value; and multiple nodes associated with the root node each of which having a value, the root node and multiple nodes being arranged to defined various parent/child relationships and collectively representing an expression that defines a condition that describes one or more aspects of a user's interaction with the application program; each of the multiple nodes representing either an operation or an operand, individual multiple nodes being configured in a manner such that: a change in value generates a notification to the node's parent; and a notification of a change in value from a child node causes a re-evaluation of the node's value; the root node being configured such that a change in its value causes either the automatic display or removal of a set of context-sensitive commands that are appropriate for the user's context within the application program.