A data-expression is an advanced functionality. Its purpose is to avoid having to recreate certain calculations across different clauses.
Example use case
Assume that a contract has a datafield #ordered-items^price, and another datafield #ordered-items^amount. It is not necessary — even to be avoided — to then also have a datafield to store the total price to be paid by the customer, because this price can be easily calculated on the basis of the two other fields. For example, assuming a VAT rate of 21%, the formula would be:
(#ordered-items^price * #ordered-items^amount) * 1.21.
It is, however, cumbersome to insert this calculation every time the total price needs to show up in a clause. Moreover, writing this calculation over and over again is error-prone, and difficult to manage if the calculation should be changed (e.g., if due to changes in negotiations some additional markup costs needs to be incorporated in the total price; if the VAT rate would change, etc).
Data-expressions allow you to centrally store calculations, and use them as if they were a simple datafield. In our example, the #ordered-items concept could thus be assigned a datafield total-price that would contain the calculation above. Each time the calculation is required, you can simply refer to #ordered-items^total-price.
Structure of data-expressions
A data-expression can be either a single expression, or a set of conditioned expressions.
A data-expression with a single expression consists of any valid expression