Closed pmaria closed 2 months ago
Currently the results of expressions are defined as sets.
With additions of rml-cc and rml-lv, and most probably rml-fnml as well, this leads to limitations.
For example, it would not be possible to create a list
( "1" "1" "1" )
from input data
[ { "values": [ "1", "1", "1" ] } ]
with a mapping like
<#TM> a rml:TriplesMap; rml:logicalSource [ ... ] ; rml:subjectMap [ rml:template "e/{$.id}" ; ] ; rml:predicateObjectMap [ rml:predicate ex:with ; rml:objectMap [ rml:gather ( [ rml:reference "$.values[*]" ; ] ) ; rml:gatherAs rdf:List ; ] ; ] ; .
because the result set of rml:reference "$.values[*]" will be ["1"].
rml:reference "$.values[*]"
["1"]
Proposal
Change the result of the expressions to be of type array or list.
Currently the results of expressions are defined as sets.
With additions of rml-cc and rml-lv, and most probably rml-fnml as well, this leads to limitations.
For example, it would not be possible to create a list
from input data
with a mapping like
because the result set of
rml:reference "$.values[*]"
will be["1"]
.Proposal
Change the result of the expressions to be of type array or list.