JustSystems have kindly agreed to sponsor me as a W3C Fellow for work on XBRL and the Semantic Web. XBRL gives precise semantics to financial reports and has the backing of financial institutions around the world. There is tremendous potential for combining XBRL with the Semantic Web as a means to support the analysis and exploration of huge amounts of financial data. I hope to explore this potential in collaboration with XBRL International, the research groups working in this area, and the many individuals and companies interested in XBRL. Some of the things under consideration include open source tools, ontologies for relating XBRL taxonomies, and an exploration of ramifications for both XBRL and the Semantic Web, e.g. provenance and authenticity, the closed world assumption, and mathematical relationships within financial data. A likely starting point could be the launch of an Interest Group or even an Incubator Group to explore possible standardization activities complementing the role of XBRL International.
I have just returned from SVG Open which this year took place in Nuremberg, Germany, hosted by Examotion. I gave two presentations, one on my work on rendering and editing SVG using Flash, and another on model-based design.
With the demise of the Adobe SVG viewer plugin, there is a need for a new way to deploy SVG across existing browsers. Firefox, Opera and Safari now include native implementations, but Microsoft is keeping quiet on whether it will eventually add support for SVG in Internet Explorer. In the absence of native support, one possibility is to use browser sniffing and convert SVG to Microsoft’s proprietary VML format for delivery to Internet Explorer. VML isn’t as powerful as SVG, so that can cause problems. Another idea is to use a plugin, such as the former Adobe SVG viewer. Unfortunately, most users are very averse to downloading and installing new plugins.
The good news is that pretty much everyone already has the Adobe Flash player according to Adobe’s statistics. Flash has good support for XML, HTTP and graphics, and this suggests the possibility of using Flash to download and render SVG on any Flash enabled browser. I have been working to realize this idea.
My SVGOpen paper and presentation describe a viewer and associated editor that is designed to allow users to create and edit SVG directly on a website from within their browser. Thanks to Flash, this works on all major browsers and operating systems. Traditional drawing tools are standalone applications that need to be locally installed. The user interface is often very flexible and can be a little hard to learn. By contrast, most people expect Web applications to be easy to drive and something you can use the first time you come across it. Fulfilling such high expectations for an SVG editor isn’t going to be easy, but the work is progressing well and I am looking forward to initial user trials.
XBRL is an XML language designed for filing company reports and backed by the SEC and regulatory authorities in Europe and Japan. It makes it possible to be very precise about the accounting concepts used in a particular report, including the means to define extensions to existing taxonomies. XBRL makes extensive use of XLink and as a result is hard to process with XSLT. I am exploring how to translate XBRL into RDF turtle syntax with C and libxml2, and preliminary experiments are very promising. The code processes the XBRL instance, its schema and all associated linkbases to extract RDF triples which are loaded into a scalable triple store such as sesame. XBRL viewers can then be implemented as server side scripts that query the triple store via SPARQL, which is much easier than manipulating the original XML files.
This also opens the theoretical possibility for XBRL filings to be submitted in one of the RDF syntaxes, e.g. turtle. The current XML syntax makes use of XML Schema to assist with validation of XBRL filings, and it will be interesting to look at validation using Semantic Web technologies as an alternative. I am looking forward to exploring the use of RDF with the rendering linkbase that is under development at XBRL.org.
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. Continue reading
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.