Should a Parameter Map refer to the IRI of the fno:Parameter instance itself, or to its associated fno:predicate?
The test cases currently do not agree on this. For grel functions, the parameter maps mainly (and probably always) refer to the parameter instance definition. However, for idlab-fn functions, they refer to the fno:predicate. This creates ambiguouity not knowing if RML Processor need to support one or the other or both as synonyms.
The spec briefly states:
A Parameter Map: a Term Map that MUST generate a named node. That named node specifies the referenced Parameter.
And "Parameter" links to:
A Parameter: an input parameter of a Function.
Example
In test case 2, it refers to the parameter definition grel:valueParam, not its predicate grel:valueParameter:
rml:function grel:toUpperCase ;
rml:input
[
rml:parameter grel:valueParam ;
rml:inputValueMap [
rml:reference "Name" ;
]
] .
grel:toUpperCase
a fno:Function ;
fno:name "to Uppercase" ;
rdfs:label "to Uppercase" ;
dcterms:description "Returns the input with all letters in upper case." ;
fno:solves grel:prob_ucase ;
fno:expects ( grel:valueParam ) ;
fno:returns ( grel:stringOut ) .
grel:valueParam
a fno:Parameter ;
fno:name "input value" ;
rdfs:label "input value" ;
fno:predicate grel:valueParameter ;
fno:type xsd:string ;
fno:required "true"^^xsd:boolean .
However, in test case 3, it refers to the predicate idlab-fn:str, rather than the parameter definition idlab-fn:_str:
rml:function idlab-fn:toUpperCaseURL ;
rml:input
[
rml:parameter idlab-fn:str ;
rml:inputValueMap [
rml:reference "url"
];
] .
idlab-fn:toUpperCaseURL
a fno:Function ;
fno:name "toUpperCaseURL" ;
rdfs:label "toUpperCaseURL" ;
dcterms:description "Returns an uppercase, valid url." ;
fno:expects ( idlab-fn:_str ) ;
fno:returns ( idlab-fn:_stringOut ) .
idlab-fn:_str
a fno:Parameter ;
fno:name "input string" ;
rdfs:label "input string" ;
fno:type xsd:string ;
fno:predicate idlab-fn:str .
Should a Parameter Map refer to the IRI of the
fno:Parameterinstance itself, or to its associatedfno:predicate?The test cases currently do not agree on this. For
grelfunctions, the parameter maps mainly (and probably always) refer to the parameter instance definition. However, foridlab-fnfunctions, they refer to thefno:predicate. This creates ambiguouity not knowing if RML Processor need to support one or the other or both as synonyms.The spec briefly states:
And "Parameter" links to:
Example
In test case 2, it refers to the parameter definition
grel:valueParam, not its predicategrel:valueParameter:rml:function grel:toUpperCase ; rml:input [ rml:parameter grel:valueParam ; rml:inputValueMap [ rml:reference "Name" ; ] ] . grel:toUpperCase a fno:Function ; fno:name "to Uppercase" ; rdfs:label "to Uppercase" ; dcterms:description "Returns the input with all letters in upper case." ; fno:solves grel:prob_ucase ; fno:expects ( grel:valueParam ) ; fno:returns ( grel:stringOut ) . grel:valueParam a fno:Parameter ; fno:name "input value" ; rdfs:label "input value" ; fno:predicate grel:valueParameter ; fno:type xsd:string ; fno:required "true"^^xsd:boolean .However, in test case 3, it refers to the predicate
idlab-fn:str, rather than the parameter definitionidlab-fn:_str:rml:function idlab-fn:toUpperCaseURL ; rml:input [ rml:parameter idlab-fn:str ; rml:inputValueMap [ rml:reference "url" ]; ] . idlab-fn:toUpperCaseURL a fno:Function ; fno:name "toUpperCaseURL" ; rdfs:label "toUpperCaseURL" ; dcterms:description "Returns an uppercase, valid url." ; fno:expects ( idlab-fn:_str ) ; fno:returns ( idlab-fn:_stringOut ) . idlab-fn:_str a fno:Parameter ; fno:name "input string" ; rdfs:label "input string" ; fno:type xsd:string ; fno:predicate idlab-fn:str .