The Aura Contextual Service Interface supports somewhat limited expressions that may be used by service clients to select entries in a service to act upon. An expression is described by an expression tree where each node in the tree represents an operator with 1 or 2 children.
All leaf nodes in the tree either use a comparison operator to compare an attribute of a service entry to a literal value or use a comparison operator to compare to attributes. All non-leaf nodes in the tree apply a boolean operator to one or two children (where these children are either non-leaf nodes or leaf nodes). Note that custom comparison operators are allowed for leaf nodes.
(The Java implementation currently defines two classes BoolNode and LeafNode for representing nodes in the expression tree. However, the service interface wire protocol itself does not differentiate between these two types of nodes. This leaves room for more powerful expressions should they be seen as necessary in the future.)
Select all service entries where the temp is not > 72 and the state is Pennsylvania. (Note that the OpNot is of course not strictly necessary, but is included just to demonstrate its use.)
OP_AND
/ \
OP_NOT OP_EQ
/ / \
OP_GT state "Pennsylvania"
/ \
temp 72.0
For further information see the javadoc documentation as well as the examples.