@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 : <https://betweenourworlds.org/generation-rule/> .
@prefix afn: <https://betweenourworlds.org/function/> .
@prefix bow: <https://betweenourworlds.org/ontology/> .
@prefix dbo: <http://dbpedia.org/ontology/> .

:source_000 rdf:type rml:LogicalSource ;
	rdfs:label "anime_source" ;
	rml:source "anime-0.json" ;
	rml:iterator "$.data[*]" ;
	rml:referenceFormulation ql:JSONPath .

:source_001 rdf:type rml:LogicalSource ;
	rdfs:label "stream_source" ;
	rml:source "anime-streams-0.json" ;
	rml:iterator "$.[*]" ;
	rml:referenceFormulation ql:JSONPath .

:source_002 rdf:type rml:LogicalSource ;
	rdfs:label "episode_source" ;
	rml:source "anime-episodes-0.json" ;
	rml:iterator "$.[*]" ;
	rml:referenceFormulation ql:JSONPath .

:source_003 rdf:type rml:LogicalSource ;
	rdfs:label "season_source" ;
	rml:source "anime-seasons-0.json" ;
	rml:iterator "$.[*]" ;
	rml:referenceFormulation ql:JSONPath .

:map_anime_000 rml:logicalSource :source_000 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "anime" ;
	rr:subjectMap :s_000 ;
	rr:predicateObjectMap :pom_000, :pom_001, :pom_002, :pom_003, :pom_004, :pom_005, :pom_006, :pom_007, :pom_008, :pom_009, :pom_010, :pom_011, :pom_012, :pom_013, :pom_014, :pom_016 .

:s_000 rdf:type rr:SubjectMap ;
	rr:template "https://betweenourworlds.org/anime/{attributes.slug}" .

:pom_000 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_000 ;
	rr:objectMap :om_000, :om_001, :om_002, :om_003, :om_004 .

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

:om_000 rdf:type rr:ObjectMap ;
	rr:constant "http://dbpedia.org/ontology/Work" ;
	rr:termType rr:IRI .

:om_001 rdf:type rr:ObjectMap ;
	rr:constant "http://dbpedia.org/ontology/Cartoon" ;
	rr:termType rr:IRI .

:om_002 rdf:type rr:ObjectMap ;
	rr:constant "http://dbpedia.org/ontology/Anime" ;
	rr:termType rr:IRI .

:om_003 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/Thing" ;
	rr:termType rr:IRI .

:om_004 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/CreativeWork" ;
	rr:termType rr:IRI .

:pom_001 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_001, :pm_002, :pm_003 ;
	rr:objectMap :om_005 .

:pm_001 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/name> .

:pm_002 rdf:type rr:PredicateMap ;
	rr:constant rdfs:label .

:pm_003 rdf:type rr:PredicateMap ;
	rr:constant dbo:title .

:om_005 rdf:type rr:ObjectMap ;
	rml:reference "attributes.canonicalTitle" ;
	rr:termType rr:Literal .

:pom_002 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_004, :pm_005, :pm_006 ;
	rr:objectMap :om_006 .

:pm_004 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/name> .

:pm_005 rdf:type rr:PredicateMap ;
	rr:constant rdfs:label .

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

:om_006 rdf:type rr:ObjectMap ;
	rml:reference "attributes.titles.en" ;
	rr:termType rr:Literal ;
	rml:languageMap :language_000 .

:language_000 rr:constant "en" .

:pom_003 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_007, :pm_008, :pm_009 ;
	rr:objectMap :om_007 .

:pm_007 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/name> .

:pm_008 rdf:type rr:PredicateMap ;
	rr:constant rdfs:label .

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

:om_007 rdf:type rr:ObjectMap ;
	rml:reference "attributes.titles.en_jp" ;
	rr:termType rr:Literal ;
	rml:languageMap :language_001 .

:language_001 rr:constant "ja" .

:pom_004 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_010, :pm_011, :pm_012 ;
	rr:objectMap :om_008 .

:pm_010 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/name> .

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

:pm_012 rdf:type rr:PredicateMap ;
	rr:constant dbo:title .

:om_008 rdf:type rr:ObjectMap ;
	rml:reference "attributes.titles.ja_jp" ;
	rr:termType rr:Literal ;
	rml:languageMap :language_002 .

:language_002 rr:constant "ja" .

:pom_005 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_013, :pm_014 ;
	rr:objectMap :om_009 .

:pm_013 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/numberOfEpisodes> .

:pm_014 rdf:type rr:PredicateMap ;
	rr:constant dbo:numberOfEpisodes .

:om_009 rdf:type rr:ObjectMap ;
	rml:reference "attributes.episodeCount" ;
	rr:termType rr:Literal .

:pom_006 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_015 ;
	rr:objectMap :om_010, :om_011 .

:pm_015 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/contentRating> .

:om_010 rdf:type rr:ObjectMap ;
	rml:reference "attributes.ageRating" ;
	rr:termType rr:Literal .

:om_011 rdf:type rr:ObjectMap ;
	rml:reference "attributes.ageRatingGuide" ;
	rr:termType rr:Literal .

:pom_007 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_016 ;
	rr:objectMap :om_012 .

:pm_016 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/image> .

:om_012 rdf:type rr:ObjectMap ;
	rml:reference "attributes.coverImage.original" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/URL> .

:pom_008 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_017 ;
	rr:objectMap :om_013 .

:pm_017 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/endDate> .

:om_013 rdf:type rr:ObjectMap ;
	rml:reference "attributes.endDate" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/Date> .

:pom_009 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_018 ;
	rr:objectMap :om_014 .

:pm_018 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/startDate> .

:om_014 rdf:type rr:ObjectMap ;
	rml:reference "attributes.startDate" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/Date> .

:pom_010 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_019, :pm_020 ;
	rr:objectMap :om_015 .

:pm_019 rdf:type rr:PredicateMap ;
	rr:constant rdfs:comment .

:pm_020 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/description> .

:om_015 rdf:type rr:ObjectMap ;
	rml:reference "attributes.synopsis" ;
	rr:termType rr:Literal .

:pom_011 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_021 ;
	rr:objectMap :om_016 .

:pm_021 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/mainEntityOfPage> .

:om_016 rdf:type rr:ObjectMap ;
	rr:template "https://kitsu.io/anime/{attributes.slug}" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/URL> .

:pom_012 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_022 ;
	rr:objectMap :om_017 .

:pm_022 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/mainEntityOfPage> .

:om_017 rdf:type rr:ObjectMap ;
	rml:reference "otherWebsites" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/URL> .

:pom_013 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_023 ;
	rr:objectMap :om_018 .

:pm_023 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/mainEntityOfPage> .

:om_018 rdf:type rr:ObjectMap ;
	rml:reference "streams" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/URL> .

:pom_014 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_024 ;
	rr:objectMap :om_019 .

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

:om_019 rdf:type fnml:FunctionTermMap ;
	rr:termType rr:IRI ;
	fnml:functionValue :fn_000 .

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

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

:pmexec_000 rr:constant fno:executes .

:omexec_000 rr:constant "https://betweenourworlds.org/function/getClass" ;
	rr:termType rr:IRI .

:pom_015 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_025 ;
	rr:objectMap :om_020 .

:pm_025 rdf:type rr:PredicateMap ;
	rr:constant afn:value .

:om_020 rdf:type rr:ObjectMap ;
	rml:reference "attributes.subtype" ;
	rr:termType rr:Literal .

:pom_016 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_026 ;
	rr:objectMap :om_040 .

:pm_026 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/trailer> .

:map_trailer_000 rml:logicalSource :source_000 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "trailer" ;
	rr:subjectMap :s_001 ;
	rr:predicateObjectMap :pom_017, :pom_018 .

:s_001 rdf:type rr:SubjectMap ;
	rr:template "https://betweenourworlds.org/trailer/{attributes.slug}" .

:pom_017 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_027 ;
	rr:objectMap :om_021, :om_022, :om_023, :om_024 .

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

:om_021 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/VideoObject" ;
	rr:termType rr:IRI .

:om_022 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/Thing" ;
	rr:termType rr:IRI .

:om_023 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/CreativeWork" ;
	rr:termType rr:IRI .

:om_024 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/MediaObject" ;
	rr:termType rr:IRI .

:pom_018 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_028 ;
	rr:objectMap :om_025 .

:pm_028 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/url> .

:om_025 rdf:type rr:ObjectMap ;
	rr:template "https://www.youtube.com/watch?v={attributes.youtubeVideoId}" ;
	rr:termType rr:Literal .

:map_stream_000 rml:logicalSource :source_001 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "stream" ;
	rr:subjectMap :s_002 ;
	rr:predicateObjectMap :pom_019, :pom_020, :pom_021, :pom_023 .

:s_002 rdf:type rr:SubjectMap ;
	rr:template "https://betweenourworlds.org/stream/{slug}-{service}" .

:pom_019 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_029 ;
	rr:objectMap :om_026 .

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

:om_026 rdf:type rr:ObjectMap ;
	rr:constant "https://betweenourworlds.org/ontology/Stream" ;
	rr:termType rr:IRI .

:pom_020 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_030 ;
	rr:objectMap :om_027 .

:pm_030 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/url> .

:om_027 rdf:type rr:ObjectMap ;
	rml:reference "url" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/URL> .

:pom_021 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_031 ;
	rr:objectMap :om_028 .

:pm_031 rdf:type rr:PredicateMap ;
	rr:constant bow:providedBy .

:om_028 rdf:type fnml:FunctionTermMap ;
	rr:termType rr:IRI ;
	fnml:functionValue :fn_001 .

:fn_001 rml:logicalSource :source_001 ;
	rr:predicateObjectMap :pomexec_001, :pom_022 .

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

:pmexec_001 rr:constant fno:executes .

:omexec_001 rr:constant "https://betweenourworlds.org/function/getStreamAgent" ;
	rr:termType rr:IRI .

:pom_022 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_032 ;
	rr:objectMap :om_029 .

:pm_032 rdf:type rr:PredicateMap ;
	rr:constant afn:value .

:om_029 rdf:type rr:ObjectMap ;
	rml:reference "service" ;
	rr:termType rr:Literal .

:pom_023 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_033 ;
	rr:objectMap :om_041 .

:pm_033 rdf:type rr:PredicateMap ;
	rr:constant bow:object .

:map_episode_000 rml:logicalSource :source_002 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "episode" ;
	rr:subjectMap :s_003 ;
	rr:predicateObjectMap :pom_024, :pom_025, :pom_026, :pom_027, :pom_028, :pom_029 .

:s_003 rdf:type rr:SubjectMap ;
	rr:template "https://betweenourworlds.org/episode/{anime_slug}-{attributes.number}" .

:pom_024 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_034 ;
	rr:objectMap :om_030, :om_031, :om_032 .

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

:om_030 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/Episode" ;
	rr:termType rr:IRI .

:om_031 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/CreativeWork" ;
	rr:termType rr:IRI .

:om_032 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/Thing" ;
	rr:termType rr:IRI .

:pom_025 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_035, :pm_036, :pm_037 ;
	rr:objectMap :om_033 .

:pm_035 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/name> .

:pm_036 rdf:type rr:PredicateMap ;
	rr:constant rdfs:label .

:pm_037 rdf:type rr:PredicateMap ;
	rr:constant dbo:title .

:om_033 rdf:type rr:ObjectMap ;
	rml:reference "attributes.canonicalTitle" ;
	rr:termType rr:Literal .

:pom_026 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_038 ;
	rr:objectMap :om_034 .

:pm_038 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/episodeNumber> .

:om_034 rdf:type rr:ObjectMap ;
	rml:reference "attributes.relativeNumber" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/Integer> .

:pom_027 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_039, :pm_040 ;
	rr:objectMap :om_035 .

:pm_039 rdf:type rr:PredicateMap ;
	rr:constant rdfs:comment .

:pm_040 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/description> .

:om_035 rdf:type rr:ObjectMap ;
	rml:reference "attributes.synopsis" ;
	rr:termType rr:Literal .

:pom_028 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_041 ;
	rr:objectMap :om_042 .

:pm_041 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/partOfSeason> .

:pom_029 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_042 ;
	rr:objectMap :om_043 .

:pm_042 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/about> .

:map_season_000 rml:logicalSource :source_003 ;
	rdf:type rr:TriplesMap ;
	rdfs:label "season" ;
	rr:subjectMap :s_004 ;
	rr:predicateObjectMap :pom_030, :pom_031, :pom_032 .

:s_004 rdf:type rr:SubjectMap ;
	rr:template "https://betweenourworlds.org/season/{anime.slug}-{seasonNumber}" .

:pom_030 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_043 ;
	rr:objectMap :om_036, :om_037, :om_038 .

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

:om_036 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/Season" ;
	rr:termType rr:IRI .

:om_037 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/CreativeWork" ;
	rr:termType rr:IRI .

:om_038 rdf:type rr:ObjectMap ;
	rr:constant "http://schema.org/Thing" ;
	rr:termType rr:IRI .

:pom_031 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_044 ;
	rr:objectMap :om_039 .

:pm_044 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/seasonNumber> .

:om_039 rdf:type rr:ObjectMap ;
	rml:reference "seasonNumber" ;
	rr:termType rr:Literal ;
	rr:datatype <http://schema.org/Integer> .

:pom_032 rdf:type rr:PredicateObjectMap ;
	rr:predicateMap :pm_045 ;
	rr:objectMap :om_044 .

:pm_045 rdf:type rr:PredicateMap ;
	rr:constant <http://schema.org/about> .

:om_040 rdf:type rr:ObjectMap ;
	rr:parentTriplesMap :map_trailer_000 ;
	rr:joinCondition :jc_000 .

:jc_000 rr:child "attributes.slug" ;
	rr:parent "attributes.slug" .

:om_041 rdf:type rr:ObjectMap ;
	rr:parentTriplesMap :map_anime_000 ;
	rr:joinCondition :jc_001 .

:jc_001 rr:child "slug" ;
	rr:parent "attributes.slug" .

:om_042 rdf:type rr:ObjectMap ;
	rr:parentTriplesMap :map_season_000 ;
	rr:joinCondition :jc_002, :jc_003 .

:jc_002 rr:child "attributes.seasonNumber" ;
	rr:parent "seasonNumber" .

:jc_003 rr:child "anime_id" ;
	rr:parent "anime.id" .

:om_043 rdf:type rr:ObjectMap ;
	rr:parentTriplesMap :map_anime_000 ;
	rr:joinCondition :jc_004 .

:jc_004 rr:child "anime_id" ;
	rr:parent "id" .

:om_044 rdf:type rr:ObjectMap ;
	rr:parentTriplesMap :map_anime_000 ;
	rr:joinCondition :jc_005 .

:jc_005 rr:child "anime.id" ;
	rr:parent "id" .

