Bruger:Dipsacus fullonum/SPARQL

Fra Wikipedia, den frie encyklopædi

Interessante Wikidata-SPARQL-forespørgsler på Wikidata.

Antal biografier på dawiki fordelt efter fødselsår (1800-nu) og køn (linjegraf)[redigér | rediger kildetekst]

# Count biographies at dawiki by birth year and sex
#defaultView:LineChart
SELECT ?sex ?birth_year ?articles ?sexLabel
WITH
{
    SELECT ?sex ?birth_year (COUNT(?link) as ?articles)
    WHERE
    {
        ?link schema:about ?person;
              schema:isPartOf <https://da.wikipedia.org/>. hint:Prior hint:runFirst true.
        ?person wdt:P31 wd:Q5.
        ?person p:P569/psv:P569 [
                wikibase:timeValue ?dateOfBirth;
                wikibase:timePrecision ?precision
        ].
        FILTER(?precision >= "8"^^xsd:integer) # Precision is decade or smaller
        BIND(SUBSTR(STR(?dateOfBirth),1,4) as ?birth_year)
        ?person wdt:P21 ?sex.
    }
    GROUP BY ?birth_year ?sex
} AS %results
WHERE
{
    INCLUDE %results.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
    FILTER(?birth_year >= "1800")
}
ORDER BY ASC(?birth_year)

Prøv det!

Antal biografier på dawiki fordelt efter fødselsårti (150-nu) og køn (linjegraf)[redigér | rediger kildetekst]

# Count biographies at dawiki by birth decade and sex
#defaultView:LineChart
SELECT ?sex ?birth_decade ?articles ?sexLabel
WITH
{
    SELECT ?sex ?birth_decade (COUNT(?link) as ?articles)
    WHERE
    {
        ?link schema:about ?person;
              schema:isPartOf <https://da.wikipedia.org/>. hint:Prior hint:runFirst true.
        ?person wdt:P31 wd:Q5.
        ?person p:P569/psv:P569 [
                wikibase:timeValue ?dateOfBirth;
                wikibase:timePrecision ?precision
        ].
        FILTER(?precision >= "8"^^xsd:integer) # Precision is decade or smaller
        BIND(SUBSTR(STR(?dateOfBirth),1,3) as ?birth_decade)
        ?person wdt:P21 ?sex.
    }
    GROUP BY ?birth_decade ?sex
} AS %results
WHERE
{
    INCLUDE %results.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
    FILTER(?birth_decade >= "150")
}
ORDER BY ASC(?birth_decade)

Prøv det!

Artikler som mangler i en kategori, men som er i kategorien på andre sprog[redigér | rediger kildetekst]

Denne forespørgsel vil finde alle artikler på dansk Wikipedia som ikke er i en bestemt kategori, men hvor den tilsvarende artikel om emnet i en anden Wikipedia er i den tilsvarende kategori på den anden Wikipedia.

SELECT ?item ?article ?title ?found_in
WITH
{
  SELECT 
    ?item
    (GROUP_CONCAT(?endpoint; SEPARATOR=", ") AS ?found_in)
    (MAX(?in_category) AS ?already_in_category)
  WHERE
  {
    ?category schema:name "Kategori:Olympiske sølvmedaljevindere fra Sovjetunionen"@da .
    ?category schema:isPartOf <https://da.wikipedia.org/> .
    ?category schema:about ?category_item .
    ?other_cat schema:about ?category_item .
    ?other_cat schema:isPartOf ?wikimedia_site .
    ?other_cat schema:name ?category_title .
    BIND (STRBEFORE(STRAFTER(STR(?wikimedia_site), "https://"), "/") AS ?endpoint)
    OPTIONAL
    {
      SERVICE wikibase:mwapi
      {
        bd:serviceParam wikibase:endpoint ?endpoint .
        bd:serviceParam wikibase:api "Generator" .
        bd:serviceParam mwapi:generator "categorymembers" .
        bd:serviceParam mwapi:gcmtitle ?category_title .
        bd:serviceParam mwapi:gcmlimit "max" .
        ?item wikibase:apiOutputItem mwapi:item .
      }
    }
    FILTER BOUND (?item)
    BIND (IF(?wikimedia_site = <https://da.wikipedia.org/>, 1, 0) AS ?in_category)
  }
  GROUP BY ?item
  HAVING (?already_in_category = 0)
} AS %get_items
WHERE
{
  hint:Query hint:optimizer "None" .
  INCLUDE %get_items
  ?article schema:about ?item .
  ?article schema:isPartOf <https://da.wikipedia.org/> .
  ?article schema:name ?title .
}

Prøv det!

Russere med dansk Wikipedia-artikel som ikke er i udvalgte beskæftigelsesgrupper[redigér | rediger kildetekst]

SELECT ?artikel ?dansk_titel (GROUP_CONCAT(DISTINCT ?landLabel; separator=", ") AS ?statsborger)
  (GROUP_CONCAT(DISTINCT ?beskæftigelseLabel; separator=", ") AS ?erhverv) ?ru_label ?modersmålsnavn ?sprogkode
WITH
{
  SELECT ?artikel ?person
  WHERE
  {
    ?person wdt:P31 wd:Q5 . # Menneske
    VALUES ?land { wd:Q34266 wd:Q15180 wd:Q2184 wd:Q159 }
    ?person wdt:P27 ?land . # Statsborger i Det Russiske Kejserrige, Sovjetunionen, Russiske SFSR eller Rusland
    ?artikel schema:about ?person.
    ?artikel schema:isPartOf <https://da.wikipedia.org/>.
  }
} AS %personer
WHERE
{  
  INCLUDE %personer
  ?person wdt:P27 ?land .
  OPTIONAL
  {
    ?person wdt:P1559 ?modersmålsnavn.
    BIND (LANG(?modersmålsnavn) AS ?sprogkode)
  }
  OPTIONAL
  {
    ?person rdfs:label ?ru_label.
    FILTER (LANG(?ru_label) = "ru")
  }
  OPTIONAL { ?person wdt:P106 ?beskæftigelse . }
  FILTER NOT EXISTS
  {
    ?person wdt:P106 ?beskæft .
    VALUES ?grupper { wd:Q901 wd:Q483501 wd:Q50995749 wd:Q82955 wd:Q16727193 wd:Q47064}
    # videnskabsmand, kunstner, sportsperson, politiker, humanist, militærperson
    ?beskæft wdt:P279* ?grupper . hint:Prior hint:gearing "forward" .
  }
  ?artikel schema:name ?dansk_titel .
  SERVICE wikibase:label
  {
    bd:serviceParam wikibase:language "da" .
    ?land rdfs:label ?landLabel .
    ?beskæftigelse rdfs:label ?beskæftigelseLabel .
  }
}
GROUP BY ?artikel ?dansk_titel ?ru_label ?modersmålsnavn ?sprogkode
ORDER BY ?dansk_titel

Prøv det!