FOAFCamp and Euro FooCamp

class of FOAFCamp
I’m at EuroFoo after an (I hope/think) successful FOAFCamp. FOAFCampers have put up their photos, and we’d like people to fill in the questionnaire. We hope to do it again sometime. It was lovely to see people again and meet new people and people I’d only met online.
EuroFoo looks good, though last night I was all socialized out and needed to hide under a rock. Today I’m more perky, and wishing I’d done some more cool stuff recently…. I’m totally chuffed that John Naughton is here 🙂

XMLEurope, Monday


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…

Icalendar and RDF and movable type again

I’ve been trying to see if movable type can emit future events e.g. intention to attend; recording the existence of; in an interesting way.

To change the date of an event (e.g. to say when an event in the future was) I had to change the editing screen to make sure you can change the date on an edited event. Once the entry was saved, I could change the date. But it is ‘authored on’ date so it seems sort of wrong to abuse the semantics of it in this way. Plus for repeating events you would have to add it each time. Also you would have to do a new entry each time, not just change the old one. Anyway, I have an icalendar versionof my weblog, thanks to jos yule (I’ve made a couple of minor changes to his template), and an RDFical version too. Oh and what the hell, an RSS 1.0 and RDFical one, just for fun.

Here’s the icalendar template, again, not really my work, but worth reposting for the differences from jos yule’s version (line length, uid uniqueness and date rather than datetime, which has to have a timezone in the same file, which is tricky to do using the current mt tools):

BEGIN:VCALENDAR
VERSION
:2.0
PRODID
:-//iCalendar experiment in Movable Type//EN
<MTEntries lastn="15">
BEGIN:VEVENT
UID
:<$MTEntryID pad="1"$>@planb.nicecupoftea.org
SUMMARY
:<$MTEntryTitle$>
DESCRIPTION
:<$MTEntryBody words="5"$>...
URL
:<$MTEntryPermalink$>
STATUS
:CONFIRMED
CLASS
:PUBLIC
DTSTART
:<$MTEntryDate format="%Y%m%d"$>
DTEND
:<$MTEntryDate format="%Y%m%d"$>
DTSTAMP
:<$MTEntryDate format="%Y%m%dT%H%M%SZ"$>
END:VEVENT
</MTEntries>
END:VCALENDAR

and the RDFical template:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2002/12/cal/ical#">
<Vcalendar>
<prodid>-//RDFiCal experiment in Movable Type//</prodid>
<version>2.0</version>
<MTEntries lastn="15">
<component>
<Vevent>
<uid><$MTEntryID pad="1"$>@planb.nicecupoftea.org</uid>
<summary><$MTEntryTitle$></summary>
<description><$MTEntryBody words="5"$>...</description>
<url rdf:resource="<$MTEntryPermalink$>"/>
<status>CONFIRMED</status>
<class>PUBLIC</class>
<dtstart rdf:parseType="Resource">
<date><$MTEntryDate format="%Y-%m-%d"$></dateTime>
</dtstart>
<dtend rdf:parseType="Resource">
<date><$MTEntryDate format="%Y-%m-%d"$></dateTime>
</dtend>
<dtstamp rdf:parseType="Resource">
<dateTime><$MTEntryDate format="%Y-%m-%dT%H:%M:%SZ"$></dateTime>
</dtstamp>
</Vevent>
</component>
</MTEntries>
</Vcalendar>
</rdf:RDF>

This would be much much better if you could add some stuff about whether you were planning to go, the homepage of the event etc. I’ve not thought through how to do this yet. It’d be a hack. I’m really not sure there’s much point in having an ical or RDFical feed for a blog unless it actually talks about events in the sense or meetings, conferences etc. You could have a blog that was just events maybe. Here’s an example of mixing foaf and RDFical to talk about attendence and to give the event a homepage.