Software


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.

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.

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…)