Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

SPARQL – motivace, syntax

Podobné prezentace


Prezentace na téma: "SPARQL – motivace, syntax"— Transkript prezentace:

1 SPARQL – motivace, syntax

2 SPARQL – motivace, syntax
Sémantický web NSWI108 – Sémantizace Webu Ako urobit aby som tieto poznamky videl a na obrazovke neboli 12. SPARQL – motivace, syntax Peter Vojtáš Sémantizace webu SPARQL – motivace, syntax Úvod

3 SPARQL – motivace, syntax
Sémantický web 09-SPARQL-Einfuehrung-Intuition-2009.pdf Ako urobit aby som tieto poznamky videl a na obrazovke neboli Nekomerční rozmnožování (kopírování, reprodukce, reprodukování, rozmnožení, rozšíření) A zpracování těchto folií je povoleno … Sémantizace webu SPARQL – motivace, syntax Úvod

4 SPARQL – motivace, syntax
Sémantický web Obsah Sledujeme německou knížku P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure Semantic Web Grundlagen Springer 2008, ISBN: Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

5 SPARQL – motivace, syntax
Sémantický web Obsah Úvod a motivace Jednoduché SPARQL-dotazy Složitější grafové vzory ve SPARQL Filter ve SPARQL Výstupní formáty ve SPARQL Modifikátory ve SPARQL Shrnutí a výhled Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

6 SPARQL – motivace, syntax
Sémantický web Dotazovací jazyky pro Sémantický web Jak se dostanu k informacím specifikovaným v RDF nebo OWL? Dotazování na informace v RDF(S) - jednoduché splňování - RDF-splňování - RDFS-splňování „Vyplývá nějaký RDF-Graph z daného grafu?“ Dotazování na informace v OWL, logické odvození, „Vyplývá Subclass-vztah z dané OWL-Ontologie?“ „Které instance dané třídy plynou z OWL-Ontologie?“ Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

7 SPARQL – motivace, syntax
Sémantický web Stačí RDF nebo OWL dotazování, nebo ne? Samotné OWL je jako dotazovací jazyk často slabé „Které řetězce v českém jazyce obsahuje ontologie?“ „Které vlastnosti spojují dvě dané individua?“ „Které dvojice osob mají společného rodiče?“ se nedá vyjádřit ani v RDF ani v OWL. Požadavek: Veliká vyjadřovací síla na popis hledaných informací Formátování, ohraničení a manipulace s výsledky Pozn. opouštíme DL bez proměnných Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

8 SPARQL – motivace, syntax
Sémantický web SPARQL SPARQL (vyslov angl. sparkle) je zkratka za SPARQL Protocol And RDF Query Language W3C-Specifikace (od 15. ledna 2008) Dotazovací jazyk pro nalezení instancí v RDF-datech Veliký praktický význam Části SPARQL-Specifikace: Dotazovací jazyk Formát výsledků: prezentace výsledků v XML Dotazovací protokol: přeposílání dotazů a výsledků Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

9 SPARQL – motivace, syntax
Sémantický web Jednoduché SPARQL dotazy Příklad jednoduchého dotazu: PREFIX ex: <http://example.org/> SELECT ?název ?autor WHERE { ?kniha ex:VydanáU <http://springer.com/Verlag> . ?kniha ex:název ?název . ?kniha ex:Autor ?autor . } Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

10 SPARQL – motivace, syntax
Sémantický web Jednoduché SPARQL dotazy - příklad PREFIX ex: <http://example.org/> SELECT ?název ?autor WHERE { ?kniha ex:VydanáU <http://springer.com/Verlag> . ?kniha ex:název ?název . ?kniha ex:Autor ?autor . } WHERE - dotazovací vzorek v Turtle-rdf-Syntaxi Vzorek může obsahovat proměnné (?variable) Zkratky pro URI jsou možné (PREFIX) Výsledek určíme výběrem proměnných v (SELECT) Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

11 SPARQL – motivace, syntax
Sémantický web Výsledek příkladu Příklad RDF Dokumentu (dat): @prefix ex: <http://example.org/> . ex:SemanticWeb ex:vydanáU <http://springer.com/Verlag> ; ex:název "Semantic Web - Grundlagen" ; ex:Autor ex:Hitzler, ex:Krötzsch, ex:Rudolph, ex:Sure . Výsledek dotazu: Tabulka kde každý řádek je jeden výsledek Ako urobit aby som tieto poznamky videl a na obrazovke neboli název Autor "Semantic Web - Grundlagen" Sémantizace webu SPARQL – motivace, syntax Úvod

12 SPARQL – motivace, syntax
Sémantický web Jednoduché grafové vzory Základní dotazovací vzory jsou jednoduché grafové vzory = množiny RDF-Trojic v Turtle-Syntaxi Turtle-zkratky (s použitím , a ;) jsou přípustné Proměnné budou označené ? nebo $ (?variable má rovnaký význam jako $variable) Proměnné jsou přípustné jako Subjekt, Predicate nebo Objekt Přípustné nemusí znamenat čitelné PREFIX ex: <http://example.org/> SELECT $rf456df ?_AIFB WHERE { ?ef3a_3 ex:vydanáU <http://springer.com/Verlag> . ?ef3a_3 ex:název ?rf456df . $ef3a_3 ex:Autor ?_AIFB . } (je sémanticky ekvivalentní předešlému dotazu) Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

13 SPARQL – motivace, syntax
Sémantický web Prázdné uzly Co znamenají prázdné uzly v SPARQL? Prázdné uzly v dotazovacích vzorech: Jsou přípustné jako Subject nebo Object ID libovolné, ale nikdy stejné ID vícekrát v dotazu Chovají se jako proměnné, které není možné vybrat do SELECT Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

14 SPARQL – motivace, syntax
Sémantický web Prázdné uzly Co znamenají prázdné uzly v SPARQL? Prázdné uzly v dotazovacích vzorech: Jsou přípustné jako Subject nebo Object ID libovolné, ale nikdy stejné ID vícekrát v dotazu Chovají se jako proměnné, které není možné vybrat do SELECT Prázdné uzly ve výsledcích: zkratka pro neznámý prvek ID libovolné, může tvořit vazbu na jiné části dotazu Ako urobit aby som tieto poznamky videl a na obrazovke neboli subj hodnota _:a „na" _:b „příklad" subj hodnota _:y „na" _:g „příklad" subj hodnota _:z „na" „příklad" Sémantizace webu SPARQL – motivace, syntax Úvod

15 SPARQL – motivace, syntax
Sémantický web Datové typy @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix ex: <http://example.org/> . ex:bsp1 ex:p "test" . ex:bsp2 ex:p "test"^^xsd:string . ex:bsp3 ex:p . ex:bsp4 ex:p "42"^^xsd:integer . Co dává dotaz s následujícím vzorem? { ?subject <http://example.org/p> "test" . } ex:bsp1 jako jediný výsledek Přesná shoda nad datovými typy je požadovaná, ale zkratky číselných hodnot jsou možné { ?subject <http://example.org/p> 42 . } Datový typ se určí ze syntaktického tvaru buď xsd:integer, xsd:decimal, nebo xsd:double Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

16 SPARQL – motivace, syntax
Sémantický web Seskupování grafových vzorů Jednoduché grafové vzory můžou být seskupovány použitím {. . . } . například: PREFIX ex: <http://example.org/> SELECT ?název ?autor WHERE { { ?kniha ex:vydanáU <http://springer.com/Verlag> ?kniha ex:název ?název . } { } ?kniha ex:Autor ?autor . } Má smysl až při použití složitějších konstrukcí, zde jen vizuálně odděluje. Tento dotaz je ekvivalentní předešlému dotazu z příkladu Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

17 SPARQL – motivace, syntax
Sémantický web Volitelné (nepovinné) vzory Klíčové slovo OPTIONAL dovoluje zadávat nepovinné části vzoru Příklad : { ?buch ex:VerlegtBei <http://springer.com/Verlag> . OPTIONAL { ?buch ex:Titel ?titel . } OPTIONAL { ?buch ex:Autor ?autor . } } Část výsledku nemusí být vázana Ako urobit aby som tieto poznamky videl a na obrazovke neboli Kniha název autor „název1" „název2" „název3" _:a Sémantizace webu SPARQL – motivace, syntax Úvod

18 SPARQL – motivace, syntax
Sémantický web Vzory s alternativou Klíčové slovo UNION dovoluje zadat alternativní části vzoru Příklad: { ?kniha ex:vydanáU <http://springer.com/Verlag> . { ?kniha ex:Autor ?autor . } UNION { ?kniha ex:editor ?autor . } UNION { ?kniha ex:sestavovatel ?autor . } } Výsledek odpovídá sjednocení výsledků splňujících jednu z možností Pozn.: stejné proměnné v částech union se neovlyvňují Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

19 SPARQL – motivace, syntax
Sémantický web Kombinace volitelnosti s alternativou Jak rozumět kombinaci OPTIONAL a UNION? { ?kniha ex:vydanáU <http://springer.com/Verlag> . { ? kniha ex:Autor ?autor . } UNION { ? kniha ex:editor ?autor . } OPTIONAL { ?autor ex:příjmení ?name . } } Sjednocení dvou vzorů s přidaným nepovinným vzorem nebo Sjednocení dvou vzorů, kde ten druhý má nepovinnou část Ptá se na distribuci UNION a OPTIONAL Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

20 SPARQL – motivace, syntax
Sémantický web Kombinace volitelnosti s alternativou Jak rozumět kombinaci OPTIONAL a UNION? { ?buch ex:VerlegtBei <http://springer.com/Verlag> . { ?buch ex:Autor ?autor . } UNION { ?buch ex:Verfasser ?autor . } OPTIONAL { ?autor ex:Nachname ?name . } } Sjednocení dvou vzorů s přidaným nepovinným vzorem nebo Sjednocení dvou vzorů, kde ten druhý má nepovinnou část První interpretace je správná { { ?buch ex:Autor ?autor . } UNION { ?buch ex:Verfasser ?autor . } } OPTIONAL { ?autor ex:Nachname ?name . } Teda defaultní závorkování zleva, nebo UNION má přednost ? Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

21 SPARQL – motivace, syntax
Sémantický web Kombinace volitelnosti s alternativou Obecné pravidlo OPTIONAL se vztahuje vždy na právě jeden (seskupený) vzor vpravo o něj OPTIONAL a UNION mají stejnou prioritu a vztahují se na všechny nalevo stojící výrazy (jsou zleva asociativní) příklad: { {s1 p1 o1} OPTIONAL {s2 p2 o2} UNION {s3 p3 o3} OPTIONAL {s4 p4 o4} OPTIONAL {s5 p5 o5} } Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

22 SPARQL – motivace, syntax
Sémantický web Kombinace volitelnosti s alternativou Obecné pravidlo: OPTIONAL se vztahuje vždy na právě jeden (seskupený) vzor vpravo o něj OPTIONAL a UNION mají stejnou prioritu a vztahují se na všechny nalevo stojící výrazy (jsou zleva asociativní) Příklad: { {s1 p1 o1} OPTIONAL {s2 p2 o2} UNION {s3 p3 o3} OPTIONAL {s4 p4 o4} OPTIONAL {s5 p5 o5} } Znamená { { { { {s1 p1 o1} OPTIONAL {s2 p2 o2} } UNION {s3 p3 o3} } OPTIONAL {s4 p4 o4} } OPTIONAL {s5 p5 o5} Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

23 SPARQL – motivace, syntax
Sémantický web Filtrování výsledků Filtrování výsledků Viz německé slidy, více méně se to shoduje s minulou přednáškou Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

24 SPARQL – motivace, syntax
Sémantický web Formatování výsledků - SELECT prozatím byly všechny výsledky tabulky se sloupci jako Proměnné v SELECT Syntax: SELECT <seznam proměnných> nebo SELECT * Výhoda Jednoduché sekvenčbí zpracování výsledků Nevýhoda Struktura/vztahy mezi Objekty není ve výsledku zřejmá Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

25 SPARQL – motivace, syntax
Sémantický web Formatování výsledků - CONSTRUCT Kódování výsledků ve tvaru RDF-Grafů: výstupní formát CONSTRUCT Syntax: CONSTRUCT <RDF-šablóna v Turtle> PREFIX ex: <http://example.org/> CONSTRUCT { ?person ex:mailbox ? . ?person ex:telefon ?telefon . } WHERE { ?person ex: ? . ?person ex:tel ?telefon . } Výhoda Strukturovaný výsledek se vztahy mezi prvky nevýhoda Sekvenční zpracování je ztíženo Schází podpora pro volné proměnné Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

26 SPARQL – motivace, syntax
Sémantický web Formatování výsledků - CONSTRUCT PREFIX ex: <http://example.org/> CONSTRUCT {_id1 ex: ? . _id1 ex:telefon ?telefon _idl ex:person ?person.} WHERE {?person ex: ? . ?person ex:tel ?telefon.} @prefix ex: <http://example.org/> ex:Gabi ex: ex:Gabi ex: ex: Gabi ex:tel " “. ex: Gabi ex:tel " ". _e ex: ex:telefon " " ; ex:person ex:Gabi. _g ex: ex:telefon " " ; ex:person ex:Gabi. _a ex: _l ex:emai1 Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

27 SPARQL – motivace, syntax
Sémantický web Další výstupní formáty SPARQL SPARQL podpořuje další dva výstupní formáty ASK jenom testuje, zda nějaké výsledky existují, žádné parametry DESCRIBE (informativní) ke každému nalezenému URI dává na výstupu RDF-popis (závislé na aplikaci) Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

28 SPARQL – motivace, syntax
Sémantický web Modifikátory – uspořádání výsledků SELECT ?kniha, ?cena WHERE { ?kniha <http://example.org/Cena> ?cena . } ORDER BY ?cena Uspořádání jako při srovnávacích operátorech FILTER, Uspořádání URI abecedně jako řetězce znaků Pořadí mezi různými druhy prvků: Nevázané proměnné < prázdné uzly < URI < RDF-Literály Ne každá možnost je v specifikaci definovaná Další možné upřesnění: ORDER BY DESC(?cena) ORDER BY ASC(?cena) default ORDER BY DESC(?cena), ?název: hierarchické kriteria uspořádání Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

29 SPARQL – motivace, syntax
Sémantický web LIMIT, OFFSET und DISTINCT Omezení velikosti výstupu: LIMIT: maximální počet výsledků (řádků tabulky) OFFSET: poloha/pozice prvního výsledku SELECT DISTINCT: SELECT DISTINCT ?kniha, ?cena WHERE { ?kniha <http://example.org/Cena> ?cena . } ORDER BY ?cena LIMIT 5 OFFSET 25 LIMIT a OFFSET mají smysl jen s ORDER BY Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

30 SPARQL – motivace, syntax
Sémantický web Kombinace modifikátorů Pořadí zpracování vícero modifikátorů: 1 nejdřív uspořádání podle ORDER BY 2 Odstranění nevybraných proměnných 3 Odstranění vícenásobných výsledků (DISTINCT) 4 Odstranění prvního OFFSET výsledku 5 Odstranění všech výsledků nad LIMIT Uspořádat se dá i podle nevybraných proměnných ORDER BY není relevantní jen pro SELECT Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

31 SPARQL – motivace, syntax
Sémantický web přehled Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

32 SPARQL – motivace, syntax
Sémantický web Otevřené Otevřené otázky Jak je přesně definovaná sémantika SPARQL ? Jak těžká je úplná implementace SPARQL? Jak se můžeme dotazovat nad RDF Schema nebo OWL? Jak jinak to vše navrhnout? Ako urobit aby som tieto poznamky videl a na obrazovke neboli Sémantizace webu SPARQL – motivace, syntax Úvod

33 SPARQL – motivace, syntax
Závěr aaa Sémantizace webu SPARQL – motivace, syntax


Stáhnout ppt "SPARQL – motivace, syntax"

Podobné prezentace


Reklamy Google