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.