[xquery-talk] [xml-dev] Mistakes made in the design of XQuery 3.1

daniela florescu dflorescu at me.com
Fri May 22 18:11:43 PDT 2015

> The unfortunate choice of those two keywords (“for” and “return” instead of “from” and “select’) in XQuery had
> such a HUGE impact on adoption (or not)  of  XQuery, it’s amazing.
> It’s not too late to add the macros…..and make XQuery understandable to people who only want to see
> select… from ...
> Big mistakes.


THAT particular choice of keywords (FOR/RETURN… instead of FROM/SELECT)…. is  MY mistake ENTIRELY. 100% MINE.

I regretted that (daily) in the past 16 years …..and did LOTS of penance for it…..please believe me.

I could tell you the story… maybe it’s fun, maybe it’s interesting from a technology/history perspective.


It was 1999, and I was a researcher in INRIA, studying query languages and query processing for semi-structured data. (since 1996 when I was in ATT Research)
I was stuck in Paris, where nothing ever happened in technology, and I was dreaming of going to Sillicon Valley, where EVERYTHING happened.
So, I managed to become a visiting scientist at IBM Almaden in Sillicon Valley.
My boss at that time, Mike Carey (now professor it Univ. Irvine), just decided to leave IBM for a startup — Propel.
He didn’t know what to do with me (I was his responsibility :-) …., so he took me by the hand to Don Chambelin (of SQL fame)
       across the hall, and he asked me: “Why don’t  you work with Don Chamberlin on this XML query thing, after I am gone ?”
That’s what I did, together with Jonathan Robie, and the result was Quilt, the precursor of XQuery.
Well, it happened that my PhD thesis was on query languages and query processing of object-oriented languages, and OQL was a functional language, above
and before being a query language. Hence, XQuery became a functional language.
Well, in the same time, I was teaching in a French university the ML programming language, a long love of mine, as programming languages are concerned.
Here is the catch: ML used the words FOR and RETURN for monoid comprehension….which both the Select-From-Where of SQL and the FLOWR expression are.

Back to the story:

While in IBM, one evening Don Chamberlin asked me to write a grammar and a parser for Quilt. I spent the night doing that, and in the morning I showed him what I did.
As a fresh lover of ML, I used the keywords FOR and RETURN in the grammar.

Don looked at me and told me…. “This thing….we’ll call it a FLWOR expression.”



It NEVER crossed my mind RIGHT THEN that that random decision that I took one night in a state of extreme fatigue will become cut-in-stone within
 the over-powerful standard that XQuery is today.

I guess lots of technical decisions happen this way….randomly.

Best regards,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://x-query.com/pipermail/talk/attachments/20150522/079b5806/attachment.html>

More information about the talk mailing list