SPARQL Sémantika. Peter Vojtáš

Podobné dokumenty
SPARQL Query Language for RDF Motivace Syntax

RDF a RDF Query. Jakub Nerad 1. prosince Nerad () RDF a RDF Query 1. prosince / 16

Logika a logické programování

Od relačních databází k technologiím sémantickému webu

SPARQL teorie, endpointy, pojmenované grafy, web API. 4IZ440 Reprezentace a zpracování znalostí na WWW Josef Petrák

Databáze SQL SELECT. David Hoksza

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Analýza a modelování dat 3. přednáška. Helena Palovská

Operátory ROLLUP a CUBE

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

SPARQL.

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Úvod do databázových systémů

Logické programování

10. Techniky formální verifikace a validace

Logika pro sémantický web

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 10

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Výroková logika. Teoretická informatika Tomáš Foltýnek

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Výroková a predikátová logika - VII

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Formální systém výrokové logiky

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Ukládání a vyhledávání XML dat

Naproti tomu gramatika je vlastně soupis pravidel, jak

Výroková a predikátová logika - III

Profilová část maturitní zkoušky 2013/2014

Databázové systémy úvod

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

8.2 Používání a tvorba databází

Informační systémy ve zdravotnictví. 6. cvičení

teorie logických spojek chápaných jako pravdivostní funkce

PRINCIPY VÁLEÈNÉ CHIRURGIE

PRINCIPY VÁLEÈNÉ CHIRURGIE

RDF API a SPARQL syntaxe, API, příklady. 4IZ440 Reprezentace a zpracování znalostí na WWW Josef Petrák me@jspetrak.name

Multi-dimensional expressions

Výroková a predikátová logika - V

Klauzulární logika. Znalostní báze. Šárka Vavrečková

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Databázové systémy Cvičení 5.3

NPRG030 Programování I, 2010/11

Výroková a predikátová logika - II

Web Information Extraction - extrakce informací z webu

KIV/ZIS cvičení 5. Tomáš Potužák

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Funkcionální programování. Kristýna Kaslová

MBI - technologická realizace modelu

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Ukázka knihy z internetového knihkupectví

Cvičení Aktivita 1. část 2. část 3. část Ústní Celkem Známka

NPRG030 Programování I, 2016/17 1 / :58:13

Výroková a predikátová logika - II

Výroková logika - opakování

Formální sémantika SQL dotazování

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Databáze pro evidenci výrobků

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Profilová část maturitní zkoušky 2017/2018

Úvod do databázových systémů

NSWI108 Sémantizace Webu

Relační model dat (Codd 1970)

Obsah Předmluva Rekapitulace základních pojmů logiky a výrokové logiky Uvedení do predikátové logiky...17

Výroková a predikátová logika - II

Aplikace pro srovna ní cen povinne ho ruc ení

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

DATA CUBE. Mgr. Jiří Helmich

Dotazování v relačním modelu a SQL

Regulární výrazy. Filtry grep, sed a awk.

Umělá inteligence I. Roman Barták, KTIML.

6. blok část B Vnořené dotazy

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

PRG036 Technologie XML

Sémantika predikátové logiky

Databázové systémy BIK-DBS

1 Základní pojmy. 1.1 Množiny

Databáze I. 1. přednáška. Helena Palovská

6. blok část C Množinové operátory

POKROČILÉ POUŽITÍ DATABÁZÍ

ZÁKLADY LOGIKY A METODOLOGIE

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

RELATIONAL DATA ANALYSIS

Analýza a modelování dat. Přednáška 8

Binární logika Osnova kurzu

Stručný obsah. K2118.indd :15:27

Transkript:

SPARQL Sémantika Peter Vojtáš Department of Software Engineering Faculty of Information Technology Czech Technical University in Prague Peter Vojtáš, Jan Dědek, Ivo Lašek Semantic Web MI SWE 2011 Lecture 8 MI POA Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Obsah Sledujeme německou knížku SPARQL Semantik http://semantic-web-grundlagen.de P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure Semantic Web Grundlagen Springer 2008, ISBN: 978-3-540-33993-9 MI-SWE 2011 SPARQL sémantika 2 10-SPARQL-Semantik-2009.pdf

Obsah 1. Úvod a motivace 2. Transformace dotazů v SPARQL do SPARQL algebry 3. Počítání v SPARQL algebře 4. Shrnutí MI-SWE 2011 SPARQL sémantika 3

SPARQL Minulá přednáška: SPARQL jako dotazovací jazyk pro RDF PREFIX ex: <http://example.org/> SELECT?buch,?autor WHERE {?buch ex:verlegtbei <http://springer.com/verlag>.?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? MI-SWE 2011 SPARQL sémantika 4

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 MI-SWE 2011 SPARQL sémantika 5

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? MI-SWE 2011 SPARQL sémantika 6

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 MI-SWE 2011 SPARQL sémantika 7

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 MI-SWE 2011 SPARQL sémantika 8

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 MI-SWE 2011 SPARQL sémantika 9

Transformace dotazů do SPARQL algebry: BGP { BGP(?kniha <http://eg.org/cena>?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha <http://eg.org/nazev?nazev.) } { BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) } UNION { BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) } } První krok: transformace jednoduchých grafových vzorů Operátor BGP Basic Graph Pattern Současně rozepsaní zkráceného URI MI-SWE 2011 SPARQL sémantika 10

Transformace do SPARQL algebry: Union { BGP(?kniha <http://eg.org/cena>?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha <http://eg.org/nazev?nazev.) } { BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) } UNION { BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) } } 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í) MI-SWE 2011 SPARQL sémantika 11

Transformace do SPARQL algebry: Union { BGP(?kniha <http://eg.org/cena>?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha <http://eg.org/nazev?nazev.) } Union({ BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) }, { BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) }) } 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í) MI-SWE 2011 SPARQL sémantika 12

Transformace do SPARQL algebry Join(M1, M2) LeftJoin(M1, M2, F) Filter (F, M) Z konjunktivní spojení M1 a M2 Nepovinné spojení M1 s M2 pod podmínkou F Použití diltrovací podmínky F na M Konstanta pro prázdný výraz MI-SWE 2011 SPARQL sémantika 13

Transformace do SPARQL algebry Join(M1, M2) LeftJoin(M1, M2, F) Filter (F, M) Z konjunktivní spojení M1 a M2 Nepovinné spojení M1 s M2 pod podmínkou F Použití filtrovací podmínky F na M Konstanta 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) MI-SWE 2011 SPARQL sémantika 14

Transformace SPARQL algebry:(left)join, Filter { BGP(?kniha <http://eg.org/cena>?cena.) FILTER (?cena < 15) OPTIONAL { BGP(?kniha <http://eg.org/nazev?nazev.) } Union({ BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) }, { BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) }) } MI-SWE 2011 SPARQL sémantika 15

Transformace SPARQL algebry:(left)join, Filter { BGP(?kniha <http://eg.org/cena>?cena.) FILTER (?cena < 15) OPTIONAL Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) } MI-SWE 2011 SPARQL sémantika 16

Transformace SPARQL algebry:(left)join, Filter { BGP(?kniha <http://eg.org/cena>?cena.) FILTER (?cena < 15) OPTIONAL Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) } MI-SWE 2011 SPARQL sémantika 17

Transformace SPARQL algebry:(left)join, Filter ) FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) MI-SWE 2011 SPARQL sémantika 18

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) MI-SWE 2011 SPARQL sémantika 19

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 MI-SWE 2011 SPARQL sémantika 20

Příklad @prefix ex: <http://example.org/>. @prefix xsd: <http://www.w3.org/2001/xmlschema#>. 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. } } MI-SWE 2011 SPARQL sémantika 21

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) kniha ex:tamburlaine ex:doctorfaustu s MI-SWE 2011 SPARQL sémantika 22

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) kniha ex:macbeth ex:hamlet MI-SWE 2011 SPARQL sémantika 23

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) kniha ex:hamlet ex:macbeth ex:tamburlaine ex:doctorfaustu s MI-SWE 2011 SPARQL sémantika 24

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) kniha cena ex:hamlet ex:tamburlaine ex:doctorfaustus ex:romeojulia "10.50"ˆˆxsd:decimal "17"ˆˆxsd:integer "12"ˆˆxsd:integer "9"ˆˆxsd:integer MI-SWE 2011 SPARQL sémantika 25

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) kniha ex:doctorfaustus nazev "The Tragical History of Doctor Faustus" MI-SWE 2011 SPARQL sémantika 26

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) ex:hamlet kniha cena nazev "10.50"ˆˆxsd:decimal ex:tamburlaine "17"ˆˆxsd:integer ex:doctorfaustus "12"ˆˆxsd:integer "The Tragical History..." ex:romeojulia "9"ˆˆxsd:integer MI-SWE 2011 SPARQL sémantika 27

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) ex:hamlet kniha cena nazev "10.50"ˆˆxsd:decimal ex:tamburlaine "17"ˆˆxsd:integer ex:doctorfaustus "12"ˆˆxsd:integer "The Tragical History..." ex:romeojulia "9"ˆˆxsd:integer MI-SWE 2011 SPARQL sémantika 28

Příklad FILTER ((?cena < 15) Join( LeftJoin( Join(Z, BGP(?kniha <http://eg.org/cena>?cena.)), Join(Z, BGP(?kniha <http://eg.org/nazev?nazev.) ) true ), Union(Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/shakespeare>.) ), Join(Z, BGP(?kniha <http://eg.org/autor> <http://eg.org/marlowe>.) )) ) ) ex:hamlet kniha cena nazev "10.50"ˆˆxsd:decimal ex:tamburlaine "17"ˆˆxsd:integer ex:doctorfaustus "12"ˆˆxsd:integer "The Tragical History..." ex:romeojulia "9"ˆˆxsd:integer MI-SWE 2011 SPARQL sémantika 29