sparql-examples

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

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

163

rq turtle/ttl

Software aspect: data

Use at

PREFIX p: <http://www.wikidata.org/prop/>
PREFIX psv: <http://www.wikidata.org/prop/statement/value/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX target: <http://www.wikidata.org/entity/Q1635410>

SELECT DISTINCT ?description ?value ?valueUrl
WHERE {
  BIND(target: AS ?software)
  {
    BIND(1 AS ?order)
    BIND("Title" AS ?description)
    ?software wdt:P1476 ?value .
  }
  UNION
  {
    SELECT
      (2 AS ?order)
      ("Developers" AS ?description)
      (GROUP_CONCAT(?value_; separator=", ") AS ?value)
      (CONCAT("../authors/", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
    {
      BIND(1 AS ?dummy)
      target: wdt:P178 ?iri .
      BIND(SUBSTR(STR(?iri), 32) AS ?q) 
      ?iri rdfs:label ?value_string . 
      FILTER (LANG(?value_string) = 'en')
      BIND(COALESCE(?value_string, ?q) AS ?value_)
    }
    GROUP BY ?dummy
  }
  UNION
  {
    BIND(2 AS ?order)
    BIND("Programming language" AS ?description)
    ?software wdt:P277 ?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("../topic/", ?q) AS ?valueUrl)
  }
  UNION
  {
    BIND(3 AS ?order)
    BIND("License" AS ?description)
    ?software wdt:P275 ?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("../license/", ?q) AS ?valueUrl)
  }
  UNION
  {
    BIND(4 AS ?order)
    BIND("Publication date" AS ?description)
    ?software p:P577 / psv:P577 ?publication_date_value .
    ?publication_date_value wikibase:timePrecision ?time_precision ;
                            wikibase:timeValue ?publication_date .
    BIND(IF(?time_precision = 9, YEAR(?publication_date), xsd:date(?publication_date)) AS ?value)
  }

  UNION
  {
    SELECT
      (5 AS ?order)
      ("Uses" AS ?description)
      (GROUP_CONCAT(?value_; separator=", ") AS ?value)
      (CONCAT("../topics/", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
    {
      BIND(1 AS ?dummy)
      target: wdt:P366 ?iri .
      BIND(SUBSTR(STR(?iri), 32) AS ?q) 
      ?iri rdfs:label ?value_string . 
      FILTER (LANG(?value_string) = 'en')
      BIND(COALESCE(?value_string, ?q) AS ?value_)
    }
    GROUP BY ?dummy
  }
  UNION
  {
    BIND(11 AS ?order)
    BIND("Homepage" AS ?description)
    ?software wdt:P856 ?valueUrl .
    BIND(STR(?valueUrl) AS ?value)
  }
} 
ORDER BY ?order

graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v10("?_anon_d5635a4148474aba9b1ec2d6f2e48935121")
  v15("?_anon_d5635a4148474aba9b1ec2d6f2e48935132")
  v16("?description"):::projected 
  v15("?dummy")
  v7("?iri")
  v16("?order")
  v14("?publication_date")
  v12("?publication_date_value")
  v15("?q")
  v2("?software")
  v13("?time_precision")
  v16("?value"):::projected 
  v16("?valueUrl"):::projected 
  v15("?value_")
  v5("?value_string")
  a1((" "))
  c3([http://www.wikidata.org/entity/Q1635410]):::iri 
  bind0[/"http://www.wikidata.org/entity/Q1635410"/]
  bind0 --as--o v2
  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;
          subgraph union4[" Union "]
          subgraph union4l[" "]
            style union4l fill:#abf,stroke-dasharray: 3 3;
            subgraph union5[" Union "]
            subgraph union5l[" "]
              style union5l fill:#abf,stroke-dasharray: 3 3;
              bind1[/"'11^^xsd:integer'"/]
              bind1 --as--o v16
              bind2[/"'Homepage'"/]
              bind2 --as--o v16
              v2 --"p:direct/P856"-->  v16
              bind3[/"str(?valueUrl)"/]
              v16 --o bind3
              bind3 --as--o v16
            end
            subgraph union5r[" "]
              style union5r fill:#abf,stroke-dasharray: 3 3;
              f4[["?value_string = 'en'"]]
              f4 --> v5
              bind5[/"'1^^xsd:integer'"/]
              bind5 --as--o v15
              c3 --"p:direct/P366"-->  v7
              bind6[/"substring(str(?iri),'32^^xsd:integer')"/]
              v7 --o bind6
              bind6 --as--o v15
              v7 --"rdfs:label"-->  v5
              bind7[/"?value_string?q"/]
              v5 --o bind7
              v15 --o bind7
              bind7 --as--o v15
              bind10[/"?q"/]
              v15 --o bind10
              bind10 --as--o v15
              bind11[/"'5^^xsd:integer'"/]
              bind11 --as--o v16
              bind12[/"'Uses'"/]
              bind12 --as--o v16
              bind13[/"?value_"/]
              v15 --o bind13
              bind13 --as--o v16
              bind14[/"concat('../topics/',)"/]
              null --o bind14
              bind14 --as--o v16
            end
            union5r <== or ==> union5l
            end
          end
          subgraph union4r[" "]
            style union4r fill:#abf,stroke-dasharray: 3 3;
            bind15[/"'4^^xsd:integer'"/]
            bind15 --as--o v16
            bind16[/"'Publication date'"/]
            bind16 --as--o v16
            v2 --"p:P577"-->  a1
            a1 --"p:statement/value/P577"-->  v12
            v12 --"wikibase:timePrecision"-->  v13
            v12 --"wikibase:timeValue"-->  v14
            bind17[/"if(?time_precision = '9^^xsd:integer',year-from-dateTime(?publication_date),http://www.w3.org/2001/XMLSchema#date(?publication_date))"/]
            v13 --o bind17
            v14 --o bind17
            bind17 --as--o v16
          end
          union4r <== or ==> union4l
          end
        end
        subgraph union3r[" "]
          style union3r fill:#abf,stroke-dasharray: 3 3;
          f18[["?value_string = 'en'"]]
          f18 --> v5
          bind19[/"'3^^xsd:integer'"/]
          bind19 --as--o v16
          bind20[/"'License'"/]
          bind20 --as--o v16
          v2 --"p:direct/P275"-->  v7
          bind21[/"substring(str(?iri),'32^^xsd:integer')"/]
          v7 --o bind21
          bind21 --as--o v15
          v7 --"rdfs:label"-->  v5
          bind22[/"str(?value_string)"/]
          v5 --o bind22
          bind22 --as--o v16
          bind23[/"concat('../license/',?q)"/]
          v15 --o bind23
          bind23 --as--o v16
        end
        union3r <== or ==> union3l
        end
      end
      subgraph union2r[" "]
        style union2r fill:#abf,stroke-dasharray: 3 3;
        f24[["?value_string = 'en'"]]
        f24 --> v5
        bind25[/"'2^^xsd:integer'"/]
        bind25 --as--o v16
        bind26[/"'Programming language'"/]
        bind26 --as--o v16
        v2 --"p:direct/P277"-->  v7
        bind27[/"substring(str(?iri),'32^^xsd:integer')"/]
        v7 --o bind27
        bind27 --as--o v15
        v7 --"rdfs:label"-->  v5
        bind28[/"str(?value_string)"/]
        v5 --o bind28
        bind28 --as--o v16
        bind29[/"concat('../topic/',?q)"/]
        v15 --o bind29
        bind29 --as--o v16
      end
      union2r <== or ==> union2l
      end
    end
    subgraph union1r[" "]
      style union1r fill:#abf,stroke-dasharray: 3 3;
      f30[["?value_string = 'en'"]]
      f30 --> v5
      bind31[/"'1^^xsd:integer'"/]
      bind31 --as--o v15
      c3 --"p:direct/P178"-->  v7
      bind32[/"substring(str(?iri),'32^^xsd:integer')"/]
      v7 --o bind32
      bind32 --as--o v15
      v7 --"rdfs:label"-->  v5
      bind33[/"?value_string?q"/]
      v5 --o bind33
      v15 --o bind33
      bind33 --as--o v15
      bind36[/"?q"/]
      v15 --o bind36
      bind36 --as--o v10
      bind37[/"'2^^xsd:integer'"/]
      bind37 --as--o v16
      bind38[/"'Developers'"/]
      bind38 --as--o v16
      bind39[/"?value_"/]
      v15 --o bind39
      bind39 --as--o v16
      bind40[/"concat('../authors/',)"/]
      null --o bind40
      bind40 --as--o v16
    end
    union1r <== or ==> union1l
    end
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    bind41[/"'1^^xsd:integer'"/]
    bind41 --as--o v16
    bind42[/"'Title'"/]
    bind42 --as--o v16
    v2 --"p:direct/P1476"-->  v16
  end
  union0r <== or ==> union0l
  end