@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fnml: <http://semweb.mmlab.be/ns/fnml#> .
@prefix fno: <https://w3id.org/function/ontology#> .
@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rml: <http://semweb.mmlab.be/ns/rml#> .
@prefix ql: <http://semweb.mmlab.be/ns/ql#> .
@prefix : <http://mapping.example.com/> .
@prefix ex: <http://example.org/> .
@prefix rmlt: <http://semweb.mmlab.be/ns/rml-target#> .
@prefix formats: <http://www.w3.org/ns/formats/> .
@prefix ldes: <https://w3id.org/ldes#> .
@prefix tree: <https://w3id.org/tree#> .

:source_000 rdf:type rml:LogicalSource ;
	rdfs:label "data-source" ;
	rml:source "../readings.csv" ;
	rml:referenceFormulation ql:CSV .

:target_000 rdf:type rmlt:LogicalTarget, rmlt:EventStreamTarget ;
	rdfs:label "target-ldes" ;
	rmlt:serialization formats:Turtle ;
	rmlt:target :void_000 ;
	rmlt:ldesBaseIRI ex:ldes ;
	rmlt:ldes :eventStream_000 .

:void_000 rdf:type void:Dataset ;
	void:dataDump <file://output.ttl> .

:eventStream_000 ldes:timestampPath ex:ts .

:map_temperature-reading-create_000 rml:logicalSource :source_000 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "temperature-reading-create" ;
	rr:subjectMap :s_000 ;
	rr:predicateObjectMap :pom_001, :pom_002, :pom_003 .

:s_000 rdf:type rr:SubjectMap, fnml:FunctionTermMap ;
	rr:termType rr:IRI ;
	fnml:functionValue :fn_000 ;
	rml:logicalTarget :target_000 .

:fn_000 rml:logicalSource :source_000 ;
	rr:predicateObjectMap :pomexec_000, :pom_000 .

:pomexec_000 rr:predicateMap :pmexec_000 ;
	rr:objectMap :omexec_000 .

:pmexec_000 rr:constant fno:executes .

:omexec_000 rr:constant "https://w3id.org/imec/idlab/function#implicitCreate" ;
	rr:termType rr:IRI .

:pom_000 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_000 ;
	rr:objectMap :om_000 .

:pm_000 rdf:type rr:PredicateMap ;
	rr:constant <https://w3id.org/imec/idlab/function#iri> .

:om_000 rdf:type rr:ObjectMap ;
	rr:template "http://example.org/{SensorID}" ;
	rr:termType rr:IRI .

:pom_001 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_001 ;
	rr:objectMap :om_001 .

:pm_001 rdf:type rr:PredicateMap ;
	rr:constant rdf:type .

:om_001 rdf:type rr:ObjectMap ;
	rr:constant ex:Thermometer ;
	rr:termType rr:IRI .

:pom_002 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_002 ;
	rr:objectMap :om_002 .

:pm_002 rdf:type rr:PredicateMap ;
	rr:constant ex:temp .

:om_002 rdf:type rr:ObjectMap ;
	rml:reference "Temperature" ;
	rr:termType rr:Literal .

:pom_003 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_003 ;
	rr:objectMap :om_003 .

:pm_003 rdf:type rr:PredicateMap ;
	rr:constant ex:ts .

:om_003 rdf:type rr:ObjectMap ;
	rml:reference "Timestamp" ;
	rr:termType rr:Literal ;
	rr:datatype <http://www.w3.org/2001/XMLSchema#dateTime> .

:map_temperature-reading-update_000 rml:logicalSource :source_000 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "temperature-reading-update" ;
	rr:subjectMap :s_001 ;
	rr:predicateObjectMap :pom_006, :pom_007, :pom_008 .

:s_001 rdf:type rr:SubjectMap, fnml:FunctionTermMap ;
	rr:termType rr:IRI ;
	fnml:functionValue :fn_001 ;
	rml:logicalTarget :target_000 .

:fn_001 rml:logicalSource :source_000 ;
	rr:predicateObjectMap :pomexec_001, :pom_004, :pom_005 .

:pomexec_001 rr:predicateMap :pmexec_001 ;
	rr:objectMap :omexec_001 .

:pmexec_001 rr:constant fno:executes .

:omexec_001 rr:constant "https://w3id.org/imec/idlab/function#implicitUpdate" ;
	rr:termType rr:IRI .

:pom_004 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_004 ;
	rr:objectMap :om_004 .

:pm_004 rdf:type rr:PredicateMap ;
	rr:constant <https://w3id.org/imec/idlab/function#iri> .

:om_004 rdf:type rr:ObjectMap ;
	rr:template "http://example.org/{SensorID}" ;
	rr:termType rr:IRI .

:pom_005 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_005 ;
	rr:objectMap :om_005 .

:pm_005 rdf:type rr:PredicateMap ;
	rr:constant <https://w3id.org/imec/idlab/function#watchedProperty> .

:om_005 rdf:type rr:ObjectMap ;
	rr:template "SensorID={SensorID}&Timestamp={Timestamp}&Temperature={Temperature}" ;
	rr:termType rr:Literal .

:pom_006 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_006 ;
	rr:objectMap :om_006 .

:pm_006 rdf:type rr:PredicateMap ;
	rr:constant rdf:type .

:om_006 rdf:type rr:ObjectMap ;
	rr:constant ex:Thermometer ;
	rr:termType rr:IRI .

:pom_007 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_007 ;
	rr:objectMap :om_007 .

:pm_007 rdf:type rr:PredicateMap ;
	rr:constant ex:temp .

:om_007 rdf:type rr:ObjectMap ;
	rml:reference "Temperature" ;
	rr:termType rr:Literal .

:pom_008 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_008 ;
	rr:objectMap :om_008 .

:pm_008 rdf:type rr:PredicateMap ;
	rr:constant ex:ts .

:om_008 rdf:type rr:ObjectMap ;
	rml:reference "Timestamp" ;
	rr:termType rr:Literal ;
	rr:datatype <http://www.w3.org/2001/XMLSchema#dateTime> .

