RMLio / rmlmapper-java

The RMLMapper executes RML rules to generate high quality Linked Data from multiple originally (semi-)structured data sources
http://rml.io
MIT License
147 stars 61 forks source link

Unexpected error when no template values are used in predicateobject #239

Open smessie opened 1 month ago

smessie commented 1 month ago

Pipeline: Y2R → IncRMLTransformer → RMLMapperReader

Relevant YARRRML mapping rules:

prefixes:
  sosa: "http://www.w3.org/ns/sosa/"
  gsp: "http://www.opengis.net/ont/geosparql#"
  ssn: "http://www.w3.org/ns/ssn/"
  dcterms: "http://purl.org/dc/terms/"
  xsd: "http://www.w3.org/2001/XMLSchema#"
  cdt: "https://w3id.org/cdt/"
  ex: "http://example.org/"

sources:
  buienradar:
    access: https://data.buienradar.nl/2.0/feed/json
    referenceFormulation: jsonpath
    iterator: $.actual.stationmeasurements[*]

mappings:
  observables-ground-temperature:
    sources:
      - buienradar
    s: ex:$(stationid)#GroundTemperature
    po:
      - [ a, sosa:ObservableProperty ]

Then I get the following unexpected error:

[main] ERROR b.u.k.idlabFunctions.IDLabFunctions .implicitUpdate(682) - Watched value template is a required parameter but was not provided

But when I add an extra predicate object definition to po where a template value is being used, the error disappears. Eg changing to:

    po:
      - [ a, sosa:ObservableProperty ]
      - [ sosa:isObservedBy, ex:$(stationid) ]