@prefix rdfc: <https://w3id.org/rdf-connect#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@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/>.

rdfc:GlobRead a owl:Class, rdfs:Class;
  dc:title "GlobRead";
  dc:description "Reads all files according to the Glob pattern";
  rdfc:jsImplementationOf rdfc:Processor;
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "GlobRead";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:GlobRead;
  sh:property [
    sh:path rdfc:glob;
    sh:name "globPattern";
    sh:datatype xsd:string;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:output;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:wait;
    sh:name "wait";
    sh:datatype xsd:integer;
    sh:maxCount 1;
  ], [
    sh:path rdfc:closeOnEnd;
    sh:name "closeOnEnd";
    sh:datatype xsd:boolean;
    sh:maxCount 1;
  ], [
    sh:path rdfc:binary;
    sh:name "binary";
    sh:datatype xsd:boolean;
    sh:maxCount 1;
  ].

rdfc:FolderRead a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "Folder Read";
  dc:description "Reads all files inside the folder";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "ReadFolder";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:FolderRead;
  sh:property [
    sh:path rdfc:folder_location;
    sh:name "folder";
    sh:datatype xsd:string;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:file_stream;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:max_memory;
    sh:name "maxMemory";
    sh:datatype xsd:double;
    sh:maxCount 1;
  ], [
    sh:path rdfc:pause;
    sh:name "pause";
    sh:datatype xsd:integer;
    sh:maxCount 1;
  ].

rdfc:Substitute a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "String substitute processor";
  dc:description "Simple string manipulation processor. Transform a stream by applying the string substitution on the messages. The matching string can be a regex.";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "Substitute";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:Substitute;
  sh:property [
    sh:path rdfc:input;
    sh:name "reader";
    sh:class rdfc:Reader;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:output;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:source;
    sh:name "source";
    sh:datatype xsd:string;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:replace;
    sh:name "replace";
    sh:datatype xsd:string;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:regexp;
    sh:name "regexp";
    sh:datatype xsd:boolean;
    sh:maxCount 1;
  ].

rdfc:Envsub a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "Environment substitute processor";
  dc:description "Substitutes all declared environment variables to their respective values.";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "Envsub";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:Envsub;
  sh:property [
    sh:path rdfc:input;
    sh:name "reader";
    sh:class rdfc:Reader;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:output;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ].

rdfc:ReadFile a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "On demand file reader processor";
  dc:description "Reads a requested file on demand.";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "GetFileFromFolder";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:ReadFile;
  sh:property [
    sh:path rdfc:input;
    sh:name "reader";
    sh:class rdfc:Reader;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:folderPath;
    sh:name "folderPath";
    sh:datatype xsd:string;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:output;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ].

rdfc:UnzipFile a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "Unzip processor";
  dc:description "Processor to unzip a compressed file and stream out its content.";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "UnzipFile";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:UnzipFile;
  sh:property [
    sh:path rdfc:input;
    sh:name "reader";
    sh:class rdfc:Reader;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:output;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ].

rdfc:GunzipFile a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "Gunzip processor";
  dc:description "Processor to gunzip a compressed file and stream out its content.";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "GunzipFile";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:GunzipFile;
  sh:property [
    sh:path rdfc:input;
    sh:name "reader";
    sh:class rdfc:Reader;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:output;
    sh:name "writer";
    sh:class rdfc:Writer;
    sh:maxCount 1;
    sh:minCount 1;
  ].

rdfc:FileWriter a owl:Class, rdfs:Class;
  rdfc:jsImplementationOf rdfc:Processor;
  dc:title "JavaScript file writer processor";
  dc:description "Writes incoming data to a file.";
  rdfc:file <./lib/FileUtils.js>;
  rdfc:class "FileWriter";
  rdfc:entrypoint <./>.

[ ] a sh:NodeShape;
  sh:targetClass rdfc:FileWriter;
  sh:property [
    sh:path rdfc:filePath;
    sh:name "filePath";
    sh:datatype xsd:string;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:input;
    sh:name "input";
    sh:class rdfc:Reader;
    sh:maxCount 1;
    sh:minCount 1;
  ], [
    sh:path rdfc:readAsStream;
    sh:name "readAsStream";
    sh:datatype xsd:boolean;
    sh:maxCount 1;
  ], [
    sh:path rdfc:binary;
    sh:name "binary";
    sh:datatype xsd:boolean;
    sh:maxCount 1;
  ].