Working with RML mapping's split function

200 Views Asked by At

I am trying to create a mapping in which I split the full name into a first name and last name using fno in rml. My code is like

<#FunctionSplitName>
    fnml:functionValue [
                           rml:logicalSource <#LogicalSource>;
                           rr:predicateObjectMap [
                                                 rr:predicate fno:executes;
                                                 rr:objectMap [
                                                                  rr:constant grel:string_split
                                                              ];
                                             ];
                           rr:predicateObjectMap [
                                                 rr:predicate grel:valueParameter;
                                                 rr:objectMap [
                                                                  rml:reference "metadata__customer_name"
                                                              ];
                                             ];
                           rr:predicateObjectMap [
                                                 rr:predicate grel:p_string_sep;
                                                 rr:objectMap [
                                                                  rr:constant " ";
                                                              ];
                                             ];
                       ].

<#FunctionGetName>

    fnml:functionValue [
                           rr:predicateObjectMap [
                                                     rr:predicate fno:executes ;
                                                     rr:objectMap [ rr:constant grel:array_get ]
                                                 ] ;
                           rr:predicateObjectMap [
                                                     rr:predicate grel:p_array_a ;
                                                     rr:objectMap <#FunctionSplitName>
                                                 ] ;
                           rr:predicateObjectMap [
                                                     rr:predicate grel:param_int_i_from ;
                                                     rr:objectMap [
                                                                      rr:constant 0 ;
                                                                      rr:datatype xsd:integer ;
                                                                  ]
                                                 ];
                           rr:predicateObjectMap [
                                                     rr:predicate grel:param_int_i_opt_to ;
                                                     rr:objectMap [
                                                                      rr:constant 1 ;
                                                                      rr:datatype xsd:integer ;
                                                                  ]
                                                 ]
                       ].

But I am getting the following error:

17:17:11.969 [main] ERROR be.ugent.rml.cli.Main               .main(389) - Declared method "get" does not exist for class "io.fno.grel.ArrayFunctions".

Can someone tell me how to get the nth element of the grel:string_split ?

0

There are 0 best solutions below