SPARQL examples: Difference between revisions

From Dariah-Lab
Jump to navigation Jump to search
No edit summary
No edit summary
Line 267: Line 267:
</syntaxhighlight>
</syntaxhighlight>
[https://wikihum.lab.dariah.pl/wdqs/#%23defaultView%3ABarChart%0ASELECT%20%3FcenturyRoman%20%28COUNT%28%2a%29%20AS%20%3Fcount%29%0AWHERE%20%7B%0A%20%20%3Fperson%20wdt%3AP27%20wd%3AQ5%3B%0A%20%20%20%20%20%20%20%20%20%20wdt%3AP11%20%3FbirthDate%20.%0A%0A%20%20%23%20Obliczenie%20stulecia%20na%20podstawie%20roku%20urodzenia%0A%20%20BIND%28CEIL%28%28YEAR%28%3FbirthDate%29%20-%201%29%20%2F%20100%29%20AS%20%3Fcentury%29%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fcentury%20%3D%2010%2C%20%22X%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2011%2C%20%22XI%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2012%2C%20%22XII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2013%2C%20%22XIII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2014%2C%20%22XIV%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2015%2C%20%22XV%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2016%2C%20%22XVI%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2017%2C%20%22XVII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2018%2C%20%22XVIII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2019%2C%20%22XIX%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2020%2C%20%22XX%22%2C%0A%20%20%20%20%22%22%29%29%29%29%29%29%29%29%29%29%29%20AS%20%3FcenturyRoman%29.%0A%20%20%23%20odfiltrowanie%20b%C5%82%C4%99dnych%20danych%20%0A%20%20FILTER%28%3Fcentury%20%3E%3D%2010%20%26%26%20%3Fcentury%20%3C%2021%29%0A%7D%0AGROUP%20BY%20%3FcenturyRoman%0AORDER%20BY%20%3Fcount Try It!]
[https://wikihum.lab.dariah.pl/wdqs/#%23defaultView%3ABarChart%0ASELECT%20%3FcenturyRoman%20%28COUNT%28%2a%29%20AS%20%3Fcount%29%0AWHERE%20%7B%0A%20%20%3Fperson%20wdt%3AP27%20wd%3AQ5%3B%0A%20%20%20%20%20%20%20%20%20%20wdt%3AP11%20%3FbirthDate%20.%0A%0A%20%20%23%20Obliczenie%20stulecia%20na%20podstawie%20roku%20urodzenia%0A%20%20BIND%28CEIL%28%28YEAR%28%3FbirthDate%29%20-%201%29%20%2F%20100%29%20AS%20%3Fcentury%29%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fcentury%20%3D%2010%2C%20%22X%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2011%2C%20%22XI%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2012%2C%20%22XII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2013%2C%20%22XIII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2014%2C%20%22XIV%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2015%2C%20%22XV%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2016%2C%20%22XVI%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2017%2C%20%22XVII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2018%2C%20%22XVIII%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2019%2C%20%22XIX%22%2C%0A%20%20%20%20IF%28%3Fcentury%20%3D%2020%2C%20%22XX%22%2C%0A%20%20%20%20%22%22%29%29%29%29%29%29%29%29%29%29%29%20AS%20%3FcenturyRoman%29.%0A%20%20%23%20odfiltrowanie%20b%C5%82%C4%99dnych%20danych%20%0A%20%20FILTER%28%3Fcentury%20%3E%3D%2010%20%26%26%20%3Fcentury%20%3C%2021%29%0A%7D%0AGROUP%20BY%20%3FcenturyRoman%0AORDER%20BY%20%3Fcount Try It!]
=== Sobiescy urodzeni w XVI i XVII wieku ===
<syntaxhighlight lang="SPARQL" class="mw-highlight-lang-sparql">
title:Sobiescy urodzeni w XVI i XVII wieku
#defaultView:Timeline
SELECT DISTINCT ?person (MAX(?personLabel) as ?label) (MAX(?birthDate) as ?bdate) (MAX(?deathDate) as ?ddate) 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
</syntaxhighlight>
[https://wikihum.lab.dariah.pl/wdqs/#SELECT%20DISTINCT%20%3Fperson%20%28MAX%28%3FpersonLabel%29%20as%20%3Flabel%29%20%28MAX%28%3FbirthDate%29%20as%20%3Fbdate%29%20%28MAX%28%3FdeathDate%29%20as%20%3Fddate%29%20WHERE%20%7B%0A%20%20%23%20Warunek%20dla%20os%C3%B3b%0A%20%20%3Fperson%20wdt%3AP27%20wd%3AQ5.%0A%20%20%3Fperson%20rdfs%3Alabel%20%3FpersonLabel.%0A%0A%20%20%23%20Pobieranie%20daty%20urodzenia%20%0A%20%20%3Fperson%20p%3AP11%20%3FbirthStatement.%0A%20%20%3FbirthStatement%20ps%3AP11%20%3FbirthDate.%0A%20%20%0A%20%20%23%20Pobieranie%20daty%20%C5%9Bmierci%0A%20%20%3Fperson%20p%3AP12%20%3FdeathStatement.%0A%20%20%3FdeathStatement%20ps%3AP12%20%3FdeathDate.%0A%20%20%0A%20%20%23%20filtrowanie%20daty%20urodzin%3A%20przedzia%C5%82%201501-1700%20oraz%20nazwisko%20%22sobieski%22%20w%20etykiecie%0A%20%20FILTER%28CONTAINS%28LCASE%28%3FpersonLabel%29%2C%20%22sobieski%22%29%20%26%26%20%3FbirthDate%20%3E%3D%20%221501-01-01T00%3A00%3A00Z%22%5E%5Exsd%3AdateTime%20%26%26%20%3FbirthDate%20%3C%3D%20%221700-12-31T23%3A59%3A59Z%22%5E%5Exsd%3AdateTime%29%0A%0A%7D%20GROUP%20BY%20%3Fperson%0AORDER%20BY%20%3FpersonLabel Try It!]

Revision as of 18:27, 25 August 2024

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


Miejscowości, które w XVI wieku pełniły funkcję stolicy powiatu

#title:Miejscowości, które w XVI wieku pełniły funkcję stolicy powiatu
#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!

Miejscowości, które w XVI wieku były miejscami odbywania sejmiku partykularnego

#title:Miejscowości, które w XVI wieku były miejscami odbywania sejmiku partykularnego
#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". }
  }

Try It!

Miejscowości, które w XVI wieku były miastami a obecnie są wsiami

#title:Miejscowości, które w XVI wieku były miastami a obecnie są wsiami
#defaultView:Map
SELECT ?settlement ?settlementLabel ?coordinate16thCentury WHERE {
  # Warunek dla miejscowości
  ?settlement wdt:P27 wd:Q175698.

  # Miejscowość była miastem w XVI wieku
  ?settlement p:P62 ?cityStatement.
  ?cityStatement ps:P62 wd:Q622;
                 pq:P40 ?pointInTime16thCentury.
  FILTER(YEAR(?pointInTime16thCentury) > 1500 && YEAR(?pointInTime16thCentury) <= 1600)

  # Miejscowość jest wsią w roku 2022
  ?settlement p:P62 ?villageStatement.
  ?villageStatement ps:P62 wd:Q653;
                    pq:P40 ?pointInTime2022.
  FILTER(YEAR(?pointInTime2022) = 2022)

  # Pobieranie współrzędnych z XVI wieku
  ?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!

Osady historyczne z XVI wieku

#title:Miejscowości, które istniały w XVI wieku lecz nie istnieją współcześnie
#defaultView:Map
SELECT ?settlement ?settlementLabel ?settlementDescription ?coordinate16thCentury WHERE {
  # Warunek dla elementów będących osadami
  ?settlement wdt:P27 wd:Q175698.

  # Filtr na opis zawierający tekst "osada historyczna"
  ?settlement schema:description ?settlementDescription.
  FILTER(CONTAINS(LCASE(?settlementDescription), "osada historyczna"))
  
  # Pobieranie współrzędnych z XVI wieku
  ?settlement p:P63 ?coordStatement.
  ?coordStatement ps:P63 ?coordinate16thCentury;
                 pq:P40 ?coordTime.
  FILTER(YEAR(?coordTime) > 1500 && YEAR(?coordTime) <= 1600)

  # Usługa pobierania etykiet i opisów w odpowiednim języku
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],pl". }
}

Try It!

Osoby urodzone w XVI wieku

#title: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

#title: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

#title: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

#title:Miejscowości które w XVI wieku były miastami
#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(?personLabel) as ?label) (MAX(?birthDate) as ?bdate) (MAX(?deathDate) as ?ddate) 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!