XSieve is submitted to Google Summer of Code
I've submitted my new project XSieve to the Google's Summer of Code program.
Project Title
-------------
XSieve, an alternative to XSLT 2.0
Synopsis (a short description)
------------------------------
XSieve is an XML transformation language based on combination of XSLT 1.0 and Scheme. XSieve is an alternative to XSLT 2.0.
Benefits to the Community
-------------------------
The processing model of XSLT suites well for semistructured data (XML) processing. Unfortunately, XSLT is very limited as a general-purpose programming language, and sometimes even the simplest tasks become a pain.
There are several attempts to make XSLT better. The leading are:
* XSLT 2.0, new version of XSLT,
* EXSLT, a community initiative to provide extensions to XSLT,
* FSXLT, a functional programming library for XSLT, and
* processor-specific scripting using JavaScript, Python and some other.
In my opinion, the best approach is to extend XLST with such a language which has small but practical core and is compatible with XSLT in ideology. Scheme, a Lisp dialect, is a good candidate.
Interweaving XSLT and Scheme is a silver bullet for some data conversion tasks.
Deliverables
------------
Version 0.1 should be ready to use in a production environment for batch processing. Deliverables include:
* Documentation
* Set of examples
* Traditional source tarball
* RPM-package for some Linux system
* Precompiled binaries for Windows
More Details
---------------
The project was started two month ago. The project is registered at SourceForge, a domain for the project is registered.
I've already got first results, but they are not released yet. I'm going to move my local CVS repository to SourceForge in the near future. Before starting the project, I had finished the following:
* Pysch, Scheme runtime environment in Python. http://pysch.sourceforge.net/
* Python AST as XML. http://pysch.sourceforge.net/ast.html
* GNU find with XPath over the file system. http://uucode.com/texts/xfind/index.html
* Reusing XML processing code in non-XML applications. http://uucode.com/texts/genxml/genxml.html
I use customized version of Guile as Scheme implementation and libxslt as XSLT processor. Other combinations of Scheme implementations and XSLT processors are possible, but it is left for the future work.
I have more than 5 years of experience in the areas of SGML/XML and data conversion, have ideas how to make XML processing more efficient and have enough skills to implement the ideas. At the moment, I'm a PhD student in the Saint-Petersburg State University, Russia.
I've chosen Google as mentor because others seem limited by their specializations, and Google ready to accept non-Google projects.