Back in 1998 there was no consensus that anyone would need a full-fledged XML query language. Today, XQuery is being implemented by all the major relational databases, by middleware vendors, in content management systems, and by open source projects. It’s even becoming part of the SQL standard. “You’ve got to consider that success for a language,” says Jonathan Robie, one of the prime movers in the development of XQuery.
Twenty years ago, Robie, who today is DataDirect’s XML program manager, found himself struggling with the limitations of relational databases. His interest in alternative object databases led to a stint at Poet Software. One of Poet’s customers, the medical publisher FA Davis, proposed the idea of an SGML (Standard Generalized Markup Language) database.
The resulting product was based on OQL (Object Query Language), but webMethods’ Joe Lapp convinced Robie that XML’s characteristics required a different foundation. Although an academic paper by Frank Tompa had spelled out many of the key ideas, Robie hadn’t seen it. “So I spent the next two years reinventing the concepts,” he jokes now, somewhat ruefully. One of the outcomes was XQL (XML Query Language), a precursor to XPath, the method now widely used to extract subsets of XML documents.
In a workshop at the 1998 W3C conference, Robie met AT&T’s Mary Fernandez, one of the creators of XML-QL, a SQL-inspired language. “We didn’t really understand each other very well at first,” Robie recalls. But discussions were fruitful.
In 2000, Robie collaborated on Quilt, a prototype language designed to blend seven competing proposals and serve as the basis for XQuery. What kept things on track were the “use cases” — realistic queries that Quilt, and then XQuery, had to be able to solve. The use cases were especially valuable because XQuery’s three major facets — finding, emitting, and correlating XML fragments — span such a wide range of apps.
As XML becomes the lingua franca for everything from XHTML Web pages to Word documents, the value of a general-purpose XML query language becomes ever clearer.