Přeskočit na obsah

SPARQL

Z Wikipedie, otevřené encyklopedie

SPARQL (vysloveno „sparkl“, rekurzivní zkratka pro SPARQL Protocol and RDF Query Language, někdy též vykládáno jako Simple Protocol and RDF Query Language) je sémantický dotazovací jazyk pro data uchovaná ve formátu RDF. Byl standardizován pracovní skupinou DAWG (RDF Data Access Working Group), která je součástí konsorcia W3C, a je uznáván jako klíčová technologie sémantického webu. SPARQL 1.0 se stal konečným doporučením konsorcia (W3C Recommendation) 15. ledna 2008 a SPARQL 1.1 v březnu 2013.

Dotazování ve SPARQL

[editovat | editovat zdroj]

Obecná struktura

[editovat | editovat zdroj]

Ve srovnání s dotazovacími jazyky pro relační databáze, jako je například jazyk SQL, existuje podobnost například u klíčových slov (SELECT, WHERE, FROM). Trojice, základní informační prvek v RDF, se vždy skládá z podmětu, vlastnosti a předmětu (též subjekt – predikát – objekt). Proto se také ve SPARQL skládá dotaz z množiny trojic, kde každý prvek trojice může být proměnná. Skrývá se za tím myšlenka najít shodné trojice z databáze a výsledky k proměnným. Dotaz se provádí nad datovou kolekcí RDF (angl. RDF dataset), což je množina dokumentů RDF patřící pod určitý koncový bod (angl. endpoint). Takovým koncovým bodem je adresa URI, kam mohou být odeslány dotazy a přijímány výsledky přes protokol HTTP [Sequeda, 2011].

Druhy dotazů

[editovat | editovat zdroj]

Pro čtení dat z databáze jazyk SPARQL definuje čtyři různé druhy dotazování pro různé účely.

Dotaz SELECT

[editovat | editovat zdroj]

Vrací výsledek z koncového bodu SPARQL ve tvaru tabulky obsahující pouze výsledná data vyhovující dotazu.

Dotaz CONSTRUCT

[editovat | editovat zdroj]

Vrací výsledek z koncového bodu SPARQL obsahující výsledná data vyhovující dotazu, transformovaná do formátu RDF.

Vrací výsledek ve tvaru true/false (pravda / nepravda), odpovídající volanému dotazu.

Dotaz DESCRIBE

[editovat | editovat zdroj]

Vrací výsledek ve formátu RDF, který popisuje výsledná data vyhovující dotazu. Záleží na konkrétní službě koncového bodu SPARQL, které trojice jsou obsažené ve výsledku. Znamená to tedy, že nevrací data, ale jejich popis.

Příklad používání dotazu SELECT

[editovat | editovat zdroj]

Znázornění jednoduchého dotazu lze provést nad následujícími RDF trojicemi, popisujícími jména a umístění dvou osob. Ukázkovým jmenným prostorem je zde „example“.

subject predicate object
id1 example:name "Sven Svensson"
id1 example:city "Stockholm"
id2 example:name "Petr Petrovič"
id2 example:city "Zagreb"

Dotaz ke zjištění jmen všech osob v databázi má následující formát:

SELECT ?name FROM <example> WHERE { ?x example:name ?name }

Vysvětlení dotazu

[editovat | editovat zdroj]

Dotaz začíná klíčovým slovem SELECT a pokračuje vyjmenováním proměnných, které chce uživatel zobrazit. V tomto případě se jedná o proměnnou ?name. Všechny proměnné začínají otazníkem. Následuje slovo FROM určující URI koncového bodu. Údaje po WHERE, uzavřené v závorkách, představuji vymezení výsledku. V tomto případě je udávána pouze jedna trojice, ve které je podmět a předmět proměnná, přičemž vlastnost je konstantní hodnota name. Při dotazu se tedy porovnávají konstanty v dotazu s hodnotami v databázi. Z výše uvedených trojic, mají dvě example:name jako hodnotu vlastnosti. Z toho vyplývá, že tyto dvě trojice jsou výsledkem dotazu, neboť se shoduji s vymezující podmínkou. Zjednodušený výstup dotazu je následující:

1. ?name = "Sven Svensson"

2. ?name = "Petr Petrovič"

Dotaz může být rozšířen o další trojici v omezujících podmínkách, a to následně:

SELECT ?name FROM <example> WHERE { ?x example:name ?name . ?x example:city "Stockholm" } nebo zkráceně
SELECT ?name FROM <example> WHERE { ?x example:name ?name ; example:city "Stockholm" }

V další trojici jsou obsaženy další dvě konstanty, vlastnost city a podmět "Stockholm". Výsledkem tedy bude:

1. ?name = "Sven Svensson"

V tomto případě je výsledkem pouze jméno Sven Svensson, neboť se shoduje s výše uvedenými podmínkami – je obsažena vlastnost name a město se nazývá "Stockholm".

Veřejné koncové body – SPARQL endpoints

[editovat | editovat zdroj]

Vyhledáním na portálech, jako například datahub.io, lze specifikovat datový zdroj. Zde je také uveden odkaz na koncový bod a domovskou stránku, která je nezbytnou součástí práce se strukturovanými daty. Důvodem je, že se uživatel musí seznámit s datovou strukturou systému stejně jako u relačních databází, kde uživatel musí předem alespoň vědět jaké jsou obsažené tabulky a případně jaké jsou cizí klíče, které propojují dvě či více tabulek.

Podrobnější informace naleznete v článku DBpedia.

Jedná se v současné době o největší datovou kolekci strukturovaných dat v RDF. Snahou komunity DBpedia je extrakce strukturovaných informací z Wikipedie a jejich zpřístupnění na webu. Umožňuje sofistikované dotazování na Wikipedii a spojování různých datových kolekcí na webu s informacemi na Wikipedii. Dále komunita usiluje o inspiraci nových mechanismů pro navigování, spojování a zlepšování encyklopedií.

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]