VXQueryProposal

Abstract

Apache VXQuery is a language processor that implements the XML Query Language v1.0 standardized by the W3C.

Proposal

VXQuery (Versatile XQuery) will be a standards compliant XML Query processor implemented in Java. We believe that there exists a strong (and growing) need to process semi-structured data in many applications. The W3C standardized v1.0 of the XML Query Language in early 2007. Since then, a few processors have surfaced (both commercial and open source). VXQuery will implement this standard.

VXQuery plans to be the glue that brings together imperative programming in Java and declarative programming in XQuery. The project would enable developers to use XQuery to navigate and transform application objects declaratively in Java applications with minimal overhead.

In the VXQuery project we plan to build an implementation that allows users to run declarative XQueries on arbitrary object models. Existing XQuery engines execute queries by translating the user data into some form of XML Object model. With VXQuery, we take the opposing view - Translate the query to work natively on the user's object model.

In addition, VXQuery works on top of different XML representations including DOM, Stax, and a space optimized model motivated by Xalan's DTM (Document Table Model).

VXQuery will also provide a library that allows application developers to express declarative queries without the need to learn a new syntax. We believe that this will speed up the adoption process.

Current Status

This is a new project. Initially, some code will be contributed into the project by the developers. The development of this proposal is complete and ready for a vote.

Meritocracy

The initial developers are very familiar with meritocratic open source development at Apache. Apache was chosen specifically because the initial developers want to encourage this style of development for the project.

Community

VXQuery seeks to develop developer and user communities during incubation.

Core Developers

The core members of the project are diverse. Vinayak Borkar is an independent consultant. Till Westmann works for a company that would be a potential consumer of VXQuery. During incubation the developers base will be broadened.

Alignment

XQuery is gaining more traction as a XML management technology and there already are several Apache projects (XMLBeans, Camel, Tuscany, Synapse) that use or need a XQuery implementation. As no such implementation is available as an Apache project these projects have to rely on external engines. VXQuery can fill this gap and complement the XML support of the Apache Software Foundation.

Known Risks

Orphaned products

VXQuery is new development.

Inexperience with Open Source

The initial developers include long-time open source developers. Vinayak Borkar is an active contributor to the Zorba project at the FLWOR foundation.

Relationships with Other Apache Products

XMLBeans is a representation of XML that would be natively supported in VXQuery. Therefore VXQuery can be used as an efficient and Apache-licensed implementation for the selectPath and execQuery methods found in XMLBeans.

Similarly, Tuscany's SDO implementation can be natively supported and VXQuery can be used to provide an XQuery implementation for Tuscany.

VXQuery can also be used as an XQuery implementation for Camel, and Synapse.

Further, VXQuery uses the Xerces XML parser and schema validator.

A Excessive Fascination with the Apache Brand

We believe in the processes, systems, and framework Apache has put in place. Apache is also known to foster a great community around their projects and provide exposure. While these points are important, they are not the main motivation for choosing Apache to host VXQuery.

Documentation

Not publicly available

Initial Source

Not publicly available

External Dependencies

JavaCC (BSD license), Davos SDO implementation (Apache 2.0 license), Woodstox XML parser (Apache 2.0 license), XStream project (BSD license)

Required Resources

Developer and user mailing lists

vxquery-dev@incubator.apache.org vxquery-users@incubator.apache.org vxquery-commits@incubator.apache.org

A subversion repository

https://svn.apache.org/repos/asf/incubator/vxquery

A JIRA issue tracker

VXQuery (VXQUERY)

Initial Committers

Sponsors

Champion

Nominated Mentors

VXQueryProposal (last edited 2009-09-20 23:06:24 by localhost)