XQuery is a query language for XML. It is developed within the W3C by the XML Query Working Group, as part of the XML Activity. XQuery is a simple but powerful language that supports a large variety of data-oriented and document-oriented XML applications. From 1000 feet, the salient features of XQuery are:
The ability to write clearly and concisely advanced manipulation/transformation of XML data.
A declarative approach that promotes optimization and efficient implementations.
A type system that takes advantage of schema descriptions and enables early detection of errors in programs.
High-level requirements for XQuery can be found in the XML Query Requirements Documents.
Many applications and XQuery examples can be found in the XML Query Use Cases.
More information on XQuery, and the W3C XML Query Working Group, can be found on the W3C XML Query homepage.
What is Galax?
Galax is an open-source XQuery implementation. Our goal is for Galax to be a fully compliant implementation of the family of XQuery working drafts. Currently, Galax implements most of the following specifications from the XML Query Working Group:
- XQuery 1.0: An XML Query Language
- XML Path Language (XPath 2.0)
- XQuery 1.0 and XPath 2.0 Data Model
- XQuery 1.0 and XPath 2.0 Functions & Operators
- XQuery 1.0 Formal Semntics
The XML Syntax of XQuery XQueryX is not supported.
Who should use Galax?
Galax is a portable and extensible implementation of XQuery, with a liberal open-source license which makes it ideal for:
- XQuery users who want to learn the language and try queries on a running system;
- Students and researcher who want to experiments with an XQuery implementation;
- XML application developers who need a lightweight, easily embeddable, XQuery engine for their application;
- XML application developers who want an XQuery engine that operates over their own XML storage system;
- Implementors of XQuery systems who want to understand, or get access, to the internals of an XQuery engine.
- Anybody who needs a statically typed implementation of XQuery.
Who shouldn’t use Galax?
Galax is a versatile and extensible XQuery implementation, suitable for many uses. But here are a few cases in which you might consider not using Galax!
- If you need a pure Java-based XQuery engine, Galax is not it. You can get a look at IPSI-XQuery or Kawa-Query.
- If you need an XQuery implementation specially optimized for your a particular database, you should contact your favorite database vendor (or hook up Galax to it!).
Mary Fernández, AT&T Labs Research.
Jérôme Siméon, IBM Watson Research.
Cindy Chen, University of Massachusetts at Lowell.
Byron Choi, University of Pennsylvania.
Vladimir Gapeyev, University of Pennsylvania.
Amélie Marian, Columbia University.
Philippe Michiels, Universiteit Antwerpen, Belgium.
Nicola Onose, University of California, San Diego.
Douglas Petkanics, University of Pennsylvania.
Christopher Rath, AT&T Labs Research.
Christopher Ré, University of Washington.
Michael Stark, University of Darmstadt
Gargi Sur, University of Florida.
Avinash Vyas, Bell Laboratories.
Philip Wadler, University of Edinburgh, Scotland.
We have always a long list of things TO DO. So if you want to help, don’t be shy and drop us a note!
To Rob Dinoff who helped with the development infrastructure (notably the CVS and Web servers).
To Volker Renneberg who helped implementing the XML Query Algebra prototype that preceded Galax.
To the members of the XML Query Working Group, notably Peter Fankhauser, who contributed ideas and suggestions.
To the XDuce team, notably Haruo Hosoya, for discussions and for allowing us to use their subtyping algorithm at the early stages of our implementation.
To the Caml team for developing the best programming language in the world.
To the XML-QL team, Mary Fernández, Dan Suciu and Alin Deutsch for providing some help with the CGI scripts originally used for the on-line demo.
To Arnaud Sahuguet for the Galax logo.