When using rml:template to construct an expression value without a corresponding rml:termType, the triples in question are missing from the output, except when they result in a well-formed HTTP URI. According to the RML spec however, any resulting string (not NULL) needs to be mapped to its canonical RDF/XSD form.
Minimal example:
:mapping a rml:TriplesMap ;
rml:logicalSource [
# JSONPath root iterator over { "key": "value" }
] ;
rml:subjectMap [ rml:termType rml:BlankNode ] ;
rml:predicateObjectMap [
rml:predicate <urn:example:typeless> ;
rml:objectMap [ rml:template "key" ] ;
], [
rml:predicate <urn:example:typed> ;
rml:objectMap [
rml:termType rml:Literal ;
rml:template "key"
] ;
] .
Output:
_:Blank1 <urn:example:typed> "key" .
When using
rml:templateto construct an expression value without a correspondingrml:termType, the triples in question are missing from the output, except when they result in a well-formed HTTP URI. According to the RML spec however, any resulting string (not NULL) needs to be mapped to its canonical RDF/XSD form.Minimal example:
Output: