sparql-examples

A set of SPARQL examples that are used in different TGX resources

View the Project on GitHub BiGCAT-UM/sparql-examples

131

rq turtle/ttl

Podcast-season aspect: data

Use at

PREFIX p: <http://www.wikidata.org/prop/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX target: <http://www.wikidata.org/entity/Q124266519>

SELECT DISTINCT ?description ?value ?valueUrl
WHERE {
  BIND(target: AS ?series)
  {
    BIND(1 AS ?order)
    BIND("Title" AS ?description)
    ?series wdt:P1476 ?value .
  }
  UNION
  {
    ?series wdt:P179 ?iri .
    BIND(SUBSTR(STR(?iri), 32) AS ?q) 
    ?iri rdfs:label ?value_string .
    FILTER (LANG(?value_string) = 'en')
    BIND(STR(?value_string) AS ?value)
    BIND(CONCAT("../podcast/", ?q) AS ?valueUrl)
    BIND(2 AS ?order)
    BIND("Podcast" AS ?description)
  }
  UNION
  {
    SELECT ?description ?order (MAX(?value_) AS ?value) WHERE {
      BIND(target: AS ?series)
      ?series wdt:P1113 ?value_ .
      BIND(3 AS ?order)
      BIND("Number of episodes" AS ?description)
    } GROUP BY ?description ?order
  }
  UNION
  {
    ?series wdt:P155 ?iri .
    BIND(SUBSTR(STR(?iri), 32) AS ?q)
    ?iri rdfs:label ?value_string .
    FILTER (LANG(?value_string) = 'en')
    BIND(STR(?value_string) AS ?value)
    BIND(CONCAT("../podcast-season/", ?q) AS ?valueUrl)
    BIND(6 AS ?order)
    BIND("Previous season" AS ?description)
  }
  UNION
  {
    ?series wdt:P156 ?iri .
    BIND(SUBSTR(STR(?iri), 32) AS ?q)
    ?iri rdfs:label ?value_string .
    FILTER (LANG(?value_string) = 'en')
    BIND(STR(?value_string) AS ?value)
    BIND(CONCAT("../podcast-season/", ?q) AS ?valueUrl)
    BIND(7 AS ?order)
    BIND("Next season" AS ?description)
  }
}
ORDER BY ?order

graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v10("?description"):::projected 
  v6("?iri")
  v10("?order")
  v10("?q")
  v9("?series")
  v10("?value"):::projected 
  v10("?valueUrl"):::projected 
  v9("?value_")
  v5("?value_string")
  bind0[/"http://www.wikidata.org/entity/Q124266519"/]
  bind0 --as--o v9
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    subgraph union1[" Union "]
    subgraph union1l[" "]
      style union1l fill:#abf,stroke-dasharray: 3 3;
      subgraph union2[" Union "]
      subgraph union2l[" "]
        style union2l fill:#abf,stroke-dasharray: 3 3;
        subgraph union3[" Union "]
        subgraph union3l[" "]
          style union3l fill:#abf,stroke-dasharray: 3 3;
          f1[["?value_string = 'en'"]]
          f1 --> v5
          v9 --"p:direct/P156"-->  v6
          bind2[/"substring(str(?iri),'32^^xsd:integer')"/]
          v6 --o bind2
          bind2 --as--o v10
          v6 --"rdfs:label"-->  v5
          bind3[/"str(?value_string)"/]
          v5 --o bind3
          bind3 --as--o v10
          bind4[/"concat('../podcast-season/',?q)"/]
          v10 --o bind4
          bind4 --as--o v10
          bind5[/"'7^^xsd:integer'"/]
          bind5 --as--o v10
          bind6[/"'Next season'"/]
          bind6 --as--o v10
        end
        subgraph union3r[" "]
          style union3r fill:#abf,stroke-dasharray: 3 3;
          f7[["?value_string = 'en'"]]
          f7 --> v5
          v9 --"p:direct/P155"-->  v6
          bind8[/"substring(str(?iri),'32^^xsd:integer')"/]
          v6 --o bind8
          bind8 --as--o v10
          v6 --"rdfs:label"-->  v5
          bind9[/"str(?value_string)"/]
          v5 --o bind9
          bind9 --as--o v10
          bind10[/"concat('../podcast-season/',?q)"/]
          v10 --o bind10
          bind10 --as--o v10
          bind11[/"'6^^xsd:integer'"/]
          bind11 --as--o v10
          bind12[/"'Previous season'"/]
          bind12 --as--o v10
        end
        union3r <== or ==> union3l
        end
      end
      subgraph union2r[" "]
        style union2r fill:#abf,stroke-dasharray: 3 3;
        bind13[/"http://www.wikidata.org/entity/Q124266519"/]
        bind13 --as--o v9
        v9 --"p:direct/P1113"-->  v9
        bind14[/"'3^^xsd:integer'"/]
        bind14 --as--o v10
        bind15[/"'Number of episodes'"/]
        bind15 --as--o v10
        bind17[/"max(?value_)"/]
        v9 --o bind17
        bind17 --as--o v10
      end
      union2r <== or ==> union2l
      end
    end
    subgraph union1r[" "]
      style union1r fill:#abf,stroke-dasharray: 3 3;
      f18[["?value_string = 'en'"]]
      f18 --> v5
      v9 --"p:direct/P179"-->  v6
      bind19[/"substring(str(?iri),'32^^xsd:integer')"/]
      v6 --o bind19
      bind19 --as--o v10
      v6 --"rdfs:label"-->  v5
      bind20[/"str(?value_string)"/]
      v5 --o bind20
      bind20 --as--o v10
      bind21[/"concat('../podcast/',?q)"/]
      v10 --o bind21
      bind21 --as--o v10
      bind22[/"'2^^xsd:integer'"/]
      bind22 --as--o v10
      bind23[/"'Podcast'"/]
      bind23 --as--o v10
    end
    union1r <== or ==> union1l
    end
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    bind24[/"'1^^xsd:integer'"/]
    bind24 --as--o v10
    bind25[/"'Title'"/]
    bind25 --as--o v10
    v9 --"p:direct/P1476"-->  v10
  end
  union0r <== or ==> union0l
  end