SPARQL examples

From Wer Leitet?

Persons

Persons ordered by city with additional information if available

SELECT ?city ?person ?personLabel ?birthDate ?birthPlace ?occupation ?mainInfo WHERE {
  ?person rdfs:label ?personLabel;
     wdt:P3 wd:Q2; 
OPTIONAL {?person wdt:P381 ?city.}
OPTIONAL {?person wdt:P626 ?birthDate.}
OPTIONAL {?person wdt:P349 ?birthPlace.}
OPTIONAL {?person wdt:P999 ?occupation.}
OPTIONAL {?person wdt:P253 ?mainInfo.}
FILTER((LANG(?personLabel)) = "de")
} ORDER BY ?city

Persons in advisory boards in a time range

SELECT DISTINCT ?person ?personLabel ?beirat WHERE {
  ?person rdfs:label ?personLabel;
     wdt:P3 wd:Q2; 
     wdt:P463 ?surname;
     p:P1012 [ps:P1012 ?beirat;
              pq:P4 ?pubDate].
FILTER((LANG(?personLabel)) = "de")
FILTER("1940-01-01"^^xsd:dateTime <= ?pubDate && ?pubDate < "1941-01-01"^^xsd:dateTime).
} ORDER BY ?surname

Count of occupations

SELECT DISTINCT (COUNT (?person) as ?noPeople) ?occupation WHERE {
 ?person wdt:P3 wd:Q2;
             wdt:P999 ?occupation.
 }
GROUP BY ?occupation HAVING (?noPeople  > 1)
ORDER BY DESC(?noPeople)