We are all used to the way in which bookmarks and links stop working as websites come and go, or as organizations feel the need for a change. Is there anything that can be done to reduce link rot, especially for organizations like W3C which seek to provide persistent URIs for key documents, but this is problematic as W3C won’t be around forever.

The inability of organizations to guarantee persistence for bindings from identitifiers to resources would seem to merit work on solutions that survive beyond the life of such organizations. Another angle on this is that who is to say now which resources will be more valuable in a few decades time: an obsolete spec from a standards organisation or a poem from a personal website? This is something that is hard to be sure of in advance.

A possible solution, or at least one worthy of study, is the idea of a distributed cache of resources that isn’t dependent on any one organization. The Google cache is promising, but we have no guarantees for how long items are kept and made available, nor whether Google itself will still be around in fifty years.

A distributed cache would need sufficient redundancy to preserve copies of occasionally accessed resources. The value of a resource could perhaps be measured on how often it is accessed. Static copies of dynamically generated resources may be okay for some purposes, but it may also be worth considering how to cache services and associated metadata.

This provides hints of a next generation Web where addresses are resolved through a distributed system rather than via direct contact to the named HTTP server. This would live alongside the existing web and would be an opt in solution for individual websites. There is no need for a change of addressing scheme.

You can think of this as a mass migration to virtual websites where the hosting service defines a framework for metadata, static and dynamic resources (executable service descriptions). It would need to provide careful attention to privacy, identity, security, and perhaps payment mechanisms. The framework would be implemented in a distributed way involving multiple cooperating providers.

How would such providers be rewarded for the resources they provide? I believe that multiple mechanisms are needed and would change over time. A very popular website would consume vastly more resources than one that is accessed infrequently. There are also considerations of differences in value systems across cultures and national boundaries. So a single solution is unlikely to work, and further study is needed to better understand how to balance a healthy business model for providers with the disparate needs of users.

It is time to move on from the perennial discussions of URNs versus URLs, and to consider the kind of Web we want to leave for our descendants. Do we want persistence and open data or are we willing to embrace an era where everything is ephemeral? Is Web Science up to the challenge?

After struggling for a long while with the limitations of the scripting APIs that browsers expose for SVG and HTML, I have decided to try something different and to explore the potential of the ubiquitous Flash player. I wasn’t particularly keen on the official Flash development tools and have opted instead for Nicolas Cannesse’s haxe web development language. This is comes with a fast compiler and support for Flash 6 to 9. It also targets neko, a fast virtual machine that works well with the Apache web server.

My aim is to explore the role of XML for declarative end-to-end models of user interfaces to business processes. I wish to build upon XForms by adding markup for layout and a rich set of UI controls that are aligned to WAI-ARIA. So far haxe has been really easy to work with and very much better than working with the traditional browsers. I started by focusing on a small library of UI controls and am now working on the XForms support. In parallel, I have been working on implementing support for SVG, building upon Helen Triolo’s work on using SVG path data in Flash, with inspiration from Daniel Turing’s Xinf .

Putting it all together, this turns the Flash player into an XML-based browser for business applications. This follows in the footsteps of DENG a modular XML browser with support for subsets of XHTML, SVG, XForms , XFrames and CSS3. DENG is only 76Kb in size, but is rather slow as it predates the release of Action Script 3 and the performance improvements in the Flash 9 Player.

On the server side, I plan to experiment with a fusion of State Chart XML (SCXML) and business rules languages for executable models of document-based business processes that run on application servers. Here I will probably need to switch to Java on account of the wide availablity of open source Java components (e.g. Commons SCXML and a large number of rules engines), however, there is talk of extending the haxe compiler to target the Java VM. I also plan to explore the use of diagrams for easier authoring of high level models. To support this I am looking forward to working on browser based authoring tools that run within the Flash Player and operate on XML.

There is huge potential for mobile web applications that can access device capabilities from client-side scripts. There has been a lot of work on J2ME APIs for Java based applications, but we lack standards for exposing local device capabilities to applications running in web browsers. The time has surely come for W3C to bring interested parties together to work on fixing this as a matter of priority. (more…)

One of my software projects is Slidy, a web-based slide presentation application that has proven popular amongst the W3C Team and elsewhere. It uses CSS to render HTML div elements as slides, and JavaScript to move from one slide to the next in response to user input. Another similar application is Eric Meyer’s S5. When writing Slidy I had to work hard to ensure that it worked across a wide range of web browsers. The variations in the scripting interfaces is a big challenge. (more…)

I very much enjoyed a week long trip in mid-November 2007 aboard Emperor Diver’s MY Infinity liveaboard for an itinerary that took in a variety of wrecks and some beautiful coral reefs. I buddied with Neil Lilly from the Bath BSAC dive club. Along the way I took lots of photos with a Canon S60 and an INON wet mount wide angle lens. The trip was organized by the Bath Dive Centre. On my return I was able to revisit the reef locations using FlashEarth. For instance see the Abu Nuhas reef, the site of the Chrisola K, Lentil, Carnatic and Gianis D wrecks which lie along the northern reef wall.