My data production system became more reliable and robust today. Some great uses are envisaged and I am gradually sketching out the way to go there. It is important to use time for explicit designing rather than dive straight into implementation.
Among the next things to do are
_intro
, ⇒_intro inserting after
_intro
and updating where samenamed.
!
being
that some subnodes are left unchanged if we don’t overwrite them
all.
The above functionality is practically important when multiple versions of a document, e.g. in several locales, are maintained and some of the subject matter is not equally relevant to all locales. It allows such documents to stay manageable.
What is perhaps even more important however is the combinability of these options with the creation of tabular material. We generate a table by populating a two-level structure variable, similar to a table consisting of rows. Both the table elements (rows) and the row elements (fields) have a sequence number and/or an symbolic identifier, similar to the text elements in our node database. Working with symbolic identifiers is better for most use cases. The identifiers are formed from one or more index fields. A further set of fields is assigned to attribute tags. These will tend to be numeric or parametric fields. Usually at least one remaining field will be positionally referenced and will contain translatable text. After such a structure has been established by a variable, the text is then read from subsections according to a scheme that makes use of the above-stated overwriting/updating and inserting features and thereby allows clear separation of text from data in the mlht spirit.
What the whole thing might look like is described here. It is an improvement on the design from January. Since then there has been great progress on other features of the language.
One preliminary step will be to assure that list and hash variables can occur on the right side of an assignement statement, i.e. be assigned to and otherwise operated on in the makefile-like mlht language context. The mlht language does not easily deal with such variables since it has to store them as strings in the text element hierarchy database *.dbm from where they are reactivated to become structures again. Lossless roundtrip conversion between string and structure must be assured and some of the makefile-language-style functions implicitely deal with structures although prima facie they are operating on strings. This functionality may have to be made more robust an enhanced with further list variable operators and functions on the way to our goal. The concepts of ‘+⇐’, ‘+>=’ etc can serve to describe basic operations.