@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.com/> .
@prefix as: <https://www.w3.org/ns/activitystreams#> .
@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 "sensors" ;
	rml:source "base.json" ;
	rml:iterator "$.sensors[*]" ;
	rml:referenceFormulation ql:JSONPath .

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

:void_000 rdf:type void:Dataset ;
	void:dataDump <file://output-base.nq> .

:eventStream_000 ldes:timestampPath dc:created ;
	ldes:versionOfPath dc:isVersionOf .

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

:s_000 rdf:type rr:SubjectMap, fnml:FunctionTermMap ;
	rr:termType rr:IRI ;
	fnml:functionValue :fn_000 ;
	rr:graphMap :gm_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.com/sensor/{sensor}" ;
	rr:termType rr:IRI .

:gm_000 rdf:type rr:GraphMap ;
	rr:constant "http://example.com/create" .

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

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

:om_001 rdf:type rr:ObjectMap ;
	rml:reference "pressure" ;
	rr:termType rr:Literal .

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

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

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

:map_sensor-reading-update_000 rml:logicalSource :source_000 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "sensor-reading-update" ;
	rr:subjectMap :s_001 ;
	rr:predicateObjectMap :pom_005, :pom_006 .

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

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

: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_003 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_003 ;
	rr:objectMap :om_003 .

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

:om_003 rdf:type rr:ObjectMap ;
	rr:template "http://example.com/sensor/{sensor}" ;
	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#watchedProperty> .

:om_004 rdf:type rr:ObjectMap ;
	rr:template "temperature={temperature}" ;
	rr:termType rr:Literal .

:gm_001 rdf:type rr:GraphMap ;
	rr:constant "http://example.com/update" .

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

:pm_005 rdf:type rr:PredicateMap ;
	rr:constant ex:pressure .

:om_005 rdf:type rr:ObjectMap ;
	rml:reference "pressure" ;
	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 ex:temperature .

:om_006 rdf:type rr:ObjectMap ;
	rml:reference "temperature" ;
	rr:termType rr:Literal .

:map_sensor-reading-delete_000 rml:logicalSource :source_000 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "sensor-reading-delete" ;
	rr:subjectMap :s_002 ;
	rr:predicateObjectMap :pom_008 .

:s_002 rdf:type rr:SubjectMap, fnml:FunctionTermMap ;
	rr:termType rr:IRI ;
	fnml:functionValue :fn_002 ;
	rr:graphMap :gm_002 ;
	rml:logicalTarget :target_000 .

:fn_002 rml:logicalSource :source_000 ;
	rr:predicateObjectMap :pomexec_002, :pom_007 .

:pomexec_002 rr:predicateMap :pmexec_002 ;
	rr:objectMap :omexec_002 .

:pmexec_002 rr:constant fno:executes .

:omexec_002 rr:constant "https://w3id.org/imec/idlab/function#implicitDelete" ;
	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 <https://w3id.org/imec/idlab/function#iri> .

:om_007 rdf:type rr:ObjectMap ;
	rr:template "http://example.com/sensor/{sensor}" ;
	rr:termType rr:IRI .

:gm_002 rdf:type rr:GraphMap ;
	rr:constant "http://example.com/delete" .

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

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

:om_008 rdf:type rr:ObjectMap ;
	rr:constant "deleted" ;
	rr:termType rr:Literal .

:graph-create rdf:type rr:TriplesMap ;
	rdfs:label "graph-create" ;
	rr:subjectMap :s_003 ;
	rr:predicateObjectMap :pom_009, :pom_010 .

:s_003 rdf:type rr:SubjectMap ;
	rr:constant "http://example.com/create" .

:pom_009 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_009 ;
	rr:objectMap :om_009 .

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

:om_009 rdf:type rr:ObjectMap ;
	rr:constant as:Create ;
	rr:termType rr:IRI .

:pom_010 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_010 ;
	rr:objectMap :om_010 .

:pm_010 rdf:type rr:PredicateMap ;
	rr:constant as:actor .

:om_010 rdf:type rr:ObjectMap ;
	rr:constant ex:dataset ;
	rr:termType rr:IRI .

:graph-update rdf:type rr:TriplesMap ;
	rdfs:label "graph-update" ;
	rr:subjectMap :s_004 ;
	rr:predicateObjectMap :pom_011, :pom_012 .

:s_004 rdf:type rr:SubjectMap ;
	rr:constant "http://example.com/update" .

:pom_011 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_011 ;
	rr:objectMap :om_011 .

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

:om_011 rdf:type rr:ObjectMap ;
	rr:constant as:Update ;
	rr:termType rr:IRI .

:pom_012 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_012 ;
	rr:objectMap :om_012 .

:pm_012 rdf:type rr:PredicateMap ;
	rr:constant as:actor .

:om_012 rdf:type rr:ObjectMap ;
	rr:constant ex:dataset ;
	rr:termType rr:IRI .

:graph-delete rdf:type rr:TriplesMap ;
	rdfs:label "graph-delete" ;
	rr:subjectMap :s_005 ;
	rr:predicateObjectMap :pom_013, :pom_014 .

:s_005 rdf:type rr:SubjectMap ;
	rr:constant "http://example.com/delete" .

:pom_013 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_013 ;
	rr:objectMap :om_013 .

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

:om_013 rdf:type rr:ObjectMap ;
	rr:constant as:Delete ;
	rr:termType rr:IRI .

:pom_014 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_014 ;
	rr:objectMap :om_014 .

:pm_014 rdf:type rr:PredicateMap ;
	rr:constant as:actor .

:om_014 rdf:type rr:ObjectMap ;
	rr:constant ex:dataset ;
	rr:termType rr:IRI .

