2.2.0 Core ontology of SPARQLMotion: a declarative scripting language for Semantic Web technology. This ontology defines the basic building blocks of SPARQLMotion scripts. Scripts consist of modules, which are instances of (some subclass of) sm:Module. Modules can be chained together using sm:next and the sm:child properties. Module The metaclass of SPARQLMotion modules. SPARQLMotion modules are SPIN Modules that can perform some arbitrary data processing task. The instances of this metaclass define the input properties that are used to control the behavior. In order to declare a property, the following two SPIN templates must be used (attached to the class via spin:constraint): - spl:Argument: this is the most common case for single-valued properties that are configured by the user. In addition to concrete RDF nodes, spl:Arguments can also point to a SPARQL SELECT query (sp:Select), a SPIN Template call, or a SPARQL expression. In those cases, the value of the property will be computed dynamically at execution time. The nested SPARQL expressions can access any pre-bound input variable. - spl:Attribute: this should be used for any other value, such as SPARQL queries that drive the behavior of the module. No inline queries are supported for spl:Attributes. Function A SPIN Function backed by a SPARQLMotion script. When the function is called, the body script will be executed. Can also be called as web service using a SM servlet container such as the TopBraid Live. There are two ways of defining the body script: - sm:bodyScript for linear scripts (and XML Syntax) - sm:returnModule for any other style (and graphical notation) A value type such as XML or JSON. value type Modules The abstract base class for the various types of SPARQLMotion data processing modules. true body script Links a SPARQLMotion Function with the beginning of the linear SM script that shall be executed when the function is called. icon Can link a sm:Module subclass with an image URL so that the module can be displayed in visual editors. Images should be 48x48 pixels and in PNG, GIF or JPG format. next Links a source module (subject) with a target module (object), describing a chain of execution and evaluation. Links a parent module with a child module that marks the start of a nested sub-script. This property is not meant to be used directly, but its primary function is to serve as superproperty of sm:body, sm:if and sm:else. child outputVariable The name of the declared output variable of a module. This is typically used by modules to enable script users to bind the output of a module with matching variables in the target module. node x The x coordinate of a module on a diagram. body Links an iterator modules with its body, i.e. the start of a module chain that is executed as part of the loop. Links a branching module with its "true" branch, i.e. the branch that shall be executed if the condition is true. if Can be attached to user-defined SPARQLMotion functions to define the return module of the function's SPARQLMotion script. The result of the function will depend on the selected return module type. return module else Links a branching module with its "false" branch, i.e. the branch that shall be executed if the condition is false. The y coordinate of a module on a diagram. node y XML predicate source Can be used to link a resource to the SPARQLMotion script that generated it. For example, if a file has been automatically generated by a SPARQLMotion script then the owl:Ontology in the resulting file should point back to the script, so that others can re-run the generation if the input data has changed. type JSON An abstract superclass grouping together SPARQLMotion Functions. The name of the result variable. In SPARQLMotion, a result variable must be specified, but we leave the minCount constraint on 0 to remove clutter in constraint checking. 1 result 0 Functions true restriction defaultValue