[Zope-dev] Zopinion : Wysiwig and "reversible style sheets"

Boris Borcic zorro@zipzap.ch
Mon, 30 Aug 1999 13:15:35 +0200


I've like many been keeping an eye on XML and XSLT. It
seems to me, that the high interest in these technologies
suffers from an astonishing blind spot : reversibility.

XML and XSLT are viewed as the perfect data "tubing",
that will finally allow easy integration of multiple data
sources. XSLT is a powerful tree transformation language,
that seems up to the task to enunciate any transforms
between two equivalent XML-dressings of data.

I believe a very desirable but completely overlooked feature
of output styling, is REVERSIBILITY OF TRANSFORMS. I see two
typical forms of uses for such a feature.

(a) Wysiwig editing of styled output, with deconstruction
and back-propagation of the updates to the store.

(b) Networking data stores, again with backpropagation of
distributed updates to the distinct mother store of each
data item.

I believe there may be long-term "second niche" for Zope
with (b), and a more immediate opportunity with (a)...

At a glance, (a) means opening a new model for web-based
data acquisition, one that acknowledges that HTML forms
weren't designed to provide superslick click-and-point, and,
instead of trying to beat MS IE on its own ground, takes
another road : have the app serve model documents that the
user can modify with a wysiwig html editor (e.g. Amaya),
and PUT back... whereupon the app (e.g. Zope) would parse
the modifications and distribute them back where they
belong... or return the same page, with red annotations
for what doesn't parse.

Couple motivational notes :

(i) Of course, the design of an extensive "reversible
style sheet" language is no small matter. But start in the
small : think of the situation where one notices a mistaken
digit in a figure in a web page. If the page is automatically
generated and styled from a data store, wouldn't it be nice
(and shouldn't it be possible !) to tell the system : "update
the item from which that digit was obtained" - without further
ado (except where security is concerned).

(ii) There is a parallel to make, between the Closed/Open
Source duality, and the Mono-/Bi-directional stylesheet issue,
on the other hand. Bidirectional style-sheets are like open
source, since they make it easier for the final consumers of
data, to effect changes at the source of the data.

(iii) Last week, someone posted the open source announcement
of Xanadu/Unadax; from what I could gather at their site,
their critique of current web technology parallels the above
proposal.

(iv) XLST doesn't beat DOM in the heart of many "procedurally
minded" developpers; and indeed, the DOM is much more flexible.
Bidirectionality is where a declarative language like XSLT could
really excel. I write this thinking of the recent praise for
XMLDocument; somebody spoke of the simplicity of using DTML for
XML styling, as compared to XSL; this means that DTML is currently
competing with XSL in zopeland, and there may exist a temptation
for Zope development to continue on that lead. What I am saying,
is that bidirectionality of transforms (which neither XSLT or DTML
currently have) is a better ground to be critical of XSLT, since
this is where XSLT's declarative style of programming should be
stronger.

Boris Borcic