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!

Human settlements that were places of the local assembly in the 16th century

#title:Human settlements 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.  # places of the local assembly
      FILTER(YEAR(?pointintime) = 1600 && YEAR(?pointintime1) = 1600)
      SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  }

Try It!

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

#title:Human settlements 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!

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

#title:Human settlements 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!

Human settlements that were cities in the 16th century

#title:Human settlements 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!

Human settlements that were monarchically owned in the 16th century

#title:Human settlements that were monarchically owned in the 16th century
#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!

Human settlements by property type in the 16th century

#title:Human settlements by property type in the 16th century
#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 - royal property, Q63 - ecclesiastical property, Q65 - townsmen property, Q66 - noble property
      BIND(
      IF(?typ = wd:Q64, "royal",
      IF(?typ = wd:Q63, "ecclesiastical",
      IF(?typ = wd:Q65, "townsmen",
      IF(?typ = wd:Q66, "noble",
      "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!

Summary of the number of people born in each century

#title:Summary of the number of people born in each century
#defaultView:BarChart
SELECT ?centuryRoman (COUNT(*) AS ?count)
WHERE {
  ?person wdt:P27 wd:Q5;
          wdt:P11 ?birthDate .

  # Calculation of centenary based on year of birth
  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).
  # filtering out incorrect data 
  FILTER(?century >= 10 && ?century < 21)
}
GROUP BY ?centuryRoman
ORDER BY ?count

Try It!

Persons with the surname Sobieski born in the 16th and 17th centuries

#title:Persons with the surname Sobieski born in the 16th and 17th centuries
#defaultView:Timeline
SELECT DISTINCT ?person (MAX(?deathDate) as ?ddate) (MAX(?birthDate) as ?bdate) (MAX(?personLabel) as ?label) WHERE {
  # Condition for persons
  ?person wdt:P27 wd:Q5.
  ?person rdfs:label ?personLabel.

  # Collection of date of birth 
  ?person p:P11 ?birthStatement.
  ?birthStatement ps:P11 ?birthDate.
  
  # Collection of date of death
  ?person p:P12 ?deathStatement.
  ?deathStatement ps:P12 ?deathDate.
  
  # date of birth filtering - range 1501-1700 and surname ‘Sobieski’ in the label
  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!

Renaming of human settlements between the 16th century and the present (monarchical ownership only)

#title:Renaming of human settlements between the 16th century and the present (monarchical ownership only)
#defaultView:Map
SELECT ?place ?currentName ?historicNames ?coordinate ?layer
WHERE {
  
  BIND(
    IF ( CONTAINS(LCASE(CONCAT(?historicNames,",")), LCASE(CONCAT(?currentName, ","))), "continuation of", "change") AS ?layer ).
  
  {
    SELECT ?place ?currentName ?coordinate (GROUP_CONCAT(?historicName; separator=",") AS ?historicNames) 
    WHERE {
      ?place wdt:P27 wd:Q175698;  
             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.
      
      # Filter for a description containing the text ‘historic settlement’
      ?place schema:description ?settlementDescription.
      FILTER(LANG(?settlementDescription) = "pl")  # Description in Polish
      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!