SPARQL – Sémantika. Sémantizace webuSPARQL – sémantika2 NSWI108 – Sémantizace Webu Peter Vojtáš 13. SPARQL – sémantika.

Slides:



Advertisements
Podobné prezentace
Deduktivní soustava výrokové logiky
Advertisements

DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK Odpřednášeno
Dynamické systémy.
Aplikační a programové vybavení
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Programovací jazyk Prolog
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Temporální databáze a TSQL
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
Dotazovací jazyk pro setříděná data Tereza Cihelková, Matěj Klonfar.
PRÉCIS OD NESTRUKTUROVANÝCH KLÍČOVÝCH SLOV JAKO DOTAZŮ K STRUKTUROVANÝM DATABÁZÍM JAKO ODPOVĚDÍM Martin Lacina.
Úvod do Teorie množin.
DOK.
Databáze Jiří Kalousek.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
LOGICKÉ ŘÍZENÍ GEORGE BOOLE
Formální axiomatické teorie Teorie relací a funkcí.
Fakulta elektrotechniky a informatiky
Relační databáze.
1IT D OTAZOVACÍ JAZYKY V RELAČNÍCH DATABÁZÍCH Ing. Jiří Šilhán.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Sémantizace Webu 3. RDF Peter Vojtáš.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Predikátová logika.
Bc. Martin Dostal. Co to je sémantické vyhledávání? Vyhledávání s využitím "umělé inteligence" Vyhledávání v množině dat na stejné téma katastrofy sport.
Úvod do MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
SPARQL – motivace, syntax
Milan Kryl(c) 2004 MFF UK Databáze Caché NLS national language settings.
DS_Unc1 Relace, ohodnocená relace, fuzzy odvozování Relace a ohodnocené relace jako nástroj pro popis závislostí Max-min princip Princip rozšíření Odvozování.
(Java) RDF APIs Jan Zemánek KIZI VŠE, Praha. Přehled Java RDF APIs Jena Download
Programovací jazyk Haskell doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Databázové modelování
Access Vysvětlení pojmu databáze - 01
RDF a RQL Roman Krejčík. RDF a RQL RDF – Resource Description Framework –Jazyk pro ukládání informací v XML –RDF Schema RQL – RDF Query Language –Dotazování.
Formalní axiomatické teorie
Aplikační a programové vybavení
Databázové systémy Informatika pro ekonomy, př. 18.
MATEMATIKA Obsah přednášky Funkce. 3. Limita funkce
Databázové systémy SQL Výběr dat.
Infrastruktura pro dotazování nad sémantickými daty Jiří Dokulil, Jakub Yaghob, Filip Zavoral Katedra softwarového inženýrství, MFF UK Praha
Sémantizace Webu 4. RDFS Peter Vojtáš.
Kvantitativní metody výzkumu v praxi
Predikátová logika1 Predikátová logika 1. řádu Teď „logika naostro“ !
DATABÁZE.
Databáze MS ACCESS 2010.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Dobývání znalostí z databází znalosti
Analýza výsledků v modelech lineárního programování
MATEMATIKA Obsah přednášky. Opakování, motivační příklady Funkce.
Databázové systémy a SQL
Informatika pro ekonomy přednáška 8
Databázové systémy a SQL
A5M33IZS – Informační a znalostní systémy
Optimalizace SQL dotazů
Programovací jazyk Haskell
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Transkript prezentace:

SPARQL – Sémantika

Sémantizace webuSPARQL – sémantika2 NSWI108 – Sémantizace Webu Peter Vojtáš 13. SPARQL – sémantika

Sémantizace webuSPARQL – sémantika3 10-SPARQL-Semantik-2009.pdf

Sémantizace webuSPARQL – sémantika4 Obsah Sledujeme německou knížkuknížku P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure Semantic Web Grundlagen Springer 2008, ISBN:

Sémantizace webuSPARQL – sémantika5 Obsah 1. Úvod a motivace 2. Transformace dotazů v SPARQL do SPARQL algebry 3. Počítání v SPARQL algebře 4. Shrnutí

Sémantizace webuSPARQL – sémantika6 SPARQL Minulá přednáška: SPARQL jako dotazovací jazyk pro RDF PREFIX ex: SELECT ?buch, ?autor WHERE { ?buch ex:VerlegtBei. ?buch ex:Preis ?preis. ?buch ex:Autor ?autor FILTER (?preis < 35) } ORDER BY ?preis LIMIT 10 Charakteristika SPARQL: jednoduché, nepovinné a alternativní grafové vzory Filter Výstupní formáty (SELECT, CONSTRUCT,... ) Modifikátory (ORDER BY, LIMIT,... ) Pro tuto přednášku zbylo zodpovědět otázku: Jak je přesně definovaná sémantika SPARQL?

Sémantizace webuSPARQL – sémantika7 K čemu sémantika Zatím neformální představení SPARQL (my jsme měli článek čilanů) Použivatel: „které odpovědi můžu očekávat na můj dotaz?“ Vývojář: „Jak se bude chovat moje SPARQL implementace?“ Výrobce: „Je můj produkt v souladu se SPARQL?“ Formální sémantika snad do toho vnese více světla

Sémantizace webuSPARQL – sémantika8 Sémantika dotazovacích jazyků Sémantika formální logiky: Modelově teoretická sémantika: které interpretace splňují znalostní bázi důkazově teoretická sémantika: které důkazy (odvození) z dané znalostní báze jsou přípustné?... Sémantika programovacích jazyků: Axiomatická sémantika: která logická tvrzení jsou pravdivá pro daný program? Operační sémantika: jak vypadá běh daného programu? Denotační sémantika: jak lze daný programm reprezentovat jako funkci vstup-výstup? Co teď s dotazovacím jazykem?

Sémantizace webuSPARQL – sémantika9 Sémantika dotazovacích jazyků Sémantika dotazovacích jazyků: Dotaz jako splňování (query entailment) dotaz jako popis přípustných výsledků databáze jako množina logických předpokladů (teorie) odpověď na dotaz jako logické odvození Např.: OWL DL a RDF(S) jako dotazovací jazyky, konjunktivní dotazy Dotazovací algebra dotaz jako popis výpočtu výsledků databáze jako vstup odpověď jako výstup Např.: relační algebra pro SQL, SPARQL-algebra

Sémantizace webuSPARQL – sémantika10 Transformace dotazů do SPARQL algebry { ?kniha ex:Cena ?cena. FILTER (?cena < 15) OPTIONAL { ?kniha ex:Nazev ?nazev. } { ?kniha ex:Autor ex:Shakespeare. } UNION { ?kniha ex:Autor ex:Marlowe. } } Sémantika SPARQL-ovského dotazu: 1. Transformace dotazu do algebraického výrazu 2. Spočítání výsledku tohoto výrazu

Sémantizace webuSPARQL – sémantika11 Transformace dotazů do SPARQL algebry: BGP { ?kniha ex:Cena ?cena. FILTER (?cena < 15) OPTIONAL { ?kniha ex:Nazev ?nazev. } { ?kniha ex:Autor ex:Shakespeare. } UNION { ?kniha ex:Autor ex:Marlowe. } } První krok: transformace jednoduchých grafových vzorů Operátor BGP Basic Graph Pattern Současně rozepsaní zkráceného URI

Sémantizace webuSPARQL – sémantika12 Transformace dotazů do SPARQL algebry: BGP { BGP(?kniha ?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha < ?nazev.) } { BGP(?kniha.) } UNION { BGP(?kniha.) } } První krok: transformace jednoduchých grafových vzorů Operátor BGP Basic Graph Pattern Současně rozepsaní zkráceného URI

Sémantizace webuSPARQL – sémantika13 Transformace do SPARQL algebry: Union { BGP(?kniha ?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha < ?nazev.) } { BGP(?kniha.) } UNION { BGP(?kniha.) } } Druhý krok: skládání alternativních grafových vzorů Operátor Union vztahuje se na UNION {} ohraničené grafové vzory UNION ( váže silněji než konjunkce) Uzávorkování vícero alternativ jako v minulé přednášce (zleva asociativní)

Sémantizace webuSPARQL – sémantika14 Transformace do SPARQL algebry: Union { BGP(?kniha ?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha < ?nazev.) } Union({ BGP(?kniha.) }, { BGP(?kniha.) }) } Druhý krok: skládání alternativních grafových vzorů Operátor Union vztahuje se na UNION {} ohraničené grafové vzory UNION ( váže silněji než konjunkce) Uzávorkování vícero alternativ jako v minulé přednášce (zleva asociativní)

Sémantizace webuSPARQL – sémantika15 Transformace do SPARQL algebry Join(M1, M2)konjunktivní spojení M1 a M2 LeftJoin(M1, M2, F)Nepovinné spojení M1 s M2 pod podmínkou F Filter (F, M)Použití diltrovací podmínky F na M ZKonstanta pro prázdný výraz

Sémantizace webuSPARQL – sémantika16 Transformace do SPARQL algebry Join(M1, M2)konjunktivní spojení M1 a M2 LeftJoin(M1, M2, F)Nepovinné spojení M1 s M2 pod podmínkou F Filter (F, M)Použití filtrovací podmínky F na M ZKonstanta pro prázdný výraz Trasformace se vykonává postupně zevnitř ven: 1.Zvol nejaký „nejvnitřnější“ grafový vzor M; 2.Odstraň filtrovací podmínky z M; GF := konjunkce filtrovacích podmínek 3. Inicializuj G := Z, a zpracuj všechny podvýrazy UA následovně: a. pokud UA = OPTIONAL Filter(F, A): G := LeftJoin(G, A, F) b. jinak, pokud UA = OPTIONAL A: G := LeftJoin(G, A, true) c. jinak: G := Join(G,UA) 4. pokud GF je neprázdné: G := Filter(GF,G)

Sémantizace webuSPARQL – sémantika17 Transformace SPARQL algebry:(Left)Join, Filter { BGP(?kniha ?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha < ?nazev.) } Union({ BGP(?kniha.) }, { BGP(?kniha.) }) }

Sémantizace webuSPARQL – sémantika18 Transformace SPARQL algebry:(Left)Join, Filter { BGP(?kniha ?cena.) FILTER (?cena < 15) OPTIONAL Join(Z, BGP(?kniha < ?nazev.) ) Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) }

Sémantizace webuSPARQL – sémantika19 Transformace SPARQL algebry:(Left)Join, Filter { BGP(?kniha ?cena.) FILTER (?cena < 15) OPTIONAL Join(Z, BGP(?kniha < ?nazev.) ) Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) }

Sémantizace webuSPARQL – sémantika20 Transformace SPARQL algebry:(Left)Join, Filter FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) )

Sémantizace webuSPARQL – sémantika21 Transformace SPARQL algebry Modifikátory G := OrderBy(G, zadaní uspořádání) G := Slice(G, o, l) ořeže výsledkovou listinu na interval délky l od pozice o, pokud bylo použito „OFFSET o“ a „LIMIT l“ G := Project(G, seznam proměnných) pokud to bylo v SELECT G:=Distinct(G) …

Sémantizace webuSPARQL – sémantika22 Definice operací SPARQL algebry Jak jsou definovány operace SPARQL-algebry? Výstup: „tabulka výsledků“ (formátování nehraje roli) vstup: dotazovaná RDF-Databáze Částečné výsledky podvýrazů Rozličné parametry podle operace Prázdný výraz Z? Výsledek právě jeden (funkce s prázdným oborem hodnot) „tabulka s jedním řádkem ale žádnými sloupci“ Více předminulá přednáška

Sémantizace webuSPARQL – sémantika23 xsd:. ex:Hamlet ex:Autor ex:Shakespeare ; ex:Preis "10.50"^^xsd:decimal. ex:Macbeth ex:Autor ex:Shakespeare. ex:Tamburlaine ex:Autor ex:Marlowe ; ex:Preis "17"^^xsd:integer. ex:DoctorFaustus ex:Autor ex:Marlowe ; ex:Preis "12"^^xsd:integer ; ex:Titel "The Tragical History of Doctor Faustus". ex:RomeoJulia ex:Autor ex:Brooke ; ex:Preis "9"^^xsd:integer. { ?kniha ex:Cena ?cena. FILTER (?cena < 15) OPTIONAL { ?kniha ex:Nazev ?nazev. } { ?kniha ex:Autor ex:Shakespeare. } UNION { ?kniha ex:Autor ex:Marlowe. } }

Sémantizace webuSPARQL – sémantika24 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) kniha ex:Tamburlaine ex:DoctorFaustus

Sémantizace webuSPARQL – sémantika25 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) kniha ex:Macbeth ex:Hamlet

Sémantizace webuSPARQL – sémantika26 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) kniha ex:Hamlet ex:Macbeth ex:Tamburlaine ex:DoctorFaustus

Sémantizace webuSPARQL – sémantika27 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) knihacena ex:Hamlet"10.50"ˆˆxsd:decimal ex:Tamburlaine"17"ˆˆxsd:integer ex:DoctorFaustus"12"ˆˆxsd:integer ex:RomeoJulia"9"ˆˆxsd:integer

Sémantizace webuSPARQL – sémantika28 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) knihanazev ex:DoctorFaustus"The Tragical History of Doctor Faustus"

Sémantizace webuSPARQL – sémantika29 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) knihacenanazev ex:Hamlet"10.50"ˆˆxsd:decimal ex:Tamburlaine"17"ˆˆxsd:integer ex:DoctorFaustus"12"ˆˆxsd:integer"The Tragical History..." ex:RomeoJulia"9"ˆˆxsd:integer

Sémantizace webuSPARQL – sémantika30 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) knihacenanazev ex:Hamlet"10.50"ˆˆxsd:decimal ex:Tamburlaine"17"ˆˆxsd:integer ex:DoctorFaustus"12"ˆˆxsd:integer"The Tragical History..." ex:RomeoJulia"9"ˆˆxsd:integer

Sémantizace webuSPARQL – sémantika31 Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha ?cena.)), Join(Z, BGP(?kniha < ?nazev.) ) true ), Union(Join(Z, BGP(?kniha.) ), Join(Z, BGP(?kniha.) )) ) ) knihacenanazev ex:Hamlet"10.50"ˆˆxsd:decimal ex:Tamburlaine"17"ˆˆxsd:integer ex:DoctorFaustus"12"ˆˆxsd:integer"The Tragical History..." ex:RomeoJulia"9"ˆˆxsd:integer

Sémantizace webuSPARQL – sémantika32 Závěr aaa