Lists Home |
Date Index |
Your experiment is quite interesting.
A couple of years ago, I played with a stylesheet that modifies itself to
set different sort settings. The user could choose the column to be sorted,
the XSLT document was modified (i.e. the xsl:sort element), the stylesheet
re-applied, and obviously the table was sorted with a different column as
the sort key. I didn't found the stylesheet particularly hard to maintain
even if it was modified at run time. This is probably because we got the
desired result at first (the stylesheet went through a debug session) then
the modification where applied to the code at a later stage.
I think that we can consider two kinds of modification or successive
a) On the model (i.e. corresponding to the the xml document we used in the
game of life)
b) On the strategy or action (i.e. corresponding to the XSLT stylesheet
applied to the XML document).
So, on the one hand we have the object state (i.e. the model encoded in an
XML document) and on the other hand we have the model transformation (i.e.
the XSLT templates applied to the XML document). Obviously the
transformation is discrete. So if we want some dynamic behavior, we have to
include cycles, each cycle changing the XML document's state. If we modify
the XSLT stylesheet we change the initial conditions, the more the templates
could be modified by external entities, and the more it will be hard to know
in advance the end result. We have then a non deterministic behavior created
from highly deterministic tools. Funny no?
Hence what is creating a non deterministic behavior is:
a) The capacity to apply style sheets to an XML document more than one time
(i.e. n cycles)
b) The capacity to modify the stylesheet before a cycle.
c) The capacity to switch from a stylesheet to another before a cycle.
So, on my side I am thinking about a language that will encode these things.
So, for instance, if you apply a certain stylesheet to this "program" it
will create the whole environment to execute that code. Potentially, a
computing grid can be created from such "program".
For the other stuff about meaning or semantics, take a look at the work done
with "distributed cognition". The classical cognitive domain is limited to
individual brains. The distributed cognition approach considers cognition as
a distributed act that includes artifacts and people: each entity storing
some representation and being a step toward some cognitive goal.
Didier PH Martin