SPARQL examples

From Dariah-Lab
Jump to navigation Jump to search

This page is parsed by the web interface of the query service to fill the query example dialog.


Miejscowości z AHP (XVI w.) w których znajdowała się karczma

SELECT ?item ?itemLabel ?ahp_id ?coordinate
  WHERE
  {
      ?item wdt:P81 ?ahp_id .
      ?item p:P63 ?statement .
      ?statement pq:P40 ?pointintime .
      ?statement ps:P63 ?coordinate .
      ?item p:P77 ?statement1.
      ?statement1 (ps:P77/(wdt:P56*)) wd:Q68.
      FILTER(YEAR(?pointintime) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }

Try it!

Osoby urodzone w XVI wieku

# lista osób urodzonych w XVI wieku
SELECT DISTINCT ?human ?humanLabel (YEAR(?date_of_birth) AS ?year) WHERE {
  ?human wdt:P27 wd:Q5.
  ?human wdt:P11 ?date_of_birth.
  FILTER (YEAR(?date_of_birth) > 1500 && YEAR(?date_of_birth) < 1601)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY ?date_of_birth

Try it!

Lista osób długowiecznych

# osoby ze znaną datą urodzin i śmierci żyjące pow. 90 lat
SELECT ?item ?itemLabel ?age 
WHERE {
        ?item wdt:P27 wd:Q5 .
        ?item p:P11/psv:P11 ?birth_date_node . 
        ?item p:P12/psv:P12 ?death_date_node .
        ?birth_date_node wikibase:timeValue ?birth_date.
        ?death_date_node wikibase:timeValue ?death_date.
        ?birth_date_node wikibase:timePrecision ?birth_precision.
        ?death_date_node wikibase:timePrecision ?death_precision.
        BIND( YEAR(?death_date) - YEAR(?birth_date) - 
              IF(MONTH(?death_date)<MONTH(?birth_date) || 
                 (MONTH(?death_date)=MONTH(?birth_date) && DAY(?death_date)<DAY(?birth_date)),1,0) AS ?age )
        FILTER(?age > 90 && ?birth_precision >= 9 && ?death_precision >= 9). 
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
ORDER BY DESC(?age)

Try It!

Osoby żyjące w XVI wieku - urodzone, zmarłe lub aktywne w tym okresie

SELECT * WHERE
{ 
 
  { 
    SELECT DISTINCT ?item ?itemLabel WHERE {
    ?item wdt:P27 wd:Q5.
    ?item wdt:P11 ?birthdate.
    ?item wdt:P12 ?deathdate. 
    FILTER(
           ((?birthdate >= "1501-01-01T00:00:00Z"^^xsd:dateTime) && (?birthdate <= "1600-12-31T00:00:00Z"^^xsd:dateTime)) 
           ||
           ((?deathdate >= "1501-01-01T00:00:00Z"^^xsd:dateTime) && (?deathdate <= "1600-12-31T00:00:00Z"^^xsd:dateTime))
          ) 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }}
  }
UNION
  {
   SELECT DISTINCT ?item ?itemLabel WHERE {
    ?item wdt:P27 wd:Q5.
    ?item wdt:P87 ?fluorit.
    FILTER ((?fluorit >= "+1501-01-01T00:00:00Z"^^xsd:dateTime) && (?fluorit <= "+1600-01-01T00:00:00Z"^^xsd:dateTime))
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }}
  }
   
}
ORDER BY ?itemLabel

Try It!

Miejscowości które w XVI wieku były miastami

SELECT ?item ?itemLabel ?ahp_id ?coordinate
  WHERE
  {
      ?item wdt:P81 ?ahp_id .
      ?item p:P63 ?statement .
      ?item p:P62 ?statement1.
      ?statement1 pq:P40 ?pointintime .
      ?statement ps:P63 ?coordinate .
      ?statement1 (ps:P62/(wdt:P56*)) wd:Q622.
      FILTER(YEAR(?pointintime) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }

Try It!

Miejscowości które w XVI wieku były własnością monarszą

SELECT ?item ?itemLabel ?ahp_id ?coordinate
  WHERE
  {
      ?item wdt:P81 ?ahp_id .
      ?item p:P63 ?statement .
      ?item p:P134 ?statement1.
      ?statement pq:P40 ?pointintime .
      ?statement1 pq:P40 ?pointintime1 .
      ?statement ps:P63 ?coordinate .
      ?statement1 (ps:P134/(wdt:P56*)) wd:Q64.  # Q64 - własność monarsza, Q63 - duchowna, Q65 - mieszczańska, Q66 - szlachecka
      FILTER(YEAR(?pointintime) = 1600)
      FILTER(YEAR(?pointintime1) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }

Try It!

Podsumowanie liczby osób urodzonych w poszczególnych stuleciach

SELECT ?centuryRoman (COUNT(*) AS ?count)
WHERE {
  ?person wdt:P27 wd:Q5;
          wdt:P11 ?birthDate .

  # Obliczenie stulecia na podstawie roku urodzenia
  BIND(CEIL((YEAR(?birthDate) - 1) / 100) AS ?century)
  BIND(
    IF(?century = 10, "X",
    IF(?century = 11, "XI",
    IF(?century = 12, "XII",
    IF(?century = 13, "XIII",
    IF(?century = 14, "XIV",
    IF(?century = 15, "XV",
    IF(?century = 16, "XVI",
    IF(?century = 17, "XVII",
    IF(?century = 18, "XVIII",
    IF(?century = 19, "XIX",
    IF(?century = 20, "XX",
    ""))))))))))) AS ?centuryRoman).
  # odfiltrowanie błędnych danych 
  FILTER(?century >= 10 && ?century < 21)
}
GROUP BY ?centuryRoman
ORDER BY ?century

Try It!