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.


Towns that served as county capital in the 16th century

#title:Towns that served as county capital in the 16th century
#defaultView:Map
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:P79 ?statement1.
      ?statement1 pq:P40 ?pointintime1 .
      ?statement1 (ps:P79/(wdt:P56*)) wd:Q99.  # stolica powiatu
      FILTER(YEAR(?pointintime) = 1600 && YEAR(?pointintime1) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }

Try it!

Localities that were places of the local assembly in the 16th century

#title:Localities that were places of the local assembly in the 16th century
#defaultView:Map
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:P79 ?statement1.
      ?statement1 pq:P40 ?pointintime1 .
      ?statement1 (ps:P79/(wdt:P56*)) wd:Q91.  # miejsca odbywania sejmiku partykularnego
      FILTER(YEAR(?pointintime) = 1600 && YEAR(?pointintime1) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }

https://wikihum.lab.dariah.pl/wdqs/#%23title%3ALocalities%20that%20were%20places%20of%20the%20local%20assembly%20in%20the%2016th%20century%0A%23defaultView%3AMap%0ASELECT%20%3Fitem%20%3FitemLabel%20%3Fahp_id%20%3Fcoordinate%0A%20%20WHERE%0A%20%20%7B%0A%20%20%20%20%20%20%3Fitem%20wdt%3AP81%20%3Fahp_id%20.%0A%20%20%20%20%20%20%3Fitem%20p%3AP63%20%3Fstatement%20.%0A%20%20%20%20%20%20%3Fstatement%20pq%3AP40%20%3Fpointintime%20.%0A%20%20%20%20%20%20%3Fstatement%20ps%3AP63%20%3Fcoordinate%20.%0A%20%20%20%20%20%20%3Fitem%20p%3AP79%20%3Fstatement1.%0A%20%20%20%20%20%20%3Fstatement1%20pq%3AP40%20%3Fpointintime1%20.%0A%20%20%20%20%20%20%3Fstatement1%20%28ps%3AP79%2F%28wdt%3AP56%2a%29%29%20wd%3AQ91.%20%20%23%20miejsca%20odbywania%20sejmiku%20partykularnego%0A%20%20%20%20%20%20FILTER%28YEAR%28%3Fpointintime%29%20%3D%201600%20%26%26%20YEAR%28%3Fpointintime1%29%20%3D%201600%29%0A%20%20%20%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%7D Try It!]

Towns that were towns in the 16th century and are now villages

#title:Towns that were towns in the 16th century and are now villages
#defaultView:Map
SELECT ?settlement ?settlementLabel ?coordinate16thCentury WHERE {
  # Warunek dla miejscowości
  ?settlement wdt:P27 wd:Q175698.

  # It was a town in the 16th century
  ?settlement p:P62 ?cityStatement.
  ?cityStatement ps:P62 wd:Q622;
                 pq:P40 ?pointInTime16thCentury.
  FILTER(YEAR(?pointInTime16thCentury) > 1500 && YEAR(?pointInTime16thCentury) <= 1600)

  # it is a village in the year 2022
  ?settlement p:P62 ?villageStatement.
  ?villageStatement ps:P62 wd:Q653;
                    pq:P40 ?pointInTime2022.
  FILTER(YEAR(?pointInTime2022) = 2022)

  # geographical coordinates from the 16th century
  ?settlement p:P63 ?coordStatement.
  ?coordStatement ps:P63 ?coordinate16thCentury;
                 pq:P40 ?coordTime.
  FILTER(YEAR(?coordTime) > 1500 && YEAR(?coordTime) <= 1600)

  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

Try It!

Localities that existed in the 16th century but do not exist today

#title:Localities that existed in the 16th century but do not exist today
#defaultView:Map
SELECT ?settlement ?settlementLabel ?settlementDescription ?coordinate16thCentury WHERE {
  # Condition for elements that are human settlements
  ?settlement wdt:P27 wd:Q175698.

  # Filter for a description containing the text ‘historic settlement’
  ?settlement schema:description ?settlementDescription.
  FILTER(CONTAINS(LCASE(?settlementDescription), "osada historyczna"))
  
  # geographical coordinates from the 16th century
  ?settlement p:P63 ?coordStatement.
  ?coordStatement ps:P63 ?coordinate16thCentury;
                 pq:P40 ?coordTime.
  FILTER(YEAR(?coordTime) > 1500 && YEAR(?coordTime) <= 1600)

  # Service for labels and descriptions in the indicated language
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],pl". }
}

Try It!

People born in the 16th century

#title:People born in the 16th century
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!

List of long-lived persons

#title:Persons with known date of birth and death who have lived beyond 90 years
SELECT DISTINCT ?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!

Persons living in the 16th century - born, deceased or active during this period

#title:Persons living in the 16th century - born, deceased or active during this period
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!

Places that were cities in the 16th century

#title:Places that were cities in the 16th century
#defaultView:Map
SELECT ?item ?itemLabel ?ahp_id ?coordinate
  WHERE
  {
      ?item wdt:P81 ?ahp_id .
      ?item p:P63 ?statement .
      ?statement pq:P40 ?pointintime .  
      ?item p:P62 ?statement1.
      ?statement1 pq:P40 ?pointintime1 .
      ?statement ps:P63 ?coordinate .
      ?statement1 (ps:P62/(wdt:P56*)) wd:Q622.
      FILTER(YEAR(?pointintime) = 1600 && YEAR(?pointintime1) = 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ą

#title:Miejscowości, które w XVI wieku były własnością monarszą
#defaultView:Map
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!

Miejscowości według typu własności w XVI wieku

#title:Miejscowości według typu własności w XVI wieku
#defaultView:Map
SELECT ?item ?itemLabel ?ahp_id ?coordinate ?layer
  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*)) ?typ
      # Q64 - własność monarsza, Q63 - duchowna, Q65 - mieszczańska, Q66 - szlachecka
      BIND(
      IF(?typ = wd:Q64, "monarsza",
      IF(?typ = wd:Q63, "duchowna",
      IF(?typ = wd:Q65, "mieszczańska",
      IF(?typ = wd:Q66, "szlachecka",
      "inna"))))
      AS ?layer).
      FILTER(YEAR(?pointintime) = 1600)
      FILTER(YEAR(?pointintime1) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }
GROUP BY ?item ?itemLabel ?ahp_id ?coordinate ?layer

Try It!

Podsumowanie liczby osób urodzonych w poszczególnych stuleciach

#title:Liczba osób urodzonych w poszczególnych stuleciach
#defaultView:BarChart
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 ?count

Try It!

Sobiescy urodzeni w XVI i XVII wieku

#title:Sobiescy urodzeni w XVI i XVII wieku
#defaultView:Timeline
SELECT DISTINCT ?person (MAX(?deathDate) as ?ddate) (MAX(?birthDate) as ?bdate) (MAX(?personLabel) as ?label) WHERE {
  # Warunek dla osób
  ?person wdt:P27 wd:Q5.
  ?person rdfs:label ?personLabel.

  # Pobieranie daty urodzenia 
  ?person p:P11 ?birthStatement.
  ?birthStatement ps:P11 ?birthDate.
  
  # Pobieranie daty śmierci
  ?person p:P12 ?deathStatement.
  ?deathStatement ps:P12 ?deathDate.
  
  # filtrowanie daty urodzin: przedział 1501-1700 oraz nazwisko "sobieski" w etykiecie
  FILTER(CONTAINS(LCASE(?personLabel), "sobieski") && ?birthDate >= "1501-01-01T00:00:00Z"^^xsd:dateTime && ?birthDate <= "1700-12-31T23:59:59Z"^^xsd:dateTime)

} GROUP BY ?person
ORDER BY ?personLabel

Try It!

Zmiana nazwy miejscowości między XVI wiekiem a współczesnością (tylko własność monarsza)

#title:Zmiana nazwy miejscowości między XVI wiekiem a współczesnością (tylko dla własności monarszej)
#defaultView:Map
SELECT ?place ?currentName ?historicNames ?coordinate ?layer
WHERE {
  
  BIND(
    IF ( CONTAINS(LCASE(CONCAT(?historicNames,",")), LCASE(CONCAT(?currentName, ","))), "kontynuacja", "zmiana") AS ?layer ).
  
  {
    SELECT ?place ?currentName ?coordinate (GROUP_CONCAT(?historicName; separator=",") AS ?historicNames) 
    WHERE {
      ?place wdt:P27 wd:Q175698;  # miejscowość jest instancją "Q175698" (miejscowość)
             rdfs:label ?currentName.
      ?place wdt:P134 wd:Q64.
      ?place p:P63 ?statement .
      ?statement pq:P40 ?pointintime_coord .
      ?statement ps:P63 ?coordinate .
  
      ?place p:P54 ?historicNameStatement .
      ?historicNameStatement ps:P54 ?historicName;
                             pq:P40 ?pointInTime16thCentury.
      
      # Filtr na opis zawierający tekst "osada historyczna"
      ?place schema:description ?settlementDescription.
      FILTER(LANG(?settlementDescription) = "pl")  # Opis w języku polskim
      FILTER(!STRSTARTS(?settlementDescription, "osada historyczna")) 
  
      FILTER(LANG(?currentName) = "pl" && YEAR(?pointInTime16thCentury) = 1600 && YEAR(?pointintime_coord) = 1600)
      }
    GROUP BY ?place ?currentName ?coordinate
  }
}

Try It!

Odległości między położeniem miejscowości w XVI wieku i współcześnie (w km)

#title:Odległości między położeniem miejscowości w XVI wieku i współcześnie w km
SELECT DISTINCT ?place ?placeLabel ?distance 
WHERE {
  
SELECT ?place ?placeLabel ?coord1 ?coord2 (geof:distance(?coord1, ?coord2) AS ?distance)
WHERE {
  ?place wdt:P27 wd:Q175698;
         p:P63 ?statement1, ?statement2.

  ?statement1 ps:P63 ?coord1.
  ?statement2 ps:P63 ?coord2.

  FILTER(?statement1 != ?statement2)
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
}
ORDER BY DESC (?distance)

Try It!

Miejscowości Wólka lub Dąbrowa w XVI wieku

#title:Miejscowości z nazwami typu Wólka lub Dąbrowa w XVI wieku
#defaultView:Map
SELECT ?item ?itemLabel ?ahp_id ?coordinate ?historicNames ?layer
WHERE {
  
BIND(
      IF(CONTAINS(?historicNames, "Wólka"), "Wólka",
      IF(CONTAINS(?historicNames, "Dąbrowa"), "Dąbrowa",
      "inna"))
      AS ?layer).

  { 
    SELECT ?item ?itemLabel ?ahp_id ?coordinate (GROUP_CONCAT(?historicName; separator=",") AS ?historicNames) 
    WHERE
    {
      ?item wdt:P81 ?ahp_id .
      ?item p:P63 ?statement .
      ?statement ps:P63 ?coordinate .
      ?statement pq:P40 ?pointintime .
    
      ?item p:P54 ?historicNameStatement .
      ?historicNameStatement ps:P54 ?historicName;
                             pq:P40 ?pointInTime16thCentury.
      
      FILTER( YEAR(?pointintime) = 1600 && YEAR(?pointInTime16thCentury) = 1600 && (CONTAINS(?historicName, "Wólka") || CONTAINS(?historicName, "Dąbrowa")))
    }
    GROUP BY ?item ?itemLabel ?ahp_id ?coordinate ?historicName
  }
  
  FILTER(?layer = "Wólka" || ?layer = "Dąbrowa")
}

Try It!

Stara Wieś kontra Nowa Wieś w XVI wieku

#title:Stara Wieś kontra Nowa Wieś w XVI wieku
#defaultView:Map
SELECT ?item ?itemLabel ?ahp_id ?coordinate ?historicNames ?layer
WHERE {
  
BIND(
      IF(CONTAINS(?historicNames, "Nowa Wieś"), "Nowa Wieś",
      IF(CONTAINS(?historicNames, "Stara Wieś"), "Stara Wieś",
      "inna"))
      AS ?layer).

  { 
    SELECT ?item ?itemLabel ?ahp_id ?coordinate (GROUP_CONCAT(?historicName; separator=",") AS ?historicNames) 
    WHERE
    {
      ?item wdt:P81 ?ahp_id .
      ?item p:P63 ?statement .
      ?statement ps:P63 ?coordinate .
      ?statement pq:P40 ?pointintime .
    
      ?item p:P54 ?historicNameStatement .
      ?historicNameStatement ps:P54 ?historicName;
                             pq:P40 ?pointInTime16thCentury.
      
      FILTER( YEAR(?pointintime) = 1600 && YEAR(?pointInTime16thCentury) = 1600 && (CONTAINS(?historicName, "Nowa Wieś") || CONTAINS(?historicName, "Stara Wieś")))
    }
    GROUP BY ?item ?itemLabel ?ahp_id ?coordinate ?historicName
  }
  
  FILTER(?layer = "Nowa Wieś" || ?layer = "Stara Wieś")
}

Try It!