Skip to content

Very different behavior on iterators compared to RMLViewer + RMLMapper #6

Description

@termontwouter

Following up on #3, but using LogicalViews, there's a big gap between what MappingWeaver allows to access array values, versus what RMLViewer + RMLMapper allow.

Given the following scaffolding:

:view a rml:LogicalView ;
  rml:viewOn [
    # JSONPath root iterator over { "key": [ "1", "2" ] }
  ] ;
  rml:field [
    rml:fieldName "key"
    # insert field definition from list below
  ] .

:mapping a rml:TriplesMap ;
  rml:logicalSource :view ;
  rml:subjectMap [ rml:termType rml:BlankNode ] ;
  rml:predicateObjectMap [
    rml:predicate <urn:example:hasValue> ;
    rml:objectMap [ 
      # insert corresponding reference from field definitions below
    ]
  ] .

A. With direct reference rml:reference "key" in the mapping:

  • rml:reference "key[*]" in the view's field works
  • rml:reference "$.key[*]" in the view's field works
  • rml:reference "key" in the view's field fails in MappingWeaver
  • rml:reference "$.key" in the view's field fails in MappingWeaver
  • rml:iterator "$.key[*]" (without nested field) fails in MappingWeaver and RMLViewer+RMLMapper

B. With nested reference rml:reference "key.value" in the mapping:

  1. Using rml:iterator "$.key[*]" ; rml:field [ rml:fieldName "value" ; ... ] in the view:
  • rml:reference "@" in the nested field works (and MappingWeaver adds canonical type)
  • rml:reference "[*]" in the nested field fails in MappingWeaver
  • rml:reference "$" in the nested field fails in MappingWeaver
  1. Using rml:iterator "key[*]" [ rml:fieldName "value" ; ... ] in the view, all of the references above (@, [*], $) fail in MappingWeaver

  2. Using rml:iterator "$.key" [ rml:fieldName "value" ; ... ], in the view, all of the references above fail in MappingWeaver

  3. Using rml:iterator "key" [ rml:fieldName "value" ; ... ], in the view, all of the references above fail in MappingWeaver

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions