proposal for XML Prague 2007

I’ve just sent an extended abstract for the XML Prague 2007 conference. I hope it will be accepted.

Title: Generative XPath
Name: Oleg Parashchenko
Affiliation: Saint-Petersburg State University, Russia


The most convenient approach to navigate over XML trees is to use XPath queries. But there is no reason to limit ourselves to XML only. Indeed, it’s useful to have XPath for navigating over arbitrary tree-like structures.

There are a number of projects, in which developers have tried to implement XPath over project-specific hierarchical data. Unfortunately, most of these attempts resulted in something that resembled XPath, but was not XPath. The problem is that implementing XPath, even version 1.0, is a difficult task.

We propose an alternative approach. Generative XPath is an XPath 1.0 processor that can be adapted to different hierarchical memory structures and different programming languages. Customizing Generative XPath to a specific environment is several magnitudes of order easier than implementing XPath from scratch.

The Generative XPath framework consists of three components:

* XPath compiler,
* XML virtual machine, and
* native (customization) layer.

The XPath compiler transforms XPath expressions to an executable code for the virtual machine. During execution, the code interacts with the native layer to access the tree nodes and its properties.

This paper explains what the virtual machine is, what is expected from the customization layer, and how they work together. Also, background information about the design and implementation of Generative XPath is given.

2 Responses to “proposal for XML Prague 2007”

  1. Thomas Koch Says:

    I’m working on a PHP component to interact with hierarchical data stored in a RDMS. I’ve exactly the problem you described and I’m asking myself, if it makes sense, to implement XPath for this component or to reduce the functionality to some methods like:

    $tree->getPath( $node1, $node2 );

    This method resolves my current problems, but I’m sure, that there will come also other questions I want to ask to the tree.

    The requirements draft and first design examples:

  2. olpa Says:

    Hi Thomas,

    unless you really need the full XPath, it’s easier to reduce functionality.

    The Virtual Machine is actually a runtime for the Scheme r5rs language. Unfortunately, there are no Scheme implementations written in PHP. Writing one is easy enough (2 weeks), but anyway it requires time.

    As for the requirements draft, don’t miss ordpath:

Leave a Reply