Saturday, April 03, 2010

The SPIN Technology Stack

Regular readers of this blog may notice that I am a big fan of SPARQL-based technologies. In fact, most of my work in the last couple of years went into defining extensions to SPARQL, and implementing editing and debugging tools for those extensions. The results of this work have been made core features of the TopBraid Suite, one of the most successful industrial semantic development platforms.

The first of those SPARQL extensions was SPARQLMotion that somehow emerged out of discussions on scripting languages between me and Dean Allemang (wow: he has a Wikipedia page) and other TopQuadrant colleagues. SPARQLMotion was published in the end of 2007 and has matured considerably in the last year, often driven by real-world feedback from our growing user base. SPARQLMotion is a visual scripting language that simplifies the development of data processing pipelines. In addition to its use in TopBraid Composer, SPARQLMotion scripts can be executed as TopBraid Live web services or used to drive TopBraid Ensemble applications.

A year later, at the end of 2008, we published the SPARQL Inferencing Notation (SPIN), a SPARQL-based rule and constraint checking language. SPIN also greatly extends SPARQL itself through its support for user-defined functions, magic properties and templates. SPARQLMotion now uses parts of SPIN for its base infrastructure, and SPIN functions can also be used in SPARQLMotion scripts. Major application areas of SPIN range from ontology mapping to rule-based systems and even computer games.

The newest addition to this family is UISPIN, published as a beta release with TopBraid Composer 3.3. UISPIN makes it possible to link RDF and OWL models with user interface descriptions that can be rendered as HTML or SVG documents. UISPIN will enable the creation of a new generation of dynamic business applications in which the rendering of content is entirely model-driven. UISPIN is also based on SPIN and borrows its ideas of procedural attachment to classes and pre-bound variables.

Taking a step back, we can now draw a pretty picture to illustrate how those languages fit perfectly together, forming the SPIN Technology Stack:

This pragmatic collection of technologies offers a fairly complete infrastructure for projects based on linked data and semantic web. Based only on RDF and SPARQL as well as bits of RDF Schema (and, if you like, OWL), the SPIN Stack covers a wide range of business needs:
  • RDFS/OWL + SPIN: rich, self-describing domain models
  • SPARQLMotion: executable behavior
  • UISPIN: model-driven dynamic user interfaces
Software developers may recognize that those three pieces correspond to the well-known Model-View-Controller (MVC) architecture pattern. The SPIN Stack now basically covers all aspects of classical software architecture. These languages are careful extensions of the official Semantic Web standards that take RDF/OWL and SPARQL out of the research labs and into the real world.

And the best thing is that there is a lot of energy behind SPARQL (with SPARQL 1.1 on its way) and lots of other extensions, online SPARQL end points and efficient SPARQL databases on the market. As this market grows and more and more developers become familiar with SPARQL, the SPIN Technology Stack will be a safe investment for companies that wish to create flexible solutions based on smart, self-describing data.