SPARQLMotion Contact: Holger Knublauch < holger@topquadrant.com

What is SPARQLMotion?

SPARQLMotion is an RDF-based scripting language with a graphical notation to describe data processing pipelines. The figure below shows a small example SPARQLMotions script.

The basic idea of SPARQLMotion is that individual processing steps can be connected, so that the output of one step is used as input to the next. RDF graphs are the basic data structure that is passed between the steps, but named variables pointing to RDF nodes and XML documents can also be passed between steps. The behavior of each module is typically driven by SPARQL queries, for example to iterate through result sets, to construct new RDF triples and to perform updates to RDF data sources.

SPARQLMotion is an open language with published specifications and system vocabularies. It has a large and growing community of users, who find it particularly suitable for data processing tasks and middle-tier services behind user interfaces. SPARQLMotion is supported by all TopQuadrant products and by TopQuadrant professional services.

The following figure outlines the architecture of the SPARQLMotion specification.

The following three sub-sections briefly describe the role of each of the boxes from above in the SPARQLMotion language.

Relationship with SPIN

SPARQLMotion is based on infrastructure provided by the SPARQL Inferencing Notation (SPIN). Knowledge of SPIN is helpful but not required to understand SPARQLMotion. SPARQLMotion uses the following SPIN constructs:

SPARQL queries and expressions embedded into SPARQLMotion scripts are stored in the SPIN RDF Syntax or as SPIN Templates.

SPARQLMotion modules are subclasses of SPIN modules metaclasses, and SPIN functions can also be used as SPARQLMotion modules.

SPARQLMotion modules define their properties as spin:constraints using the SPIN Templates spl:Argument and spl:Attribute.

SPARQLMotion Core Vocabulary

The SPARQLMotion Core Vocabulary is an RDF Schema defining classes and properties for representing SPARQLMotion scripts. Among others, this core vocabulary defines the properties for linking SPARQLMotion modules. SPARQLMotion execution engines are hard-coded against this vocabulary only, and need to implement the instructions on how to evaluate scripts, to pass values between the modules, etc.

The core vocabulary does not define any specific pieces of executable SPARQLMotion functionality - this is left to the SPARQLMotion libraries.

SPARQLMotion Libraries

The SPARQLMotion Core Vocabulary is the only "hard-coded" aspect of SPARQLMotion. Anyone can define their specific kinds of SPARQLMotion modules (in RDF) and plug their implementations into the execution engine. SPARQLMotion defines a Standard Library of such module types to provide a useful starting point for common use cases. Tools such as TopBraid provide additional modules that go beyond the standard library.

SPARQLMotion is part of the SPIN Technology Stack that also includes SPIN and SWP (aka UISPIN).

Note: The best way to learn SPARQLMotion is to start with examples and the tutorials provided by TopQuadrant's page.