I would like to find or create a syntax to express business contracts programmatically, and I am looking for a robust, flexible, future-resistant way to do this.

A client should be able to add a *negotiation points* of varying types to the contract.

An example of a boolean negotiation point:

* "There is a pre-payment penalty?" (yes/no)

While the above is certainly doable, it seems more difficult to describe the **relationships** between the negotiation points in an abstract way. 

Some examples:
--------------

* $600 is paid by "Client A" for inspection.
* The above amount is paid by "Client B" if condition Y (information that should have been disclosed before the inspection was not disclosed).

Some other possible functionality:
----------------------------------

* Virtual fields are calculated based on the numeric values of other fields.

Notes:
------

It certainly seems like XML or possibly JSON-schema are possible candidates for describing the above. But I am open to other options.

<http://en.wikipedia.org/wiki/List_of_XML_markup_languages>

Many thanks,