MDDL works well for static input forms, and for pages which are created dynamically and then displayed once. It does not help, however with what I shall term ``dynamic persistent pages''. These are pages which are displayed more than once, with some portions remaining constant but others changing. A simple example is error-checking. If the user enters an invalid number in a field that expects an integer, we would like to detect this and send back the same form with an error indicator - a big red arrow, perhaps - pointing to the field. MDDL can actually do this, but it uses a special hack, and we would like a more general mechanism that applies to other cases too.
The Budget 95 model demonstrates a more complex situation. It has a main input form which requests details of the user's expenditure and income, e.g. housing costs. This form has to be conditional on the user's housing status: a renter will quote a rent, whereas house-owners will give their mortgage details. Similarly, married users will need to provide information about their spouse's finances. So this main form is fronted by another which asks a few simple questions - is the user married, do they have a mortgage. The server then builds the main form by pasting together some pre-defined chunks of HTML. If the user has said they are married, the server will select the corresponding chunk, which contains fields asking for data on the spouse's finances; if a house-owner, the server will select a chunk which asks questions about the mortgage. Again, this is a special case which works satisfactorily for one particular model, but is not easy to generalise.
In other situations, we would like to build dynamic persistent pages for program output. For example, modellers would like to be able to specify that the data points output by a model are to be plotted in an imagemap, and that by clicking on this map to select a point, the user can get more information on the point in the form of a table.
The desire to find a general notation in which non-experts could describe such forms was the main motivation for going on from MDDL to Web-O-Matic.