PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rml: <http://w3id.org/rml/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

rml:FunctionExecution a rdfs:Class ;
  rdfs:label "Function Execution" ;
  rdfs:comment "Represents a function execution."@en .

rml:function a rdf:Property ;
  rdfs:label "function" ;
  rdfs:comment "Specifies a data transformation function."@en ;
  rdfs:domain rml:FunctionExecution ;
  rdfs:range <https://w3id.org/linkml/Any> .

rml:input a rdf:Property ;
  rdfs:label "input" ;
  rdfs:comment "Specifies the Input element of a Function Map."@en ;
  rdfs:domain rml:FunctionExecution ;
  rdfs:range rml:Input .

rml:FunctionMap a rdfs:Class ;
  rdfs:label "Function Map" ;
  rdfs:comment "Represents a function map."@en ;
  rdfs:subClassOf rml:TermMap .

rml:ParameterMap a rdfs:Class ;
  rdfs:label "Parameter Map" ;
  rdfs:comment "Represents a parameter map."@en ;
  rdfs:subClassOf rml:TermMap .

rml:Input a rdfs:Class ;
  rdfs:label "Input" ;
  rdfs:comment "Represents a input for an execution."@en .

rml:parameter a rdf:Property ;
  rdfs:label "parameter" ;
  rdfs:comment "Specifies the parameter of a function."@en ;
  rdfs:domain rml:Input ;
  rdfs:range <https://w3id.org/linkml/Any> .

rml:inputValueMap a rdf:Property ;
  rdfs:label "value map" ;
  rdfs:comment "A Value map element to generate the value of a parameter of a function."@en ;
  rdfs:domain rml:Input ;
  rdfs:range rml:TermMap .

rml:functionMap a rdf:Property ;
  rdfs:label "function map" ;
  rdfs:comment "A Function Map element to generate the data transformation function."@en ;
  rdfs:domain rml:Input ;
  rdfs:range rml:FunctionMap .

rml:parameterMap a rdf:Property ;
  rdfs:label "parameter map" ;
  rdfs:comment "A Parameter Map element to generate the parameter of a function."@en ;
  rdfs:domain rml:Input ;
  rdfs:range rml:ParameterMap .

rml:inputValue a rdf:Property ;
  rdfs:label "value" ;
  rdfs:comment "Specifies the value of a parameter of a function."@en ;
  rdfs:domain rml:Input ;
  rdfs:range <https://w3id.org/linkml/Any> .

rml:TermMap a rdfs:Class .

rml:ReturnMap a rdfs:Class ;
  rdfs:label "Return Map" ;
  rdfs:comment "Represents a return map."@en ;
  rdfs:subClassOf rml:TermMap .

rml:ExpressionMap a rdfs:Class .

rml:returnMap a rdf:Property ;
  rdfs:label "return map" ;
  rdfs:comment "A Return Map element to generate the return output of a function."@en ;
  rdfs:domain rml:ExpressionMap ;
  rdfs:range rml:ReturnMap .

rml:return a rdf:Property ;
  rdfs:label "return" ;
  rdfs:comment "Specifies the return output of a function."@en ;
  rdfs:domain rml:ExpressionMap ;
  rdfs:range <https://w3id.org/linkml/Any> .

rml:functionExecution a rdf:Property ;
  rdfs:label "function execution" ;
  rdfs:comment "Denotes the execution of a function with its required input parameters and values."@en ;
  rdfs:domain rml:ExpressionMap ;
  rdfs:range rml:FunctionExecution .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .
