Friday, 27 April 2007

Wednesday, 25 April 2007


Describing the behaviour of complex interacting systems is difficult.

Here is a clip of Rooney second goal against Milan on Tuesday night on YouTube.

Here is a diagram of that move as shown in the Independent the following day.

Is this more complex to describe than a web application, or less?

Features of a football move
  • Concurrent movement of of 22 actors (players ) to tracked
  • Only two kinds of actor - home, away (or 22 if positions are needed)
  • Only a few actors at any time are significant to the outcome
  • Only a single object,the ball, is interchanged
Features of a web application interchange
  • Several different kinds of actor, all with very different behaviour
  • Each interchange involves different objects
  • Objects are created dynamically
  • Receipt of an object (such as a script or page) alters the actor's behaviour greatly
  • Actors have fixed locations but you have to find them
Sequence diagrams are a useful technique for explaining moves in a web application. They can be drawn using a number of case tools, such as any which supports UML, but the tight binding to the rest of an object model can create difficulties. Diagram are also tedious to maintain, and there is a case for generating diagrams from a textual description.

As a small demo, I have created an application using an XML description of a sequence diagram transformed into html using either XQuery or XSLT 2.0.

(Saxon not yet activated on this server)

Of course this application will require a little more work to make it more configuable.

Thursday, 19 April 2007

Week 22- Metadata and media types

This week's lecture will look at the idea of meta data more generally, and in particular look at how meta data supports applications such as browsers.

Powerpoint Slides

Links for this topic:

Thursday, 22 March 2007

Timeline workshop

SIMILE timeline is a JavaScript module which provides an API with which a programmer can create a display of a set of events defined in an XML file.


  1. Work through the tutorial, creating a simple timeline as far as the section on Differentiating the Two Bands
  2. Create a new xml file of events in the required format which represents the University calendar or some other set of events

Wednesday, 21 March 2007

Week 21 - Revision

There will be a lecture this Friday to help you prepare your revision over Easter. We will look at the exam structure and last year's paper. I also want to gather your thoughts on topics which would benefit from additional revision material to present after Easter, although we still have material to cover after Easter.

The workshop will be on the representation of time using the tutorial on the SIMILE timeline project. Think of this as a GoogleEarth of time.

Tuesday, 20 March 2007

Multiple nodes in PHP

Several of you have asked about looping round elements in XML. This is obviously desirable because, although only six places are asked for in the data, the code should not have to change when a new place is added.

Heres how to do it - [Caution - this code is unchecked]

//assume places.xml contains multiple places, each with a name and description

$placesxml = simplexml_load_file("places.xml");

$places = $placesxml->xpath("//Place");

// $places is now an array of XML elements, each a Place element

foreach ($places as $place) {

//$place now points to each Place in the XML document in turn
// so we can use object references to access the elements within a Place

print $place->name, $place->description;

// or even XPath expression as well

// and of course, if the are repeated elements in Place, such Link, with elements
//url and text, we can use a inner loop to work with these

foreach( $place->Link as $link) {
print "<a href='$link->url'/>$link->text</a>"