Last week was my first week working at TopQuadrant, and I spent three days in a class given by one of my new co-workers, Scott Henninger. I only had a skeletal idea of what the components of TopBraid Suite did before, and now that I have a better idea, I’m very impressed. (I may be wrong on one or two details below, but I’m still the new guy.)
I had the impression that the core original product, TopBraid Composer, was mostly for designing and editing RDFS/OWL schemas and ontologies. It’s very good at doing those, but it also makes a very good interface for dealing directly with the data described by these models. Being built on Eclipse, the various panes (or, in Eclipse parlance, “views”) of the main window let you see an ontology or a file of data from several angles at once and refine the model by pointing, clicking, dragging, and editing dialog boxes.
TopBraid Composer also includes a SPARQL engine and uses standard SPARQL as the starting point for several new technologies that let you build applications around triplestores. A great new one is SPIN, for “SPARQL Inferencing Notation”. As described on spinrdf.org,
SPIN is a collection of RDF vocabularies enabling the use of SPARQL to define constraints and inference rules on Semantic Web models. SPIN also provides meta-modeling capabilities that allow users to define their own SPARQL functions and query templates. Finally, SPIN includes a ready to use library of common functions.
As TopQuadrant VP of Product Development Holger Knublauch wrote in a comment in a recent William Vambenepe blog entry,
Another aspect of RDF that SPIN rides on is the vision of a distributed self-describing data structure. In the Semantic Web, both classes and instances live in the same space and can be queried using the same mechanisms. SPIN takes this idea to extremes: you can not only define classes and properties, but even define executable semantics of those and use this mechanism to build your own modeling languages.
Holger’s own blog entry The Object-Oriented Semantic Web with SPIN is a good introduction to what SPIN (and TopQuadrant’s implementation of those executable semantics, TopSPIN) are all about. With support for SPIN built into the free edition of TopBraid Composer, a lot of people can now try this out, and I look forward to helping the company beef up the documentation for it.
SPARQLMotion is another impressive RDF application development productivity tool. SPARQLMotion lets you build applications by dragging icons into a screen where you connect them into pipelines that can branch in different directions depending on various conditions. You configure each icon by filling out a dialog box to point to data sources, data destinations, and processing modules. Input modules represented by different icons can pull data from news feeds, spreadsheets, email, XML, all the obvious RDF sources, and more. Processing can apply rules via Pellet, Jena rules, TopSPIN, Calais, XSLT… that’s about a quarter of the list. You can then output the results of your processing to most of the input formats and additional ones such as calendars, maps, and HTTP POST requests. (PDF support is on the way, so that you could have the XSLT processing module convert XML versions of data pulled by some SPARQL queries into XSL-FO of a nicely rendered page and then output a PDF file from there.) Holger has done a nice five-minute video called “Creating a SPARQLMotion Script” on TopQuadrant’s video page.
After TopBraid Composer, the other two components of TopBraid Suite are Ensemble and Live. TopBraid Ensemble lets you create applications by selecting user interface components and essentially writing event handlers for them. Components for displaying data include trees, grids, and forms, so a dashboard app would be pretty straightforward to build. Because it’s built on Adobe Flex, you can create any Flex component you want, such as a movie player, and then use the Ensemble API to grab triples and use them in processing. (I never realized that a running copy of Eclipse has an HTTP server that you can use as the basis for applications.) Because the UI that you design can trigger manipulation of the data in a triplestore using SPIN and SPARQLMotion, you can build complete applications around triplestores for use by people who may not even know what RDF is but who need to work with that data using a form-driven interface.
Once you build an application with Ensemble, TopBraid Live lets you deploy it on a server for others to use. I saw Scott help a customer deploy an app, and the process pretty much looked like zipping up some files and then unzipping them to the right place on a server that the app’s users would have access to.
With SPARQLMotion as a development tool and TopBraid Live as a deployment tool, it’s easy to picture an information publisher having staff members who do nothing but full-time SPARQLMotion development, creating apps that mix and match data from all the different data sources available to that publisher in order to build information products and applications around those data sources. (The data might be available as native RDF, but would more likely be in a host of other formats available to the SPARQLMotion scripts using its automatic converters.) Using TopBraid Live, the publisher would use these apps to deliver content in any format necessary to their customers. The publisher would have an agile platform for creating new information products whose components may have started off in separate silos and would have taken a lot more work to integrate without TopBraid Ensemble. Of course, there’s more to it than the easier integration provided by the RDF data model; the possibilities that RDFS, OWL, and now SPIN provide for adding metadata to the content should be very attractive to publishers as well.