XIME-P in Chicago

By Michael Kay on July 01, 2006 at 02:18p.m.

It's been a heavy month for travelling: Grenoble, Dusseldorf, Prague, Paris, Edinburgh, and now Chicago for the one-day XIME-P XQuery workshop.

I presented a paper describing a proposal for an XQuery extension to tackle positional grouping problems.  You can download both the paper (PDF) and the Powerpoint slides. This is essentially a conference of XQuery researchers and implementors, co-located with the SIGMOD database conference. The main reason I put this paper forward was that I was irritated at last year's workshop by the "data" orientation of most of the speakers, and felt there was a need to stress that XML, unlike relational data, is intrinsically ordered and that there are many practical tasks that need to take the ordering into account. As it happens, there was much more emphasis on narrative ("document-oriented") XML at this year's event, including a couple of papers on  parallel markup - one of the speakers informing the audience, as if it was a new discovery, that XML was invented by markup people and not by database people.

My paper on positional grouping got a reasonably good reception. Some people seemed to think that extensions to FLWOR expressions would be a better approach than a free-standing new construct. I'm not convinced - I haven't seen the use cases that require it, and in any cases FLWOR expressions are already quite complicated enough. I think it was a bad mistake adding the "O" for "order by" rather than having a free-standing "sort X by Y" construct. Apart from anything else, it bends the data model by requiring the concept of tuples, which makes it hard to implement, hard to explain, and apparently has made it impossible to define the formal semantics.

The XQuery people, by and large, still try to pretend that XSLT doesn't exist. Don Chamberlin proudly announced that the word "XQuery" gets 11,900,000 hits on Google, without mentioning that "XSLT" gets 90,200,000. He also mentioned evidence of lively traffic on internet XQuery forums, whereas my perception is that xsl-list still has ten times the traffic of all the XQuery sites put together (and it was much higher in the early days). Perhaps he didn't even think to look, I don't know. All the debate in the corridors and in the panel session seemed to make the assumption that the biggest competitor to XQuery was not XSLT but LinQ. For academics, this blind spot is understandable - they only think things are important if lots of academic papers are being written on the subject. It's harder to understand in the case of people working in the industry.

Dana Florescu presented an important paper on XQueryP, a proposal for adding procedural extensions to XQuery - statements that define the order of execution, and allow assignment to variables. I have considerable doubts about whether this is the right way to go. There are use cases where such features are badly needed, but my fear, based on experience with saxon:assign, is that the facilities will be greatly abused by users who haven't taken the time it needs to learn about declarative programming. Also, Dana has a vision of XQuery being used to write entire applications. I prefer to think of XQuery being used to write small components, each of them functional in nature, which are then bound together to form a complete application using pipeline processing languages (which is where the sequential, stateful logic belongs).

I've now got a weekend to enjoy in Chicago, this being what happens when you pay your own air fares. Off to play croquet at 7.45 am - an unthinkable hour back home in England, but perhaps the idea is to avoid the heat and humidity. Even in free time, however, the diary is overloaded: I would have liked to watch the England v. Portugal match.