« So You Want to Write a Book (about software)? | Main | Wikipedia: more useful than good »

XML summer school in Oxford

The Hogwarts of XML.

This summer was the seventh year that the CSW Group sponsored their XML Summer School in Oxford, England. CSW's offices are on the outskirts of Oxford, but they rent facilities within the ancient university to hold the classes. For the last few years they've held it at Wadham College, with a beautiful campus that was first build in the early seventeenth century. (To hear my father describe it, I'm an Oxford don, so I try to explain "Dad... it's a consulting company renting several rooms and dorms in the university...") The main Wadham dining hall, where Christopher Wren and Isaac Newton once sat, has a real Hogwarts effect and other buildings in the neighborhood either directly inspired or were used as sets for several scenes in the the Harry Potter movies.

[Wadham front quad]

I chaired the two-day XSLT track, which began with two sessions on basic XSLT 1.0 from me. Priscilla Walmsley then did an introduction to XSL-FO, which led to some great discussion from people in the audience such as Jeni Tennison and Debbie Lapeyre on XSL-FO implementations they've done for clients. Paul Prescod did a very popular presentation titled "AJAX + XSLT = ?" on the past, current, and potential future role of XSLT in AJAX applications. When he and I came up with the idea for the talk, I had no idea of the role that XSLT already played in Google Maps and the web interface to Microsoft Outlook, but I learned this and a lot more from his talk.

This track's second day focused on the batch of XSLT-related specs that recently moved to Candidate Recommendation status. Priscilla gave an overview of XQuery, the subject of her forthcoming O'Reilly book, and Jeni Tennison explained most of the new features that XSLT 2.0 adds to XSLT 1.0. She left the schema support parts of XSLT 2.0 (and XQuery) to Michael Kay, who discussed and demonstrated those. I didn't realize how much of the design of XSLT 1.0 was planning ahead for the use of XSLT processors that were built into browsers (something that Paul Prescod and I both demonstrated, but which never caught on the way the original XSL Working Group had hoped for), and part of this was a philosophy that runtime error propagation was bad because they would confuse people browsing the web. A key advantage of type-aware XQuery queries and XSLT 2.0 stylesheets is that when something doesn't work correctly—especially in the common case of no output when you expected some—the use of schema-awareness is more likely to result in an error message that gives you a useful clue about what went wrong. Michael is not an enthusiastic supporter of the W3C Schema Language, but strongly believes that any schema language that provides typing is better than DTDs, and because the large complex schemas being created and used these days use the W3C Schema language, that's the one to use. In his words, "I'm not selling it to you because it's good; I'm selling it to you because it's necessary."

Anyone familiar with XSLT will be recognize all of these names, so we obviously had an impressive lineup. I was sorry that we were scheduled opposite the web services track, where Eve Maler had put together a great list of speakers. Earlier in the week, I managed to see the second day of the "Content and Knowledge with XML" track put together by Peter Flynn, which was great. John Chelsom (the "C" in "CSW") opened the day with a talk titled "Turning XML Content to Executable Knowledge Bases." He began with some basic philosophical ideas about what we mean by "knowledge" and then worked his way to how technologies like RDF/OWL can help store usable knowledge in applications. His talk, and a talk later that day by CSW's Rueben Wright on "Applying Knowledge to Support Business Processes," convinced me that CSW is more concerned with connecting metadata to data to improve the value of that data than a lot of people who dutifully define metadata as "data about data" and then assume that someone else will come up with some data that goes with their brilliant metadata.

Lauren Wood put together the next day's "Trends and Transients" track, but couldn't attend in person because of a new arrival in her family. This track's final session gave all the track chairs five minutes to rant about whatever we wanted. A double espresso and my thoughts from the previous day about the relative practicality of different people doing metadata work inspired me to do a talk whose title alone took up a chunk of my five minutes: "If metadata is data about data, what data is your metadata about, and where can I find some, and don't just tell me that it would be great if someone created some." As the sort of rant that is typical for a weblog, I'm going to organize my notes and post that as a separate entry here.

Peter and I have done the summer school every year that CSW has held it, so by now many other speakers and CSW employees are old friends. Having these friends spread throughout the XML world has been very handy, although we don't end up discussing XML with the attendees at the scheduled evening social events as much as John Chelsom probably hoped. The evening events include punting up a picture-postcard River Cherwell to an idyllic pub and a scheduled pub crawl, complete with documentation, every year. Additional events this year included a tour of Oxford Castle/Prison, in use from 1009 to 1995 (John's wife, an lawyer, told me how she had visited prisoners there) and a tour of and amazing dinner in Cecil Rhodes' home.

Because of CSW's work in the health care and pharmaceutical field, several tracks and many speakers and attendees come from that world. My chance to learn about this came in the more informal settings, as I tried to express the combination of professional services (XML and metadata-related design, architecture, and implementation) and content services (conversion and enrichment, either automated or by hand, of potentially massive amounts of content) that my new employer provides.

Most speakers and many attendees end up at the indoor/outdoor college bar at one end of the back quad at the end of the night. I may have asked too many British XML summer school participants "why are you drinking Corona when you have much better beer in this country?" Observing the attendees of other unrelated programs as they hung out in the bar was also a popular sport, although some made me embarrassed to be from the same country as them—imagine tables of drunken college-age girls wearing their new "Oxford" T-shirts and shrieking at each other: "Oh my GAWD! That's AWESOME!"

CSW's Kerry Poulter, who as usual kept the frenetic week running smoothly, had dug up a few acoustic guitars in case any evening drinking led to a hootenanny, so one night in the back quad bar Eve got out her rollup keyboard, Tony Coates pulled out his electric ukulele, and we played until the bartender cut us off about sixteen bars into Led Zeppelin's "Rock and Roll." Our strange trio had some success with "Midnight Hour," "It's All Over Now," and the Velvet Underground's "Oh Sweet Nothing," and I insisted that we start with "Wish You Were Here" to honor the recent passing of its subject, Syd Barrett. I've sat around with acoustics and alcohol and friends before, but never with a wireless laptop to double-check on chords and lyrics.

I certainly learn a lot at the XML Summer School each year, and judging by the number of attendees who return for multiple years to attend different tracks each time, they're learning a lot too. Oxford is beautiful, and a little independent tourism in the area always pays off—many people (Paul Prescod this year, Sean McGrath and Lauren Wood and Tim Bray last year, me for a few past years and hopefully next year, and some attendees as well) bring their families along. If you're interested in going next year, sign up early, because they ended up turning away people for this summer's session.


(Note: I usually close comments for an entry a few weeks after posting it to avoid comment spam.)

Any pointers on papers, docs? (In particular the RDF/OWL stuff & Ajax+XSLT).

btw, it's "Oh! Sweet Nuthin'" - only significant when you go hunting the tab ;-)