Typescript/Javascript executor for an RDF-Connect pipeline. Starting from a declarative RDF file describing the pipeline.
Each js process must have js:file
, js:function
and js:mapping
objects.
js:file
points to the location of the main javascript file, containing the function.js:location
points to the starting location forjs:file
relative from the current file.js:function
points to the function name in the file.js:mapping
is afno:Mapping
object that links properties to function arguments.
When you declare a new js process, it is required to add a SHACL shape.
Each sh:property
is accounted for, noting the type sh:class
or sh:datatype
.
Example definitions are available in processor/configs/*.ttl
.
In a js pipeline you can use all declared js processes, as defined in their SHACL shapes.
An example can be found in input.ttl
, here a js:Send
process and a js:Resc
process are defined.
js:Send
takes in a message to send, and a channel to send it to.
js:Resc
only takes a channel to read from.
(implementation can be found in procossor/test.js
)
Note: currently Websockets are configured, but changing the configuration to use the JsReaderChannel and JsWriterChannel will work too, even without a serialization step.
You can execute this pipeline with
tsc
npx bin/js-runner.js input.ttl
This example input configuration file uses owl:imports
to specify additional configuration files.