Přeskočit na obsah

SPARQL/Otázky a odpovědi

Z Wikiverzity
Jak používat klasifikační nálepkuTato stránka je součástí projektu:
Příslušnost: všeobecná

Doplňový studijní nástroj pro seznámení se s SPARQL slouží jako doplnění Vašeho osobního studia. Používá se tak, že si zde zapisujete otázky a sami si k nim na internetu (chatGPT, YouTube, diskusní skupiny) hledáte odpovědi, které pak také zapíšete. V rámci procvičování porozumění danému tématu můžete také zodpovědět otázky, bez odpovědí.

Pokud problematice rozumíte používáte sekci Obecné otázky, v opačném případě zapisujete do sekce Laické otázky a musíte připojit detailní popis, video či fotografie, aby ostatní pochopili o čem mluvíte. Poslední sekce slouží pro související otázky. Někdy je ale výhodnější najít k související otázce stránku, která se daným tématem zabývá. Volbu necháváme na Vás. Má to své výhody i nevýhody.

Obecné otázky

[editovat]

Pokud umíte pojmenovat jednoltivé části a procesy, pak je to otázka obecná a mohou ji zodpovědět i ostatní. Pokud ne, pokračujte do sekce Laické otázky.

Č. Otázka Odpověď Poznámky
OO.1 Jakým způsobem sloučit dvě podmínky?
OO.2 Co označuje PREFIX? Zadává se jim zkratka pro dlouhá URL. Jinak řečeno, místo používání celý url přímo v kódu, se využívá daný prefix.
OO.3 Co označuje SELECT? Klíčové slovo SELECT definuje proměnné, které se budou získávat.
OO.4 Názvy proměnných jsou fixně dané, nebo si je volím sám? Proměnné si uživatel definuje sám. Proměnná začíná otazníkem.
Kdy a na co se používají složené závorky {}?
Jaký typ souboru má koncovku *.owl? Soubor v jazyce owl, tedy Web Ontology Language.
Co označuje SERVICE? Umožňuje volání externích služeb.
Kolik má SPARQL klíčových slov? SPAQL má ? klíčových slov. Některá z nich jsou následující:
  1. SELECT - definuje proměnné, které se budou získávat
  2. WHERE - definuje podmínky dotazu, tedy triplety, které musí být splněny. Kdyby zde byly jen dva dotazy, tak se jedná o logickou konjunkci (and), ale v reálu zde může být dotazů mnoho. Pro ladění dotazu WHERE se dá tedy použít klíčové slovo UNION a tak zjistit, který dotaz nevrací data.
  3. FILTER - aplikuje další podmínky na výsledky dotazu (filter)
  4. OPTIONAL - definuje volitelné části dotazu, tzn. pokud databáze neobsahuje to co hledáme, tak WHERE nevyhodí chybu
  5. UNION - spojuje více poddotazů, tak aby přišly výsledky, které odpovídají alespoň jednomu dotazu. Odpovídá logické disjunkci (or).
  6. ORDER BY - seřazuje výsledky podle jedné, nebo více proměnných
  7. LIMIT - omezuje počet výsledků, které budou vráceny
  8. OFFSET - definuje od jakého řádku mají být výsledky zobrazeny. V praxi se využívá pro stránkování. Například pokud má být na stránce vytištěno jen 10 bibliografických záznamů, tak se několikrát použí ten samý hledací kód, a pod něj se vždy uvede jiná hodnota OFFSET, od které jsou výsledky počítány. Tzn. LIMIT 10 OFFSET 0 je prvních 10 řádek, LIMIT 10 OFFSET 10 je druhých 10 řádek, protože se jde od pozice 10.
  9. DESCRIBE - vytvoří RDF graf
  10. ASK - vrací booleovské hodnoty true/false podle toho, jestli existuje výsledek dotazu. Je to tak další způsob jak testovat triplety, jestli vrací nějakou hodnotu. Bohužel se ale musí testovat každý triplet zvlášť.
  11. GRAPH -
  12. BIND
  13. SERVICE
  14. WITH
  15. USING
  16. PREFIX
  17. BASE
  18. HAVING
  19. CONSTRUCT
  20. FROM
  21. NAMED
Jak fungují triplety?
Existují ve SPARQL komentáře, tzn. neinterpretované řetězce? Ano. Jednořádkové komentáře začínají mřížkou (#), víceřádkové komentáře se balí do značek /* a */.
Co je to RDF graf? RDF graf jsou data uspořádaná podle standardu RDF.

Laické otázky

[editovat]

Pokud neumíte pojmenovat jednotlivé části, nebo procesy, jedná se o laickou otázku a je potřeba připojit obrázky, schémata, nebo videa a vše dokonale popsat, aby ostatní pochopili o čem mluvíte.

Č. Otázka Upřesnění, fotografie, video Odpověď Poznámky Oborově srozumitelná varianta otázky
LO.1 Používá se SPARQL i jinde, než u Wikidat? Ano, například u Europeany. Ta používá vlastní datový model Europeana Data Model (EDM), triplestore (databázový systém pro RDF data) používá Virtuoso (databázový systém, který umí SQL i RDF).
LO.2
LO.3

Související otázky

[editovat]

Otázky, které se netýkají hlavního předmětu, ale souvisí s ním. Zvažte zapsání dotazu a odpovědi na stránku, která je tématu bližší (seznam dostupných témat).

Č. Otázka Detailní popis, fotografie, video Odpověď Poznámky
SO.1 Jaké jsou neznámější triplestory?
  • Virtuoso - podporuje RDF i SQL (bud jedno, nebo oba modely naráz), vysoce výkoný (správa velkých datových sad), komerční, má ale i opensource variantu nazvanou OpenLink Virtuoso
  • Jena TDB - opensource triplestore kombinovaný s java aplikacemi
  • Blazegraph (dříve Bigdata) - opensource, vysoce výkoný a tudíž vhodný pro velké datové sady, na Blazegraphu jede Wikibase
  • GraphDB - komerční
  • AllegroGraph - komerční
  • RDF4J - opensource v Javě
Zde je potřeba zmínit, že rozšíření Wikibase ukládá data vždy v databázi SQL, takže data lze těžit i dotazováním přes SQL. Pokud chceme data těžit i přes SPARQL, musíme si nainstalovat Blazegraph triplestore. Wikibase pak do něj bude data z SQL databáze zrcadlit, takže vlastně bude používat databáze dvě. Nevýhodou dotazování přes SQL pak může být třeba to, že nejde využít knihoven spojených s Query Service a zobrazit výsledky třeba rovnou do mapy.
SO.2
SO.3