Skip to content

Should Parameter Maps refer to the fno:Parameter IRI or its fno:predicate? #83

Description

@jduchateau

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 .

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions