Wikipedista:Pastorius/Jemný úvod do SPARQL
„ | Nikdy nemůžete rozumět všemu, přesto byste se měli snažit porozumět principům. | “ |
SPARQL
[editovat | editovat zdroj]SPARQL je programovací jazyk pro vytváření dotazů nad grafovými databázemi. Je to sada příkazů, která umožňuje najít přesně ty informace, které potřebujete. Pokud se naučíte základy SPARQL, budete moci vytvářet mocné vyhledávací příkazy ve wikidatech (a nejen v nich).
Grafová databáze
[editovat | editovat zdroj]Graf je datová struktura skládající se z vrcholů a hran.
Grafové databáze jsou založeny na teorii grafů a používají uzly, hrany a vlastnosti.
Uzly reprezentují entity, jako jsou lidé, firmy, účty nebo jiná položky, která má být sledovány. Jsou zhruba ekvivalentní záznamu, vztahu nebo řádku v relační databázi nebo dokumentu v databázi dokumentů.
Hrany jsou čáry, které spojují uzly s jinými uzly; představují vztah mezi nimi. Hrany jsou klíčovým pojmem v grafových databázích. Představují abstrakci, která není v jiných systémech přímo implementována.
Vlastnosti jsou informace o uzlech. Například pokud by Wikipedia byla jedním z uzlů, mohl by to být spojen s vlastnostmi, jako jsou webové stránky, referenční materiály nebo slova, která začíná písmenem w.
RDF
[editovat | editovat zdroj]Hlavní myšlenkou RDF je k popisovanému zdroji přiřadit výraz ve tvaru podmět – vlastnost – předmět (též subjekt – predikát – objekt). Pro tento výraz se také používá termín trojice.
Jinak řečeno RDF popisuje zdroj, ten má nějaké vlastnosti a tyto vlastnosti mají odpovídající hodnoty. Přičemž podmět definuje, o jaký zdroj se jedná, vlastnost určuje jeho charakter a zároveň vyjadřuje vzájemný vztah mezi podmětem a předmětem.
Konkrétní příklad lze ukázat například na výroku: Obloha má modrou barvu. Po rozložení do trojice pak obloha je podmětem, má barvu vyjadřuje vlastnost a modrou vyjadřuje předmět. V grafické podobě RDF grafu by pak vlastnosti byly jeho hrany, které by byly orientovány od podmětu k předmětu, a ty by tvořily jeho vrcholy.
Wikidata
[editovat | editovat zdroj]- Nové Město na Moravě
- Položka wikidat -> Wikidata / Nové Město na Moravě
- Seznam všech vlastností]
- Entita Qxxxx
- Vlastnosti Pxxxxx
Dotazy
[editovat | editovat zdroj]- Wikidata query service - https://query.wikidata.org/
-
Wikidata stručně
-
Dotazy wikidata stručně
SPARQL
[editovat | editovat zdroj]- property/hodnota wdt:P31 wd:Q5153359.
- entita wd:P31 wd:Q5153359.
001
[editovat | editovat zdroj]# 001 - prvni zamer
#
# SELECT - jaka data chci
SELECT ?clanek
# podle jakych vlastnosti se vybira
WHERE
{
clanek instace "obec v Česku"
}
002
[editovat | editovat zdroj]# 002 - seznam měst v česku
#
# SELECT - jaka data chci
SELECT ?clanek
# podle jakych vlastnosti se vybira
WHERE
{
?clanek wdt:P31 wd:Q15978299
}
003
[editovat | editovat zdroj]#003 - obec v Česku včetně názvu
SELECT ?misto ?mistoLabel
WHERE
{
?misto wdt:P31 wd:Q5153359
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
004
[editovat | editovat zdroj]#003 - obec v Česku včetně názvu a souřadnic
SELECT ?misto ?mistoLabel ?souradnice
WHERE {
?misto wdt:P31 wd:Q5153359.
?misto wdt:P625 ?souradnice
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
LIMIT 20
005
[editovat | editovat zdroj]#005 - obec v Česku včetně názvu a souřadnic
# a bez obrazku - jako mapa
#defaultView:Map
SELECT ?misto ?mistoLabel ?souradnice
WHERE {
?misto wdt:P31 wd:Q5153359 . # obec v Česku
?misto wdt:P625 ?souradnice . # souřadnice
MINUS {
?misto wdt:P18 ?obrazek .
}
}
007
[editovat | editovat zdroj]#007 - obec v Česku včetně názvu a souřadnic
# a bez obrazku - jako mapa
#defaultView:Map
SELECT ?misto ?mistoLabel ?souradnice
WHERE {
?misto wdt:P31 wd:Q5153359 . # obec v Česku
?misto wdt:P625 ?souradnice . # souřadnice
MINUS {
?misto wdt:P18 ?obrazek .
}
}
008
[editovat | editovat zdroj]#008 - obec v Česku včetně názvu a souřadnic
# a bez obrazku - jako mapa
#defaultView:Map
SELECT ?misto ?mistoLabel ?souradnice
WHERE {
?misto wdt:P31 wd:Q5153359 . # obec v Česku
?misto wdt:P625 ?souradnice . # souřadnice
MINUS {
?misto wdt:P18 ?obrazek .
}
}
009
[editovat | editovat zdroj]#009 - obec v Česku včetně názvu a souřadnic
# a bez obrazku - jako mapa
# filtrovani podle okresu
#defaultView:Map
SELECT ?misto ?mistoLabel ?souradnice
WHERE {
?misto wdt:P31 wd:Q5153359 . # obec v Česku
?misto wdt:P625 ?souradnice . # souřadnice
?misto wdt:P131 wd:Q838338
MINUS {
?misto wdt:P18 ?obrazek .
}
}
010
[editovat | editovat zdroj]# 010 -# Mista bez obrazku ve vzdalenosti od 3km od Noveho mesta na Morave
# ktere nemaji obrazek
# nejsou ulici
#defaultView:Map
SELECT ?misto ?mistoLabel ?location ?instanceLabel ?dist
WHERE
{
wd:Q986075 wdt:P625 ?loc .
SERVICE wikibase:around {
?misto wdt:P625 ?location .
bd:serviceParam wikibase:center ?loc .
bd:serviceParam wikibase:radius "3" .
}
OPTIONAL { ?misto wdt:P31 ?instance }
BIND(geof:distance(?loc, ?location) as ?dist)
MINUS {
?misto wdt:P18 ?image .
}
MINUS {
?misto wdt:P31 wd:Q79007
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "cs" }
} ORDER BY ?dist
011
[editovat | editovat zdroj]# Cast obce
# v Cesku
# bez obrazku
SELECT ?city ?cityLabel ?souradnice
WHERE
{
?city wdt:P31 wd:Q123705 .
?city wdt:P17 wd:Q213 .
?city wdt:P625 ?souradnice .
MINUS {
?city wdt:P18 ?obrazek
}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "cs" .
}
}
Prefix
- položky mají prefix wd:
- property mají prefix wdt:
- promenné prefix nemají
Poznámky
[editovat | editovat zdroj]Automatické doplňování CTRL+SPACE
wd:CTRL+SPACE nabídne items wdt:CTRL+SPACE nabídne property
?misto wdt:P31 wd:Q15284 . ?misto wdt:P625 ?souradnice . ?misto wdt:P734 "AAA". vyřazovací podmínka MINUS { ... } podminka nebo { podminka 1 } UNION { podminka 2 } nepoviny udaj datum narozeni do birthplacee OPTIONAL { ?item wdt: P19 ?birthplace } doplnujici podminka FILTER (YEAR(?dateofbirth) > 1950) Omezeni poctu
LIMIT 20