RDF és SPARQL
Felhasznált anyagok Marcelo Arenas, Claudio Gutierrez, Jorge Peréz: RDF and SPARQL: Database Foundations (bemutató) Claudio Gutierrez, Carlos Hurtado, Alberto O. Mendelzon: Foundations of Semantic Web Databases. PODS Marcelo Arenas, Claudio Gutierrez, Jorge Peréz: Semantics and Complexity of SPARQL. ACM Transactions on Databases SPARQL Query Language for RDF. W3C Recommendation 2008.
RDF RDF (Resource Description Framework), azaz az RDF segítségével világunk entitásaival (általában a weben található erőforrások) kapcsolatosan fogalmazhatunk meg állításokat. W3C Semantic Web Activity „munkacsoport” dolgozta ki, február 14-én lett szabvány. Legalább háromféleképpen lehet reprezentálni: gráfokkal, XML, Notation3 (szintén a W3C vezette be), ehhez szorosan kapcsolódik a Turtle, aminek a jelöléseit részben a SPARQL is használja. A Turtle (Terse RDF Triple Language) az RDF gráfokat tömör formában adhatók meg, számos rövidítéssel és szintaktikai édesítőszerrel. Jó bevezető:
RDF példa (XML) W3Schools Jan Egil Refsnes
Turtle :. :book1 dc:title "SPARQL Tutorial".
RDFS
Reifikáció
Formálisan az RDF… Egy RDF gráf szókészlete: a benne szereplő URI-k és literálok halmaza, univerzuma a szókészlet és az üres pontok h.-nak uniója.
Interpretáció, ekvivalencia
Homomorfizmus RDF gráfok között
Következés (nincs RDF séma) Ha az üres pontok száma rögzített, a probléma P-beli.
Következés RDFS szókészlettel I. Az alábbi gráfok ekvivalensek, mégsem létezik homomorfizmus G 1 -ről G 2 -re, vagy G 3 -ról G 1 -re.
Dedukciós szabályok
Dedukciós rendszer helyes és teljes
RDF gráf lezárása
Példa RDF gráf lezárására
Következés RDFS szókészlettel II.
Az RDF gráfok magja
RDF gráfok normálformája
Redundancia kiküszöbölése
Példa redundancia kiküszöbölésére
Tételek
SPARQL példa Data "SPARQL Tutorial". Query SELECT ?title WHERE { ?title. }
foaf:. _:a foaf:name "Alice". _:b foaf:name "Bob". Query: PREFIX foaf: SELECT ?x ?name WHERE { ?x foaf:name ?name }
ns:. :book1 dc:title "SPARQL Tutorial". :book1 ns:price 42. :book2 dc:title "The Semantic Web". :book2 ns:price 23. Query: PREFIX dc: PREFIX ns: SELECT ?title ?price WHERE { ?x ns:price ?price. FILTER (?price < 30.5) ?x dc:title ?title. }
rdf:. _:a rdf:type foaf:Person. _:a foaf:name "Alice". _:a foaf:mbox. _:b rdf:type foaf:Person. _:b foaf:name "Bob". Query: PREFIX foaf: SELECT ?name ?mbox WHERE { ?x foaf:name ?name. OPTIONAL { ?x foaf:mbox ?mbox } }
ns:. :book1 dc:title "SPARQL Tutorial". :book1 ns:price 42. :book2 dc:title "The Semantic Web". :book2 ns:price 23. Query: PREFIX dc: PREFIX ns: SELECT ?title ?price WHERE { ?x dc:title ?title. OPTIONAL { ?x ns:price ?price. FILTER (?price < 30) } }
dc11:. _:a dc10:title "SPARQL Query Language Tutorial". _:a dc10:creator "Alice". _:b dc11:title "SPARQL Protocol Tutorial". _:b dc11:creator "Bob". _:c dc10:title "SPARQL". _:c dc11:title "SPARQL (updated)". Query: PREFIX dc10: PREFIX dc11: SELECT ?title ?author WHERE { { ?book dc10:title ?title. ?book dc10:creator ?author } UNION { ?book dc11:title ?title. ?book dc11:creator ?author } }
Queries: PREFIX foaf: SELECT ?name FROM WHERE { ?x foaf:name ?name } PREFIX : PREFIX foaf: PREFIX xsd: SELECT ?name WHERE { ?x foaf:name ?name ; :empId ?emp } ORDER BY DESC(?emp) PREFIX foaf: SELECT DISTINCT ?name WHERE { ?x foaf:name ?name }
Queries: PREFIX foaf: SELECT ?name WHERE { ?x foaf:name ?name } ORDER BY ?name LIMIT 5 OFFSET 10 PREFIX foaf: PREFIX vcard: CONSTRUCT { vcard:FN ?name } WHERE { ?x foaf:name ?nam e } PREFIX foaf: ASK { ?x foaf:name "Alice" }
xsd:. _:a foaf:givenName "Alice". _:b foaf:givenName "Bob". _:b dc:date " T04:04:04Z"^^xsd:dateTime. Query: PREFIX foaf: PREFIX dc: PREFIX xsd: SELECT ?name WHERE { ?x foaf:givenName ?givenName. OPTIONAL { ?x dc:date ?date }. FILTER ( bound(?date) ) }
Formalizálás kezdetei
Szintaxis
Leképezések, szemantika
Kompatibilis leképezések
Leképezés halmazok közötti műveletek
Szemantika I.
Szemantika II.
Példák Data:
Eltérések a W3C szabványtól Halmaz szemantika, multihalmaz szemantika helyett.
Kiértékelés, együttes komplexitás
AND, FILTER
AND, FILTER, UNION
AND, FILTER, OPT
AND, UNION, OPT
Kiértékelés, adat komplexitás
Normálforma
Jól-tervezett gráf minták I. „Rosszul tervezett” kérdés:
Jól-tervezett gráf minták II.
Első fontos tulajdonság I. Ha törlünk egy OPT feltételt, azt várjuk, hogy nem nő a a megoldások száma. Ám ez nincs mindig így:
Első fontos tulajdonság II.
Első fontos tulajdonság III.
Második fontos tulajdonság
coNP-teljesség
Optimalizáció I.
Optimalizáció II.
Questions?