Sunday, March 25, 2007

SPA2007 - day 0

I tinker endlessly with the eXist workshop material, still some solutions to do and the new server isn't having anything to do with the Java Webstart client. Hopefully it will get fixed before Wednesday afternoon. I'll also have to figure how to create multiple folders with the same initial contents - should be able to use a backup but not sure how to install in a different place.

Monday, March 19, 2007

FizzBuzz

Here's a quick XQuery solution to the FizzBuzz problem posed in David Patterson's blog.

I've taken the liberty of splitting the hyphenated string into two attributes.

let $config :=
<fizzbuzz>
<range min="1" max="100"/>
<test>
<mod value="3" test="0">Fizz</mod>
<mod value="5" test="0">Buzz</mod>
</test>
</fizzbuzz>

for $i in ($config/range/@min to $config/range/@max)
let $s := for $mod in $config/test/mod
return
if ($i mod $mod/@value = $mod/@test)
then string($mod)
else ()
return
if (exists($s))
then string-join($s,' ')
else $i


Thursday, March 15, 2007

Timelines

Here are some ways in which timelines are being used in the web:

  • TimeSearch
  • GoogleEarth timeline
  • HyperHistory
  • SIMILE timeline from MIT
    • Provides a Javascript API to create a complex panning timeline.
    • Events are uploaded in XML format which defines for each event
      • start title end? isDuration? latestStart? earliestEnd? image? link? and body
    • Cant locate schema for the event stream
    • Event date format is not xs:date
    • body must be a string i.e. with < not <
    • Set the mime type to application/xml
    • example XML timeline
I've implemented the SIMILE timeline in my Family History. Here is an example
Links to other people load their timelines (although some are incomplete and not working).

Multiple event streams can be displayed in multiple bands - e.g. here are the lives of two family members

It would be great to get a subset of world history events from TimeSearch to include as a separate band.

To do:
  • Convert xs:date to Timeline format
  • Handle photos with missing dates
  • Focus timeline when no date of birth

Wednesday, March 14, 2007

My Family History

Bamber Gascoigne's TimeSearch got me thinking about my family history project again.

The Family History project started with the idea of putting some family photos on the web, together with some meta data about the photo. Most had a list of subjects but only very occassionally a date. I had the idea that if the birth dates of the subjects were added, and the age of just one subject could be guessed, the system could infer the date of the photograph, and hence the age of all subjects. With birth and death data included, a timeline could be extracted for a person, including birth, deaths and marriages, photographs and even world events.

The resultant eXist/XQuery/XSLT prototype is here.

What would be nice would be be able to combine such personal histories with events in world history, or to compare the timelines for famous people with that of a family member. A simplistic approach would be to deep link into history sites and this is what the prototype has done, creating links like
These generated links are not as clever as those in TimeSearch, which I would guess are hand edited.

This is simple to accomplish, but its rather one-side - my site can link to another, but it can't mashup the data with my own. A mashup requires an API and a published format for exported content. I suppose we might look at hcalendar as one possible format but it would need extending it to support tags. RSS is another possibility.

TimeSearch by Bamber Gascoigne

The item on the BBC's Start the Week' by Bamber Gascoigne on the history site he has created called TimeSearch sparked my interest TimeSearch is a history search portal, using event stubs to provide links onwards to a wide range of sites - from general news sites, Wikipedia and Google images to specialist on-line resources. Events can be selected using two hierarchical category systems, location and them as well as year. I confess I had some trouble deselecting categories once selected.

This is the latest form of delivery of the extensive material Bamber has created and put on line in:
One wonders how this authored material compares with the collaborative Wikipedia. It is certainly an impressive and rich resource.