LarKC Workflow Description Language

The intention of this page is to serve as an entry point for discussions regarding the workflow description language used by the LarKC platform.

Workflow Description Language

There are still some questions which have to be discussed. Please add them here as needed.

Generally, we are utilizing blank nodes for instances of plugins. So triples like the following are used (the second example uses the abbreviation a for rdf:type):

_:p1

rdf:type

urn:eu.larkc.plugin.transform.?TestTransformer

_:p1

a

urn:eu.larkc.plugin.identify.?TestIdentifier

The following table lists predicates which may be used in a workflow description.

Note: This list is by no means complete or final. The work on the workflow description language is still ongoing so the used predicates may change frequently.

Predicate

Domain

Range

Meaning

larkc:pluginConnectsTo

Plugin instance

Plugin instance

connects two plugins

rdf:type

Plugin instance

Plugin type (plugin registry)

defines the type of a plugin

rdf:type

Endpoint instance

Endpoint type (mapping)

defines the type of an endpoint

larkc:sparqlQuery

Plugin instance

?SparqlQuery

connects a SPARQL query to a specific plugin

larkc:links

Endpoint instance

Path

specifies to which path an endpoint is connected

larkc:hasInput

Path

Plugin instance

Defines the plugins where the query is given to when the specific path is called

larkc:hasOutput

Path

Plugin instance

Defines the plugins where the results can be retrieved when the specific path is called

larkc:hasParameters

Plugin instance

Parameter set

connects a plugin to its parameters (the parameters set is likey a blank node that becomes the subject of parameter statements)

larkc:hasInputBehaviour

Parameter set

enum (one, n, all)

defines for how many inputs the plugin instance is awaiting until it proceeds

larkc:hasOutputBehaviour

Parameter set

enum (one, n, all)

not yet used

larkc:runsOn

Parameter set

URN where the plugin should be executed

defines where the plugin should be executed

larkc:isInputSplittable

Parameter set

boolean value

defines if multiple instances of the plugin can run with subsets of the input

larkc:query

Parameter set

Query

connects a query to a specific plugin

Example workflow in N3 format

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix larkc: <http://larkc.eu/schema#> .

# Define four plug-ins
_:plugin1 a <urn:eu.larkc.plugin.identify.TestIdentifier> .
_:plugin2 a <urn:eu.larkc.plugin.identify.TestIdentifier> .
_:plugin3 a <urn:eu.larkc.plugin.transform.TestTransformer> .
_:plugin4 a <urn:eu.larkc.plugin.decider.TestDecider> .
_:plugin5 a <urn:eu.larkc.plugin.decider.TestDecider> .

# Connect the plug-ins
_:plugin1 larkc:connectsTo _:plugin3 .
_:plugin2 larkc:connectsTo _:plugin3 .
_:plugin3 larkc:connectsTo _:plugin4 .
_:plugin3 larkc:connectsTo _:plugin5 .

# Define the plug-in parameter
_:plugin3 larkc:hasParameter _:pp1 .
_:pp1 larkc:hasInputBehaviour "1" .

# Define a path to set the input and output of the workflow
_:path1 a larkc:Path .
_:path1 larkc:hasInput _:plugin1 .
_:path1 larkc:hasOutput _:plugin4 .

# Define a path to set the input and output of the workflow
_:path2 a larkc:Path .
_:path2 larkc:hasInput _:plugin2 .
_:path2 larkc:hasOutput _:plugin5 .

# Connect an endpoint to the path
<urn:eu.larkc.endpoint.sparql.ep1> a <urn:eu.larkc.endpoint.sparql> .
<urn:eu.larkc.endpoint.sparql.ep1> larkc:links _:path1 .

# Connect an endpoint to the path
<urn:eu.larkc.endpoint.sparql.ep2> a <urn:eu.larkc.endpoint.sparql> .
<urn:eu.larkc.endpoint.sparql.ep2> larkc:links _:path2 .

LarkcProject/WP5/WorkflowDescriptionLanguage (last edited 2011-04-06 09:07:57 by ?NorbertLanzanasto)