@prefix js: <https://w3id.org/conn/js#>.
@prefix fno: <https://w3id.org/function/ontology#>.
@prefix fnom: <https://w3id.org/function/vocabulary/mapping#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix : <https://w3id.org/conn#>.
@prefix sh: <http://www.w3.org/ns/shacl#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix dc: <http://purl.org/dc/terms/>.

js:Sdsify a js:JsProcess;
  dc:title "Sdsify processor";
  dc:description "Ingest non sds members and wrap them inside SDS records. Optionally, a type can be specified to indicate the correct subject.";
  js:file <../lib/sdsify.js>;
  js:function "sdsify";
  js:location <../>;
  js:mapping [
    a fno:Mapping;
    fno:parameterMapping [
      a fnom:PositionParameterMapping;
      fnom:functionParameter "Data input channel";
      fnom:implementationParameterPosition "0"^^xsd:int;
    ], [
      a fnom:PositionParameterMapping;
      fnom:functionParameter "Data output channel";
      fnom:implementationParameterPosition "1"^^xsd:int;
    ], [
      a fnom:PositionParameterMapping;
      fnom:functionParameter "Target stream";
      fnom:implementationParameterPosition "2"^^xsd:int;
    ], [
      a fnom:PositionParameterMapping;
      fnom:functionParameter "Timestamp path";
      fnom:implementationParameterPosition "3"^^xsd:int;
    ], [
      a fnom:PositionParameterMapping;
      fnom:functionParameter "Shape filters";
      fnom:implementationParameterPosition "4"^^xsd:int;
    ];
  ].

[ ] a sh:NodeShape;
  sh:targetClass js:Sdsify;
  sh:property [
    sh:class :ReaderChannel;
    sh:path js:input;
    sh:name "Data input channel";
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:class :WriterChannel;
    sh:path js:output;
    sh:name "Data output channel";
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:datatype xsd:iri;
    sh:path js:stream;
    sh:name "Target stream";
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:datatype xsd:iri;
    sh:path js:timestampPath;
    sh:name "Timestamp path";
    sh:minCount 0;
    sh:maxCount 1;
  ], [
    sh:datatype xsd:string;
    sh:path js:shapeFilter;
    sh:name "Shape filters";
    sh:minCount 0;
  ].

