Improved evolutionary generation of XSLT stylesheets

Improved evolutionary generation of XSLT stylesheets
Notice: This research summary and analysis were automatically generated using AI technology. For absolute accuracy, please refer to the [Original Paper Viewer] below or the Original ArXiv Source.

This paper introduces a procedure based on genetic programming to evolve XSLT programs (usually called stylesheets or logicsheets). XSLT is a general purpose, document-oriented functional language, generally used to transform XML documents (or, in general, solve any problem that can be coded as an XML document). The proposed solution uses a tree representation for the stylesheets as well as diverse specific operators in order to obtain, in the studied cases and a reasonable time, a XSLT stylesheet that performs the transformation. Several types of representation have been compared, resulting in different performance and degree of success.


💡 Research Summary

The paper presents a novel approach to automatically generate XSLT stylesheets using genetic programming (GP). XSLT, being an XML‑based functional language, naturally lends itself to a tree representation, which the authors exploit as the genotype for evolution. Two constrained stylesheet architectures are defined: Type 1 and Type 2.

Type 1 follows a relatively free structure: the root <xsl:stylesheet> contains an arbitrary number of <xsl:template> elements, each matching a tag name from the input XML. Inside each template the authors allow either <xsl:apply‑templates> (with a relative XPath) or <xsl:value‑of> (when the XPath points to the current node). This design relies heavily on XSLT’s default templates, resulting in a large search space but offering flexibility for mutation.

Type 2 is more restrictive. The root template contains a set of absolute XPath expressions in its select attributes; each of these expressions becomes the match attribute of a child template. Inside those child templates only <xsl:value‑of> instructions appear, each with a relative XPath derived from the parent’s absolute path. By fixing the overall shape and limiting instructions, the search space shrinks dramatically, which speeds up convergence at the cost of higher disruption when mutation operators act.

To evolve these structures, the authors design two families of genetic operators. The first family manipulates XPath strings:

  • Add|Mutate|RemoveFilter – inserts, changes, or deletes numeric predicates (e.g., turning /book/chapter into `/book/chapter

Comments & Academic Discussion

Loading comments...

Leave a Comment