Hi Folks, This is a brainstorm, research kind of question … As you know, every action that a user takes on a computer follows the same paradigm: Code gets compiled
into a large number of very simple machine instructions (add, subtract, compare, load, store, etc.) which are then executed at blazing speeds by the computer’s processor. Can that paradigm be emulated, at a higher level, to translate one XML vocabulary to another?
Allow me to explain … Is there some small set of very simple operations that, when combined, can translate any XML vocabulary
to another? You might argue that XSLT is designed for transformations, which is true. But I would argue that the
set of operations provided even by XSLT 1.0 is hardly akin to the level of simplicity provided by machine operations. I am thinking of a much simpler and smaller set of operations than XSLT provides. Perhaps a small subset of XSLT? I envision a compiler that takes as input a declarative description of the rules for translating XML
vocabulary 1 to XML vocabulary 2. The compiler outputs a large number of very simple transformation operations.
That collection of operations is given to a processor (perhaps an XSLT processor?) along with data (i.e.,
an instance of XML vocabulary 1). The result of processing is an instance of XML vocabulary 2.
In other words, it follows the same paradigm as ordinary computer usage – compile code to a large set
of very simple operations – but at a much higher level. The benefit? The same benefit as with ordinary computer usage: Users can work at higher levels of abstraction.
Possibly the “transformation description” box shown above could be much more declarative than, say, a full-fledged XSLT program that transforms vocabulary 1 to vocabulary 2. Have you thought of such things? Is there a small subset of very simple XSLT operations that can perform
any transformation? Stated another way, is there a small subset of very simple XSLT operations that is “Turing Complete”? Have you ever created a compiler to output a large number of these very simple transform operations? /Roger |