1 / 33

SPARQL – motivace, syntax

SPARQL – motivace, syntax. NSWI108 – Sémantizace Webu. 12 . SPARQL – motivace, syntax. Peter Vojtáš. 09-SPARQL-Einfuehrung-Intuition-2009.pdf. Nekomer ční rozmnožování (kopírování, reprodukce, reprodukování, rozmnožení, rozšíření)

nola
Download Presentation

SPARQL – motivace, syntax

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPARQL – motivace, syntax

  2. NSWI108 – Sémantizace Webu 12. SPARQL – motivace, syntax Peter Vojtáš SPARQL – motivace, syntax

  3. 09-SPARQL-Einfuehrung-Intuition-2009.pdf Nekomerční rozmnožování (kopírování, reprodukce, reprodukování, rozmnožení, rozšíření) A zpracování těchto folií je povoleno … SPARQL – motivace, syntax

  4. Obsah Sledujeme německou knížku P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure Semantic Web GrundlagenSpringer 2008, ISBN: 978-3-540-33993-9 SPARQL – motivace, syntax

  5. 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 SPARQL – motivace, syntax

  6. 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-vztahz dané OWL-Ontologie?“ „Kteréinstance danétřídyplynou z OWL-Ontologie?“ SPARQL – motivace, syntax

  7. 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 SPARQL – motivace, syntax

  8. 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ů SPARQL – motivace, syntax

  9. 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 . } SPARQL – motivace, syntax

  10. 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) SPARQL – motivace, syntax

  11. 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 SPARQL – motivace, syntax

  12. 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) SPARQL – motivace, syntax

  13. 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 SPARQL – motivace, syntax

  14. 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 SPARQL – motivace, syntax

  15. 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 "test"@de . 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 SPARQL – motivace, syntax

  16. 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 SPARQL – motivace, syntax

  17. 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 SPARQL – motivace, syntax

  18. 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í SPARQL – motivace, syntax

  19. 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 SPARQL – motivace, syntax

  20. 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:VerlegtBei <http://springer.com/Verlag> . { { ?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 ? SPARQL – motivace, syntax

  21. 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} } SPARQL – motivace, syntax

  22. 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} } SPARQL – motivace, syntax

  23. Filtrování výsledků Filtrování výsledků Viz německé slidy, více méně se to shoduje s minulou přednáškou SPARQL – motivace, syntax

  24. 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á SPARQL – motivace, syntax

  25. 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 ?email . ?person ex:telefon ?telefon . } WHERE { ?person ex:email ?email . ?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é SPARQL – motivace, syntax

  26. Formatování výsledků - CONSTRUCT PREFIX ex: <http://example.org/> CONSTRUCT {_id1 ex:email ?email. _id1 ex:telefon ?telefon _idl ex:person ?person.} WHERE {?person ex:email ?email. ?person ex:tel ?telefon.} @prefix ex: <http://example.org/> ex:Gabi ex:email gabi@example.org. ex:Gabi ex:email "g.mueller@example.org". ex: Gabi ex:tel "123456789“. ex: Gabi ex:tel "987654321". _e ex:email "gabi@example.org"; ex:telefon "123456789" ; ex:person ex:Gabi. _g ex:email "gabi@example.org"; ex:telefon "987654321" ; ex:person ex:Gabi. _a ex:email "g.mueller@example.org"; ex:telefon "123456789" ; ex:person ex:Gabi. _l ex:emai1 "g.mueller@example.org"; ex:telefon "987654321" ; ex:person ex:Gabi. SPARQL – motivace, syntax

  27. 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) SPARQL – motivace, syntax

  28. 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í SPARQL – motivace, syntax

  29. 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 SPARQL – motivace, syntax

  30. 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 SPARQL – motivace, syntax

  31. přehled SPARQL – motivace, syntax

  32. 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? SPARQL – motivace, syntax

  33. Závěr aaa SPARQL – motivace, syntax

More Related