I’m in Amsterdam at the RAI conference centre for XMLEurope 2004. I have some photos from Monday’s sessions (and also some from walking around Amsterdam yesterday). ldodds, mattb, dajobe, jang, danbri, shellac, edd (naturally!), Steve Cayzer were all around, and I met bryceb (and his wife :) for the first time in person.
I have a few notes from today. There were lots of interesting things to see. The keynotes were by Jeff Barr of Amazon and Steven Pemberton from W3C. Interesting to hear some detail about the Amazon Web Services, including the 80/20 split between developer use of REST and SOAP interfaces to the Amazon catalogue, and the business case for making the catalogue available in machine-processible format: essentially the value is not in their catalogue per se, and they have a business model for third party sellers and affiliates, so WS access just makes this relationship easier. The output example he gave looked to me very close to RDF; with Amazon’s XSLT service it could be transformed to it very easily I think.
Steven Pemberton’s talk was as interesting and funny as I remember his previous talks being. His main point was that the cost of disk space and processing power is now insignificant compared with the cost of programmers, therefore it makes economic sense to invest in making it simpler for humans to create code. This is in contrast to the 60s where programmers were very cheap compared with the cost of programming power. Steven showed a great example of how the computer you have now is not just several times better than your previous one but better than all of your previous computers combined.
Later I saw Robin’s Berjon’s talk on SVG 1.2. I love going to SVG talks. The fun and enthusiasm is infectious. Robin talked about various changes in SVG 1.2, including (from memory, so I will have left some out): text wrap; get and post; video and sound (often from SMIL); pagination; RCC -> sXBL (for xforms etc). For mobiles: micro DOM; animations. I’m in the wrong business :/
Paul Prescod gave an overview of two RESTful APIs, the Atom and Amazon APIs. Atom is very generic, uses get, post, put, delete; updates replace the content entirely. The Atom file format seems to be divorceable from the API, so you could use the API to create, update and delete RSS for example ;)
Amazon’s API is very specific, designed by one company for a particular purpose. Atom’s is a distributed effort, more like a standards effort.
I was glad to get a summary of what’s going on in Atom; although I’m on the list, I haven’t found time to follow it fully.
After lunch I went to Jonathan Robie’s talk on SQL and XQuery. He introduced SQL/XML and XQuery, stressing the advantages of using standards-based approaches like these rather than ad hoc or proprietory bits and pieces.
The main issue is how you turn data from a relational database into XML. Of course you can do this with a bunch of SQL queries, which is tiresome but portable; proprietory extensions are not portable; with
SQL/XML you get XML results from a relational database with reasonably minimal effort – a few methods. This is part of SQL 2003. There are some
implementations (oracle and db2). You get back jdbc resultsets with xml inside them.
XQuery – can query sql or xml and there are several implementations. Robie terms it ‘native XML programming’. It’s harder to learn though. Xquery 1.0 recommendation probably 2005, after another ‘last call’. There’s also a java comminty process for jdbc for sql/xml.
Liam Quin gave a nice talk on how he has used Xquery, relational databases and cgi scripts to create a query interface to his popular collection of images form antique books, creating both html and SVG results. Lovely pictures, and interesting to see Xquery used in a non-commercial scenario as an experiment. I want to take his data (which near as dammit RDF) and see what sorts of differences we get with creating a version with RDF tools.
After a pleasant bout of outdoor typing and wifi use in the hotel garden we braved a rainstorm to the Film Museum cafe in the Vondelpark. Lovely.
Tomorrow we have a packed schedule including lots of TopicMaps and RDF talks and I’m hoping I’ll run into Uche and Chaals…
After a chat with Morten Frederiksen, I’ve improved my bot wh4 (previous blog entry) a bit so that you can ask it for pictures in more detail. So instead of asking just for a picture of a person by name (!pic Libby Miller), you can ask for pictures depicting several people at once (!pic Damian Steer, and Dan Brickley), or for pictures of a certain place (!pic [in|near] bristol), or for pictures of things (!pic [a|some] beer), and by date (!pic on 2004[-03-10]). Or you can combine all of these together e.g. (!pic sean, and norm, in bristol, a napkin, on 2003-10). It’s all case-insensitive.
You can try the bot on #foaf or #whwhwhwh on irc.freenode.net. You can add RDF to the underlying database using this form.
The syntax is a bit clunky – it needs all those commas to separate any single thing it’s looking for. It needs the keywords [and] for any additional person; [a|some] for each wordnet thing; [in|near] for a location; [on] for a date. A word with no keyword is assumed to be a person’s name.
The query is mapped directly to a squish RDF query which makes it nice and simple but means that there’s no clever handling of inverses like depiction etc, and of course it relies on data being present, in particular for location it uses my experimental properties (example file).
It asks the query of a remote interface to my database, returning RDF and then the bot asks the same query of the RDF it gets back, returning a maximum of 5 results. The code is here – it uses Paul Mutton’s Java PircBot code.
After all that I found it a little disappointing. It works for me to find my way to photos I know are present, but the hit rate is too low to make random queries.
As a byproduct I fixed up query by date in html. Quite cool to see what others are doing on the same day, e.g. 2004-03-03 – I was having fun at the tech plenary in France and someone else was at the dentist…