Friday, August 31, 2007

TopBraid Live: Rich Semantic Internet Applications with Flex

Rich Internet Applications (RIAs) run inside web browsers and provide a much more dynamic user experience than conventional web pages. While traditional HTML-based pages require a full reload of the page when the user clicks on a link, many modern web pages only reload parts of the page and provide animations to dynamically navigate through an information space.

There are several platforms to implement such dynamic web pages, for example AJAX, Flash, Java FX, Microsoft Silverlight, OpenLaszlo, XUL. These platform all share a similar programming model that mixes declarative (XML) elements to describe the layout of user interfaces with some imperative scripting to define the application's behavior.

For our newest Semantic Web tooling platform TopBraid Live we had to pick one of these technologies. The goal of TopBraid Live is to serve as development platform for Rich Internet Applications based on server-side Semantic Web models. TopBraid Live provides the whole server-side infrastructure to store and query RDF/OWL data, and a comprehensive client-side API including a library of out-of-the-box components that make creating web applications easier.

After evaluating AJAX and OpenLaszlo for a while we have finally chosen Flash, in particular Flex 2 and ActionScript 3 as the primary foundation for the client-side API of TopBraid Live. In our experience, Flex is the best available technology that is widely deployed and comes with all the flexibility that one would expect for true Rich Internet Applications. In particular we appreciate the nice object-oriented model and strong typing that makes ActionScript 3 code as maintainable as Java or C# code - unlike JavaScript with all its browser incompatibilities and ad-hoc constructs.

Today we are thrilled to announce the first comprehensive Semantic Web API for Flash. The TopBraid Live API provides a comparable data model to Java libraries such as Jena and Sesame. The triples and nodes in the data model are automatically synchronized with the server in a highly scalable architecture. Data is loaded as the user browses through the Semantic Web model, and triples and nodes are cached on the client, avoiding to continuously reloading everything. We provide some abstraction layers to run queries to back user interface components. Many UI widgets such as trees, tables, forms and graphical browsers come out-of-the-box as part of TopBraid Live.

The screenshot below shows TopBraid Ensemble, a multi-user Semantic Web browser and editor/wiki based on TopBraid Live (click on the image for a larger view).

In order to use TopBraid Ensemble, you need a TopBraid Live server to manage your RDF/OWL data stores (in whatever format you chose). You can configure which models are visible (and editable) by which users. The users can then log in and either navigate through the model or edit parts of it. The tool also provides search capabilities and even a graphical browser.

I believe that these capabilities and the smooth integration with TopBraid Composer as a professional development tool will make TopBraid Live one of the primary Rich Semantic Web Application platforms on the market.

Monday, August 27, 2007

Explaining Inferences

One of the nice capabilities of OWL is its rich built-in semantics. These semantics can be used to employ generic inference engines that can make implicit relationships in your OWL model explicit. However, once you start using an inference engine, you are often more or less working with a black box and may discover that the system makes inferences that are difficult to understand.

In the OWL tools spectrum, SWOOP was probably the first to provide some kind of explanation facility that would point users to a set of base axioms to explain inferences. This capability was based on an experimental version of the Pellet inference engine which has been folded into the regular Pellet distribution with its version 1.5. The new Pellet release made it straight-forward for us to add a similar capability to the new TopBraid Composer version 2.2. After running inferences via Pellet you can click on the menu next to inferred triples to open the Explanation view:

The Explanation view displays a clickable list of axioms. In the case below, it shows that the class Safari is inconsistent (i.e. a subclass of owl:Nothing) because it is the subclass of the two mutually disjoint classes Sightseeing and Adventure.

At TopQuadrant we have already had several use cases where this capability was a huge time-saver, in particular if ontologies get as large as those that we develop for NASA. Although the explanations may look weird or geeky at first, any pointers into the right direction can make a huge difference.