Dotazovací jazyk pro RDF

Slides:



Advertisements
Podobné prezentace
Tvorba WWW stránek ÚVOD
Advertisements

Základy jazyka SQL Jan Tichava
CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004
Rozšíření systému pro zátěžové testy o SOAP a agenty Zbyněk Pyšný.
Jazyk HTML Název školyZákladní škola a Mateřská škola Tatenice Číslo projektuCZ Název šablony klíčové aktivity Inovace a zkvalitnění výuky pomocí.
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
SAS Jan Blaťák Laboratoř vyhledávání znalostí Fakulta informatiky Masarykova Univerzita, Brno
SEMANTICKÝ WEB. Semantický Web WWW – Tim Berners-Lee, CERN, univerzum propojených HTML stránek, prostor hyperlinkovaných dokumentů – Informace jsou zobrazeny.
Informatika pro ekonomy II přednáška 11
PHP – vkládání souborů a html 5
Object Query Language (OQL)
XML, RDF a Dublin Core Petr Žabička
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.
Radek Špinka Přepínače MSSQL výběr.
1IT T ŘI PILÍŘE WEBU Ing. Jiří Šilhán. T ŘI PILÍŘE WWW WWW využívá počítačovou architekturu Klient/server, uživatel musí mít nainstalován prohlížeč, který.
Systémy pro zpřístupňování eVŠKP 2008, Brno Ing. Jan Mach, CIKS Vysoká škola ekonomická v Praze Přenos VŠKP pomocí protokolu OAI-PMH.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
(nejen) pro sémantický web Alena Lukasová
VY_32_INOVACE_4.3.IVT1.01/Ku Základní pojmy Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Pavla Kubínková CZ.1.07/1.5.00/
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
VY_32_INOVACE_4.3.IVT1.10/Ku Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Pavla Kubínková CZ.1.07/1.5.00/ Validita stránek.
Návrh a tvorba WWW Přednáška 1
A weak fuzzy description logic with aggregation Peter Vojtáš na Pracovním semináři pořádaném Knowledge Engineering Group Knowledge Engineering.
PHP – Základy programování
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Sémantizace Webu 3. RDF Peter Vojtáš.
Sémantický web, ontologie. Sociální sítě.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Střední škola služeb a podnikání, Ostrava-Poruba příspěvková organizace Výukový materiál v rámci projektu OPVK 1.5 Peníze středním školám Číslo projektu:
Dokumentace objektů a zveřejnění funkcí
SYNTACTIC SUGAR MS SQL 2005 – SOA Petr Krejzl
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
SPARQL – motivace, syntax
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Schůzka komise Brno Ing. Jan Mach, Vysoká škola ekonomická v Praze EVSKP-MS Přenos dat Jan Mach Vysoká škola ekonomická.
Internet.  Celosvětový systém propojených počítačů  Funkce  Sdílení dat  Elektronická pošta.
Jan Zemánek Slidy na Webu  Dočasně na
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B16 Autor Ing. Jiří Kalousek Období vytvoření březen.
(Java) RDF APIs Jan Zemánek KIZI VŠE, Praha. Přehled Java RDF APIs Jena Download
URL v HTML URL - Unique Resource Locator Příklad:
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í.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Internet Explorer 8 Štěpán Bechynský Developer Evangelist Microsoft s.r.o.
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áš.
Nové modulové výukové a inovativní programy - zvýšení kvality ve vzdělávání Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem.
1 Bleskové zpravodajství (RSS, RDF, Atom) Ing. Petr Palisa, Triada, spol. s r. o. Problém: obsah webu je strojově čitelný, ale není strojově pochopitelný.
Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
Mgr. Ludmila Urbášková CDV UP Olomouc Jak dostaneme MM ke studentům? Standardy HTTP, HTML (XHTML), CSS WYSIWYG editor nebo jiný editor (X)HTML Grafický.
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
SPARQL – Sémantika. Sémantizace webuSPARQL – sémantika2 NSWI108 – Sémantizace Webu Peter Vojtáš 13. SPARQL – sémantika.
Webové služby Cíl  Popis základního konceptu technologie webových služeb.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
Anotace Materiál je určen pro 1. ročník studijního oboru M/01 PROVOZ A EKONOMIKA DOPRAVY, předmětu Informační a komunikační technologie, inovuje.
WWW a HTML Základní pojmy Ivo Peterka.
Štěpán Kafka, Help Service Remote Sensing
Štěpán Kafka, Help Service Remote Sensing
Internet – pojmy, služby
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
WWW a HTML Základní pojmy Ivo Peterka.
Dobývání znalostí z databází znalosti
Základní pojmy při používání Internetu
Šablona 32 VY_32_INOVACE_038.ICT.34
Transkript prezentace:

Dotazovací jazyk pro RDF SPARQL ([sparkle]) Dotazovací jazyk pro RDF

Lehké zopakování RDF RDF je datový model struktura RDF triple = trojice (statement = tvrzení) ?subject ?predicate ?object ?predicate přiřazuje ?subject(u) hodnotu ?object ?subject je URI nebo Blank Node ?predicate je URI ?object je URI, Blank Node nebo Literál URI (Uniform Resource Identifier) globálně unikátní identifikátor podmnožinou je URL (Uniform Resource Locator) Blank Node lokální identifikátor platný jen v rámci RDF grafu Literál jan.zemanek@gmail.com

Více k literálům bude se hodit při tvorbě SPARQL dotazů literály jsou textové hodnoty těmito hodnotami mohou být řetězce „Tim Berners-Lee“ čísla „123456“ data „2002-05-30T09:00:00“ atd. jan.zemanek@gmail.com

Nejvíce k literálům literály se dělí na 2 skupiny plain literals čistě textové hodnoty „čistě textová hodnota“(@cs) může být uveden jazyk (ve kterém je hodnota uvedena) syntaxe viz. dále typed literals specifikuje přesný typ literálu např. int, double, date, dateTime, atd. k tomuto účelu se využívají build-in datatypes z XML jan.zemanek@gmail.com

XML build-in datatypes jan.zemanek@gmail.com

Serializace RDF RDF má hodně serializací (RDF/XML, N3, N-Triples, Turtle, TriX, TriG, RDFa, eRDF) některé slouží k přenosu a uchovávání RDF dat RDF/XML TriX (RDF Triples in XML) speciální XML serializace pro Named Graphs („pojmenované grafy“) Named Graphs viz. dále jiné byly vytvořeny s ohledem na čitelnost N3 (Notion 3) „non-XML serialization of RDF models“, W3C standard podmnožinou je Turtle (Terse RDF Triple Language) nejčitejnější RDF serializace není standardizován jan.zemanek@gmail.com

Turtle jan.zemanek@gmail.com

Popis RDF zdroje v RDF/XML <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ex="http://example.org/stuff/1.0/"> <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" dc:title="RDF/XML Syntax Specification (Revised)"> <ex:editor> <rdf:Description ex:fullName="Dave Beckett"> <ex:homePage rdf:resource="http://purl.org/net/dajobe/" /> </rdf:Description> </ex:editor> </rdf:RDF> jan.zemanek@gmail.com

Týž popis RDF zdroje v Turtle @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix ex: <http://example.org/stuff/1.0/> . <http://www.w3.org/TR/rdf-syntax-grammar> dc:title "RDF/XML Syntax Specification (Revised)" ; ex:editor [ ex:fullname "Dave Beckett"; ex:homePage http://purl.org/net/dajobe/ ] . jan.zemanek@gmail.com

SPARQL a Turtle syntaxe SPARQL je zjednodušená syntaxe vycházející z Turtle SPARQL dotaz PREFIX p: http://dbpedia.org/property/ PREFIX dbpedia: <http://dbpedia.org/resource/> SELECT ?movie WHERE { ?movie p:wordnet_type <http://www.w3.org/2006/03/wn/wn20/instances/synset-movie-noun-1> . ?movie p:starring dbpedia:Angelina_Jolie . ?movie p:released ?released . FILTER (?released > "2005-01-01"^^xsd:date) } jan.zemanek@gmail.com

Named Graphs (a TriG) Named Graph TriG tzv. „pojmenovaný graf“ nejde o nic jiného než obyčejný RDF graf, který má jméno tímto jménem se lze na RDF graf odkazovat TriG rozšiřuje Turtle syntaxi o možnost pojmenovat graf <http://mynamedgraph/> { [vlastní RDF graf] } jan.zemanek@gmail.com

TriG - příklad @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix ex: <http://www.example.org/vocabulary#> . @prefix dc: <http://purl.org/dc/elements/1.1/> @prefix : <http://www.example.org/exampleDocument#> . :G1 { :Monica ex:name "Monica Murphy" . :Monica ex:homepage <http://www.monicamurphy.org> . :Monica ex:email <mailto:monica@monicamurphy.org> . :Monica ex:hasSkill ex:Management } :G2 { :Monica rdf:type ex:Person . :Monica ex:hasSkill ex:Programming } :G1 dc:title „Monica‘s Profile“@en jan.zemanek@gmail.com

SPARQL (1) SPARQL Protocol and RDF Query Language od 15. ledna 2008 W3C standard dotazovací jazyk pro RDF „read-only“ SPARUL – SPARQL Update Language jiné dotazovací jazyky pro RDF (předchůdci SPARQL) rdfDB, RDQL and SeRQL jan.zemanek@gmail.com

SPARQL (2) „SPARQL is to the Semantic Web (and, really, the Web in general) what SQL is to relational databases.“ Tim Berners-Lee „If we view the Semantic Web as a global collection of databases, SPARQL can make the collection look like one big database.“ jan.zemanek@gmail.com

SPARQL (3) SPARQL je postaven na W3C standardech RDF XML HTTP WSDL jan.zemanek@gmail.com

SPARQL - dotaz http://www.sparql.org/sparql.html RDF Validator / Convertor http://www.rdfabout.com/demo/validator/ PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?url FROM <http://journal.dajobe.org/journal/2003/07/semblogs/bloggers.rdf> WHERE { ?contributor foaf:name "Tim Berners-Lee" . ?contributor foaf:weblog ?url } jan.zemanek@gmail.com

SPARQL – co, jak, kde? proměnné se uvozují „?“ ?variable (alternativně lze proměnnou uvodit „$“) klauzule FROM říká nad kterými RDF daty se bude dotaz vyhodnocovat klauzuli WHERE tvoří soubor RDF trojic (v Turtle syntaxi), který dohromady tvoří tzv. „graph pattern“ vyhodnocování dotazu probíhá tak, že se porovnává graph pattern s RDF daty nejdříve je do proměnné ?contributor uložen Blank Node identifikátor, jemuž atribut foaf:name přiřazuje hodnotu „Tim Berners-Lee“ (TimBL) následně je do proměnné ?url uložena hodnota atributu foaf:weblog, která získanému Blank Node (označujícímu TimBL) přiřazuje URL jeho weblogu jan.zemanek@gmail.com

Typy SPARQL dotazů SPARQL podporuje 4 typy dotazů SELECT ASK DESCRIBE CONSTRUCT rozdíl mezi nimi spočívá v tom, jaké vrací výsledky jan.zemanek@gmail.com

SPARQL (SELECT) SELECT zvoleným proměnným přiřadí příslušné hodnoty a vrátí je v tabulce jan.zemanek@gmail.com

SPARQL (SELECT) – RDF data @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:a foaf:knows _:b . _:a foaf:knows _:c . _:b foaf:name "Bob" . _:c foaf:name "Clare" . _:c foaf:nick "CT" . jan.zemanek@gmail.com

SPARQL (SELECT) – dotaz PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?nameX ?nameY ?nickY WHERE { ?x foaf:knows ?y ; foaf:name ?nameX . ?y foaf:name ?nameY . OPTIONAL { ?y foaf:nick ?nickY } } jan.zemanek@gmail.com

SPARQL (SELECT) – výsledek nameX nameY nickY "Alice„ "Bob„ "Alice„ "Clare„ "CT" jan.zemanek@gmail.com

SPARQL (SELECT) – výsledek (XML) <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="nameX"/> <variable name="nameY"/> <variable name="nickY"/> </head> <results> <result> <binding name="nameX"> <literal>Alice</literal> </binding> <binding name="nameY"> <literal>Bob</literal> </binding> </result> <result> <binding name="nameX"> <literal>Alice</literal> </binding> <binding name="nameY"> <literal>Clare</literal> </binding> <binding name="nickY"> <literal>CT</literal> </binding> </result> </results> </sparql> jan.zemanek@gmail.com

SPARQL (ASK) vrací boolean testuje pouze, zda má graph pattern řešení jan.zemanek@gmail.com

SPARQL (ASK) – RDF data @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:a foaf:homepage <http://work.example.org/alice/> . _:b foaf:name "Bob" . _:b foaf:mbox <mailto:bob@work.example> . jan.zemanek@gmail.com

SPARQL (ASK) – dotaz PREFIX foaf: <http://xmlns.com/foaf/0.1/> ASK { ?x foaf:name "Alice„ } jan.zemanek@gmail.com

SPARQL (ASK) – výsledek yes :-) jan.zemanek@gmail.com

SPARQL (ASK) – výsledek (XML) <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> </head> <results> <boolean>true</boolean> </results> </sparql> jan.zemanek@gmail.com

SPARQL (DESCRIBE)(1) vrací graf (který je subgrafem dotazoveného grafu) se všemi informacemi o zdroji, který vyhověl graph pattern(u) DESCRIBE ?person WHERE { ?person foaf:name "Tim Berners-Lee" } vrátí graf obsahující trojice, které popisují Tim Berners-Lee(ho) jan.zemanek@gmail.com

SPARQL (DESCRIBE)(2) popis zdroje lze získat i explicitním zadáním jeho URI DESCRIBE <http://example.org/> dotaz může obsahovat více URI, Blank Nodes PREFIX foaf: <http://xmlns.com/foaf/0.1/> DESCRIBE ?x ?y <http://example.org/> WHERE { ?x foaf:knows ?y } jan.zemanek@gmail.com

SPARQL a Bart Simpson http://dbpedia.org/snorql/ PREFIX dbpedia2: <http://dbpedia.org/property/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?episode ?chalkboard_gag WHERE { ?episode skos:subject <http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12>. ?episode dbpedia2:blackboard ?chalkboard_gag } jan.zemanek@gmail.com

SPARQL (CONSTRUCT) CONSTRUCT umožňuje naplnit hodnotami přiřazenými proměnným z graph pattern vlastní „triple template“ a tím vytvořit zbrusu nový graf CONSTRUCT je pro SPARQL dá se říct tím, čím jsou XSLT styly pro XML :-) jan.zemanek@gmail.com

SPARQL (CONSTRUCT) – RDF data @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:a foaf:mbox <mailto:alice@example.org> . jan.zemanek@gmail.com

SPARQL (CONSTRUCT) – dotaz PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> CONSTRUCT { <http://example.org/person#Alice> vcard:FN ?name } WHERE { ?x foaf:name ?name } jan.zemanek@gmail.com

SPARQL (CONSTRUCT) – výsledek @prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> . <http://example.org/person#Alice> vcard:FN "Alice" . jan.zemanek@gmail.com

Komplexnější dotazy – RDF data @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Jon Foobar" ; foaf:mbox <mailto:jon@foobar.xx> ; foaf:depiction <http://foobar.xx/2005/04/jon.jpg> . _:b foaf:name "A. N. O'Ther" ; foaf:mbox <mailto:a.n.other@example.net> ; foaf:depiction <http://example.net/photos/an-2005.jpg> . _:c foaf:name "Liz Somebody" ; foaf:mbox_sha1sum "3f01fa9929df769aff173f57dec2fe0c2290aeea" . _:d foaf:name "M Benn" ; foaf:depiction <http://mbe.nn/pics/me.jpeg> . jan.zemanek@gmail.com

SPARQL (OPTIONAL) chceme získat jména všech osob společně s URL jejich fotografie (pokud je uvedena) nevystačíme s obyčejným graph pattern(em) jako dosud do výsledků by totiž nebyla zahrnuta „Liz Somebody“ pro tyto případy existuje OPTIONAL blok pokud je graph pattern v něm uvedený v dotazovaném grafu přítomen, bude jeho výsledek uveden v celkovém výsledku je obdobou LEFT OUTER JOIN(u) z SQL jan.zemanek@gmail.com

SPARQL (OPTIONAL) – dotaz PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?depiction WHERE { ?person foaf:name ?name . OPTIONAL { ?person foaf:depiction ?depiction . } . } jan.zemanek@gmail.com

SPARQL (OPTIONAL) – výsledek name depiction "A. N. O'Ther" <http://example.net/photos/an-2005.jpg> "Jon Foobar" <http://foobar.xx/2005/04/jon.jpg> "Liz Somebody" "M Benn" <http://mbe.nn/pics/me.jpeg> jan.zemanek@gmail.com

SPARQL dotazy s omezováním hodnot proměnných PREFIX p: http://dbpedia.org/property/ PREFIX dbpedia: <http://dbpedia.org/resource/> SELECT ?movie WHERE { ?movie p:wordnet_type <http://www.w3.org/2006/03/wn/wn20/instances/synset-movie-noun-1> . ?movie p:starring dbpedia:Angelina_Jolie . ?movie p:released ?released . FILTER (?released > "2005-01-01"^^xsd:date) } jan.zemanek@gmail.com

SPARQL endpoints v podstatě jde o Web Service SPARQL endpointy jsou identifikovány pomocí URL na kterou se posílají SPARQL dotazy ty jsou následně vyhodnoceny a výsledky odeslány zpět uživateli SPARQL definuje komunikační protokol pro distribuci dotazů a výsledků aktivní endpointy http://esw.w3.org/topic/SparqlEndpoints jan.zemanek@gmail.com

Úkol (1) Získejte jména, e-maily a pokud je uvedena, tak i URL webových stránek členů KEG(u) http://zapisky.info/media/1/people-keg.rdf jan.zemanek@gmail.com

Úkol (2) Získejte titulky a URL adresy příspěvků autora jménem "Ivan Herman", "dc:creator" které jsou starší než 22. února 2008 z RSS PlanetRDF http://planetrdf.com/index.rdf jan.zemanek@gmail.com

Úkol (3) Získejte názvy a URL adresy weblogů autorů, jejichž RSS agreguje PlanetRDF, http://journal.dajobe.org/journal/2003/07/semblogs/bloggers.rdf a kteří se zajímají o sémantický web predikát foaf:interest objekt http://www.w3.org/RDF/ jan.zemanek@gmail.com

Odkazy RDF data FOAF ontologie SPARQL cheatsheet http://planetrdf.com/index.rdf http://www.deri.ie/fileadmin/scripts/foaf.php?id=287 http://zapisky.info/home/foaf.rdf http://journal.dajobe.org/journal/2003/07/semblogs/bloggers.rdf FOAF ontologie http://xmlns.com/foaf/spec/index.rdf SPARQL cheatsheet http://www.dajobe.org/2005/04-sparql/SPARQLreference-1.7.pdf SPARQL execution services http://www.sparql.org/sparql.html http://dbpedia.org/sparql http://dbpedia.org/snorql/ SPARQL validátor http://www.w3.org/2005/01/yacker/uploads/SPARQL RDF validátory http://www.w3.org/RDF/Validator/ http://www.rdfabout.com/demo/validator/ jan.zemanek@gmail.com