dezvoltarea aplicațiilor web (6/12): managementul datelor rdf. interogarea datelor rdf cu sparql

152
Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplica ț iilor Web managementul datelor RDF

Upload: sabin-buraga

Post on 29-Nov-2014

376 views

Category:

Technology


4 download

DESCRIPTION

Dezvoltarea aplicațiilor Web (6/12) — detalii la http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html

TRANSCRIPT

Page 1: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Dezvoltarea aplicațiilor Web

managementul datelor RDF

Page 2: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

“Trebuie să adunăm fapte pentru a avea idei.”

Georges-Louis de Buffon

Page 3: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Ce modele de date sunt disponibile pe Web?

Page 4: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

modele de date disponibile pe Web

textualedate nestructurate – eventual, multilingve

structurateRDF – reprezintă “lucruri” (resurse) din lumea reală:

indivizi, servicii, aplicații,... – de dorit, modelate formal

hibridedate structurate “scufundate” în text

e.g., microdate HTML5, RDFa

Page 5: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

conform (Bailer & Hausenblas, 2007)

model RDF

abstract

date RDF(reprezentareîn memorie)

date RDF (documente desine-stătătoare)

date conforme modelului RDF (“scufundate” în alte resurse)

date non-conforme modelului RDF (de sine-stătătoare + incluse în fișiere)

con

form

(B

aile

r &

Hau

sen

bla

s, 2

00

7)

Page 6: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

conform (Bailer & Hausenblas, 2007)

model RDF

abstract

date RDF(reprezentareîn memorie)

date RDF (documente desine-stătătoare)

date conforme modelului RDF (“scufundate” în alte resurse)

date non-conforme modelului RDF (de sine-stătătoare + incluse în fișiere)

con

form

(B

aile

r &

Hau

sen

bla

s, 2

00

7)

baze de date relaționale, XML,

HTML, microformate, microdate, JSON

RDFa, Semantic MediaWiki

RDF/XML, N3, TriX, N-Triple,… (serializări)

cod binar

Page 7: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Ce instrumente de procesarea declarațiilor RDF putem folosi?

Page 8: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Procesor (parser) RDF

preluarea datelor disponibile în diverse formate și reprezentarea lor ca triple RDF

Page 9: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

api-uri & biblioteci rdf – exemple

ARC2 (PHP)dotNetRDF (C#)Graphite (PHP)

Jena Semantic Web Toolkit (Java)PerlRDF (Perl)

RDFLib (Python)rdfQuery.js, rdfstore-js (JavaScript)

Redland (C; portări în alte limbaje: C#, Objective-C, PHP)Sesame (Java)

...

detalii la http://www.w3.org/2001/sw/wiki/Tools

Page 10: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Serializator (serializer) RDF

exprimarea modelului intern RDFîn diverse formate

N-Triples, RDF/XML, Turtle (N3), TriX, RDFa, JSON-LD,...

Page 11: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Convertor RDF

preluarea datelor din alte modeleși transformarea lor in RDF

extragerea directă din documentele HTMLvia scrapers/harvesters

Page 12: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

instrumente

Extractoare/convertoare RDF – exemple:Any23 (Java)Babel (Java)

Greengrass (C#)LinqToRDF (C#)

Raptor (C)RDF123 (Java)RDFSlice (Java)

Semantic Radar (JavaScript – extensie Firefox)URIBurner – serviciu Web: http://linkeddata.uriburner.com/

Page 13: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

instrumente

Inițiativa Triplr

serviciu Web REST de conversie a datelor (d)in RDFbazat pe biblioteca Redland

http://triplr.org/format-de-ieșire/uri-sursă

Page 14: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

instrumente

Inițiativa Triplr

exemple:

din HTML în RDF/XML via GRDDL http://triplr.org/rdf/www.w3.org/People/Connolly/

conversie în format Turtle a unui fișier FOAF (RDF/XML) http://triplr.org/turtle/profs.info.uaic.ro/~busaco/busaco.foaf.xml

Page 15: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Navigatoare RDF (hyperdata browsers)

redau utilizatorului (uman) o reprezentare “frumoasă” a triplelor RDF, permitând

interacțiunea cu datele: vizualizare, filtrare,...

Page 16: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

instrumente

Navigatoare RDF (hyperdata browsers)

exemple:Disco

MarblesOpenLink Data Explorer

Q&D RDF BrowserTabulator

uzual, disponibile ca extensii pentru browser-ul Web

Page 17: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Extragerea și procesarea datelor existente pe Web

o soluție „clasică”: information extraction(eventual, pe baza procesării limbajului natural – NLP)

în cazul nostru, dorim să recurgem latehnologiile Web-ului semantic

Page 18: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

O modalitate standardizată de “convertire”în triple RDF

a construcțiilor semantice încapsulateîn documentele Web

Page 19: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl

GRDDL – Gleaning Resource Descriptionsfrom Dialects of Languages

gleanverb [ trans. ]extract (information) from various sources:the information is gleaned from press clippings.• collect gradually and bit by bit:

objects gleaned from local markets.• historical gather (leftover grain or other produce) after a harvest:

[as n. ] (gleaning)the conditions of farm workers in the ‘30s made gleaning essential.

Page 20: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl

Permite asocierea de transformăridin formate structurate – e.g., microformate, RDFa, XML –

în declarații RDF, fără pierderea semanticii (meaning)

www.w3.org/TR/grddl/

www.w3.org/TR/grddl-primer/

Page 21: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl

Există o multitudine de documente modelate pe baza unor dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –,

încapsulând date care ar putea fi exprimate via RDF

se dorește o asociere faithful – se păstrează înțelesul

Page 22: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl

Există o multitudine de documente modelate pe baza unor dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –,

încapsulând date care ar putea fi exprimate via RDF

se dorește o asociere faithful – se păstrează înțelesul

se va specifica o transformare GRDDL uzual, se folosesc transformări XSLT

Page 23: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl

Berners-Lee, 2007: www.w3.org/2007/Talks/1211-whit-tbl/

Page 24: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl: exemplu

Un document XHTML ce include microformatul hCard:<html xmlns="http://www.w3.org/1999/xhtml">

<head profile="http://www.w3.org/2003/g/data-view">

<link rel="transformation" href="mHTML2RDF.xsl" />

<title>...</title></head>

<body>

<div class="vcard">

<p class="fn n">

<span class="given-name">Sabin</span>

<span class="family-name">Buraga</span></p>

</div>

...

</body>

</html>

transformareGRDDL

Page 25: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl: exemplu

În urma transformării XSLT, ar putea rezulta:<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:v="http://www.w3.org/2006/vcard/ns#">

<rdf:Description rdf:nodeID="EsAVHkUx6">

<rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#VCard"/>

<v:fn>Sabin Buraga</v:fn>

</rdf:Description>

<rdf:Description rdf:nodeID="EsAVHkUx8">

<rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Name"/>

<v:given-name>Sabin</v:given-name>

<v:family-name>Buraga</v:family-name>

</rdf:Description>

</rdf:RDF>

Page 26: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

grddl: exemplu

Efectuarea diverselor conversii via GRDDL:

microformatul hCardRDFhttp://www.w3.org/2006/vcard/hcard2rdf.xsl

microformatul hCalendarRDFhttp://www.w3.org/2002/12/cal/glean-hcal.xsl

RDFaRDFhttp://www.w3.org/2001/sw/grddl-wg/td/RDFa2RDFXML.xsl

detalii în R. Akerkar, Semantic Markup Report, NCE Tourism Fjord Norway, 2012

Page 27: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Date stocate în sisteme de baze de date relaționale

date modelate cu RDF

asocieri directe – mappings (via schema bazei de date)

Page 28: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

realizarea diferitelor asocieri exprimate via R2RML (RDB to RDF Mapping Language)recomandare a Consorțiului Web – 2012

www.w3.org/TR/r2rml/

Page 29: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

baze de date relaționale gestionate via SQL

CREATE TABLE "Software" ( "ID" INT, PRIMARY KEY("ID"), "nume" CHAR(50), "desc" CHAR(300)

) CREATE TABLE "Utiliz" (

"ID" INT, PRIMARY KEY("ID"), "identit" CHAR(100), "soft" INT, FOREIGN KEY("soft") REFERENCES "Software"("ID")

) INSERT INTO "Software" ("ID", "nume", "desc") VALUES (13, 'Mageia', 'Sistem Linux') INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (7, 'Dan', 13) INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (8, 'Cristina', NULL)

date RDF

<Utiliz/ID=7> rdf:type <Utiliz> . <Utiliz/ID=7> <Utiliz#ID> 7 . <Utiliz/ID=7> <Utiliz#identit> "Dan" . <Utiliz/ID=7> <Utiliz#soft> 13 . <Utiliz/ID=7> <Utiliz#ref-software> <Software/ID=13> . …<Software/ID=13> rdf:type <Software> . <Software/ID=13> <Software#ID> 13 . <Software/ID=13> <Software#nume> "Mageia" . <Software/ID=13> <Software#desc> "Sistem Linux" .

asocieri directe

recomandare W3C (M. Arenas et al., 2012)

www.w3.org/TR/

rdb-direct-mapping/

Page 30: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesități

Motoare de căutare

căutarea de documente RDF, eventual cu extragerea de cunoștințe – e.g., meta-date – din alte resurse Web(HTML, RSS/Atom, microformate, microdate, RDFa,...)

câteva exemple: Knoodle, SameAs, Sig.ma, Sindice, Swoogle

Page 31: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

detalii despre Sindice API la http://sindice.com/developers/api

Page 32: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Nu există posibilitatea de a utiliza un sistem de stocare/interogare a triplelor RDF?

Page 33: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Datele RDF sunt menținute persistentîn cadrul unui RDF store

Page 34: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Oferă posibilitatea fuzionării (merging)seturilor de date RDF

date 2 seturi de triple RDF, în urma fuzionării va rezulta un set de triple RDF ce include toate triplele

din ambele seturi de intrare în care resurseleavând același URI sunt considerate echivalente

Page 35: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Intern, un RDF store poate stoca tripleleîntr-o varietate de formate

baze de date relaționaleversus

structuri de date speciale

inclusiv, la nivel de cloud

Page 36: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Asigurarea interoperabilității este facilitată deformatele de serializare standardizate

RDF/XML, Turtle, JSON(-LD)

Page 37: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Aspecte de interes:

performanța – e.g., scalabilitatea, timpul de răspuns,...capacitatea de stocare

facilitățile privind interogarea datelorAPI-urile disponibile

fiabilitatea securitatea

Page 38: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Exemple de implementări curente(unele disponibile în regim open source)

stocare în structuri de date native: AllegroGraph (Common Lisp &

multe alte limbaje de programare), BigData (Java), Jena TBD (Java), Sesame (Java), Stardog (Java, Groovy)

www.w3.org/wiki/LargeTripleStores

Page 39: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Exemple de implementări curente(unele disponibile în regim open source)

folosind sisteme tradiționale de baze de date:IBM DB2 (Java), Jena SDB (Java), OpenLink Virtuoso (C,

PHP, Perl, Ruby, JS,…), OWLIM (Java), StrixDB (Lua)

http://semanticweb.com/introduction-to-triplestores_b34996

Page 40: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Exemple de implementări curente(unele disponibile în regim open source ori freeware)

bazate pe sisteme NoSQL:BrightstarDB (C#), CumulusRDF (utilizează Cassandra),

RDF Graph for Oracle NoSQL DB, SparkleDB (C++)

recurgând la baze de date native XML: MarkLogic 7(interogări XQuery, SQL, SPARQL + API-uri diverse)

Page 41: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sisteme de stocare rdf

Utilizări notabile

OWLIM folosit de BBC, FactForge și LinkedLifeData și inclus în GATE (General Architecture for Text Engineering)

Best Buy, inQuest și NASA recurg la Stardog

OpenLink Virtuoso utilizat de DBpedia și Linked Open Data Cloud

data.gov.uk se bazează pe Jena TDB

Page 42: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Există un limbaj de interogarea seturilor de triple RDF?

Page 43: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql

SPARQL Protocol and RDF Query Language

limbaj descriptiv standardizatpentru realizarea de interogări pe baza potrivirilor

de șabloane referitoare la triple RDF

inspirat din RDQL – oferit de Jena, RAP, Redland etc.

Page 44: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql

Oferă suport pentru manipularea construcțiilor RDF

Pune la dispoziție operații asupra grafurilor RDF

Independent de platforma software utilizată

limbaj de interogare + protocol de acces la triple RDF

Page 45: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Recomandări ale Consorțiului Web:

SPARQL 1.0 (2008)permite doar acces la date (interogări read-only)

www.w3.org/TR/rdf-sparql-query/

SPARQL 1.1 (2013) oferă și posibilități de actualizare a datelorwww.w3.org/TR/sparql11-overview/

Page 46: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Modelul de interogare e fundamentat deșabloane de grafuri RDF – graph patterns

Page 47: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Termeni RDF (RDF-T):

reuniunea mulțimilor IRI, noduri blanc, literali RDF

Variabile de interogare (V): simboluri prefixate de “?” sau de “$”

Șablon (triple pattern): membru al mulțimii(RDF-T V) (IRI V) (RDF-T V)

Șabloane de tip graf: mulțimi de șabloane

Page 48: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Convenții sintactice bazate pe Turtle/N3

triplele RDF sunt considerateca fiind tablouri de termeni RDF

Page 49: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Convenții sintactice bazate pe Turtle/N3

triplele RDF sunt considerateca fiind tablouri de termeni RDF

termen RDF = IRI | nod blanc | literal

pattern de triple = tablou de termeni RDFsau nume de variabile (termeni liberi)

Page 50: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

URI – sau, mai general, IRI – delimitați de “<” si “>”

situl Web al unei persoane: <http://www.purl.org/net/busaco>

o proprietate definită de specificația FOAF: <http://xmlns.com/foaf/0.1/name>

o clasă de resurse:<http://dbpedia.org/ontology/Film>

Page 51: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Pentru a referi spații de nume ale vocabularelor utilizatese folosește construcția PREFIX

PREFIX dc: <http://purl.org/dc/elements/1.1/>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX dbpedia: <http://dbpedia.org/ontology/>

lista prefixelor comune: http://prefix.cc/

Page 52: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Nodurile blanc se specifică prin _:nume

sau sunt delimitate de [ și ]

dacă se folosesc o singură dată

Page 53: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Literali RDF(șiruri de caractere cu atribute opționale)

"Web"

"Web"@ro # se indica limba

"true"^^xsd:boolean # se specifică tipul de date

"true"^^xsd:string

Page 54: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Abrevierireferitoare la triple

:s :p :o1 , :s :p :o1 .

:o2 . echivalent cu :s :p :o2 .

:s :p1 :o1 ; :s :p1 :o1 .

:p2 :o2 . echivalent cu :s :p2 :o2 .

Page 55: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Abrevieriprivitoare la nodurile blanc

:s :p [ :p' :o ]

echivalent cu

:s :p _:x . _:x :p' :o .

Page 56: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Un șablon (pattern) permite specificareade variabile indicând date ce vor fi returnate

în urma realizării interogării

?subiect ?predicat ?obiect .

Page 57: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Șablon: subiect ?predicat ?obiect .

?predicat și ?obiect reprezintă necunoscutele (unbounded)

subiect

obiect1

obiect2

obiectn

?predicat

?predicat

?predicat

?obiect

?obiect

?obiect

după (Corno & Farinetti, 2009)

Page 58: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Exemplu

lista persoanelor inter-conectatevia predicatul (proprietatea) foaf:knows

?persoana foaf:knows ?altaPersoana .

Page 59: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Exemplu

descoperirea proprietătilor/relațiilordintre subiect și obiect

_:subiect ?predicat _:obiect .

Page 60: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Șabloanele pot fi combinate pentru a forma șabloane mai complexe

șablon de tip graf (BGP – basic graph pattern)

Page 61: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Șabloanele pot fi combinate pentru a forma șabloane mai complexe

șablon de tip graf (BGP – basic graph pattern)

componente ale unei interogări SPARQLexprimate formal – algebric – prin tuplul (E, DS, QF)

E = expresie SPARQLDS = set de date RDF (data set) local/disponibil pe Web

QF = formular de interogare (query form)

Page 62: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

SELECT ?contrib

WHERE {

<http://en.wikipedia.org/>

<http://purl.org/dc/elements/1.1/contributor>

?contrib .

}

{ … } desemnează un graph patternîn acest exemplu, se utilizează vocabularul DCMI

selectarea resurselorce au contribuit

la o resursă

Page 63: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Rezultatul interogării poate fi:

un tabel de valori corespunzătoare variabilelorutilizate, rezultat precizat prin SELECT

Page 64: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Rezultatul interogării poate fi:

o valoare booleană întoarsă de construcția ASK

“este adevărat că…?”

Page 65: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Rezultatul interogării poate fi:

un graf RDF creat via CONSTRUCT sau DESCRIBE

CONSTRUCT oferă un graf în care variabilele sunt înlocuite cu valorile găsite

DESCRIBE întoarce un graf care descrie resursele găsite(structura datelor e determinată de procesorul RDF)

Page 66: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

anatomia unei interogări SPARQL 1.0 (Beckett, 2011)

Page 67: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

SELECT

rezultatul interogării reprezintă un tabel

secvență de rânduri compusedin valorile variabilelor (variable bindings)

Page 68: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Considerăm date modelate

în RDF privitoare la studenții FII

vezi exemplele asociate cursului

Page 69: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

determinarea resurselor de tip persoanăSELECT ?persoana

WHERE {

?persoana rdf:type foaf:Person

}

Page 70: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

SELECT

oferirea de valori distincte via DISTINCT

ordonarea rezultatelor prin ORDER BY

returnarea de sub-secvențe cu LIMIT și OFFSET

precizarea construcțiilor opționale prin OPTIONAL

Page 71: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Datele interogate pot fi filtrate via clauza FILTER

expresiile de filtrare includ:variabile

operatori aritmetici/logicifuncții (predefinite sau specificate de utilizator)

tipuri de date definite de XML Schema

Page 72: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Funcții predefinite

de testare: bound ( ), isBlank ( ), isLiteral ( ), isURI ( )

de conversie: str ( ), lang ( ), datatype ( )

altele: sameTerm ( ), langMatches ( ), regex ( )

Page 73: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

FILTER (?anul = 2)

FILTER (?dataComanda < "2013-11-31T22:00:00Z"^^xsd:date)

FILTER (?pop > 15000000 &&

langMatches (lang (?numeStat), "EN"))

FILTER (?foss = 'Yes' && ?categ = 'Database/Datastore' &&

(?limbaj = 'PHP' || regex (?limbaj, "^C")))

Page 74: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

determinarea numelor tuturor resurselor de gen feminin

SELECT ?numeStudenta

WHERE {

?persoana foaf:gen ?gen ;

foaf:firstName ?numeStudenta .

FILTER regex (?gen, "^female", "i") .

}

Page 75: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

numele și, eventual, titulatura persoanelor mai tinere

SELECT DISTINCT ?studentSub22 ?titulatura

WHERE {

?persoana foaf:age ?ani ;

foaf:firstName ?studentSub22

OPTIONAL { ?persoana foaf:title ?titulatura . }

FILTER (?ani <= 22)

}

Page 76: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Nodurile blanc într-o interogarejoacă rol de variabile anonime

Page 77: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

numele și vârsta cunoscuților care-l „știu” pe Sir Tim Berners-Lee după reputație și sunt examinați de profesori

SELECT DISTINCT ?nume ?ani ?prof

WHERE {

[ ] foaf:knows ?persoana .

?persoana foaf:firstName ?nume ;

rel:knowsByReputation

<http://www.w3.org/People/Berners-Lee/card#i> ;

foaf:age ?ani .

?prof s:examineaza ?persoana

}

s-a recurs la vocabularul relationship

Page 78: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Crearea unui graf RDF se poate realiza prin CONSTRUCT

CONSTRUCT (?s ?p ?o)

WHERE {

?prop rdf:subject ?s .

?prop rdf:predicate ?p .

?prop rdf:object ?o .

web:Wikipedia s:afirma ?prop .

}

determinarea tuturor declarațiilor reificateexprimate de Wikipedia

Page 79: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Construirea modelului RDF al edițiilor London Gazetteconform Jeni Tennison (2009)

PREFIX g: <http://www.gazettes-online.co.uk/ontology#>

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

CONSTRUCT {

?issue a g:Issue .

?issue g:hasPublicationDate ?date .

} WHERE {

?issue a g:Issue .

?issue g:hasPublicationDate ?date .

FILTER ( ?date > "2011-01-01"^^xsd:date ) . }

Page 80: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Exemplu de recurgere la ASK (Lee Feigenbaum, 2009): aflarea răspunsului la întrebarea

“Fluviul Amazon este mai lung decât Nilul?”

PREFIX prop: <http://dbpedia.org/property/>

ASK {

<http://dbpedia.org/resource/Amazon_River>

prop:length ?lungAmazon .

<http://dbpedia.org/resource/Nile> prop:length ?lungNil .

FILTER (?lungAmazon > ?lungNil) .

}

Page 81: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Obținerea de șabloane de graf alternativese realizează via clauza UNION

{ ?nod voc:hasName ?nume }

UNION

{ ?nod vcard:FN ?nume }

Page 82: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

resursele cunoscute sau rude cu o persoană și examinate doar de un anumit profesor

SELECT ?cunoscutSauRudaCuCristinaExaminatDoarDeDL

WHERE {

{ ?pers foaf:knows s:cristina ;

foaf:firstName ?cunoscutSauRudaCuCristinaExaminatDoarDeDL

}

UNION

{ ?pers rel:siblingOf s:cristina ;

foaf:firstName ?cunoscutSauRudaCuCristinaExaminatDoarDeDL

}

s:dlucanu s:examineaza ?pers

}

Page 83: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Întrebare:am putea realiza interogări SPARQL

asupra mai multor grafuri RDF?

Page 84: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

O interogare poate fi aplicată:

grafului implicit (default graph)

unuia sau mai multor grafuri externe (named graphs)

fuziunii dintre graful implicit și cele externe

Page 85: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: limbaj de interogare

Graful RDF de intrare poate fi specificat via URI

FROM <http://planetrdf.com/bloggers.rdf>

Page 86: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busacoSELECT ?numePers ?predicat ?obiect

FROM <http://www.w3.org/People/Berners-Lee/card>

FROM <http://www.dajobe.org/foaf.rdf>

FROM <http://www.ivan-herman.net/foaf.rdf>

FROM <http://www.lassila.org/ora.rdf>

WHERE {

tbl:i foaf:knows ?persoana .

?persoana foaf:name ?numePers ;

rdfs:seeAlso ?iri .

?iri foaf:primaryTopic ?persoana2 .

?persoana2 foaf:name ?numePers2 ;

?predicat ?obiect .

FILTER (?numePers = ?numePers2) .

}

extragerea tuturor datelor despre persoanelecunoscute de Sir Tim Berners-Lee

adaptare după (J. Hebeler et al., 2009)

Page 87: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Pune la dispoziție un mecanism de realizarede interogări SPARQL prin invocarea de

servicii Web – SPARQL end-points

recomandare a Consorțiului Web (2008, 2013)www.w3.org/TR/rdf-sparql-protocol/

www.w3.org/TR/sparql11-protocol/

Page 88: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Serviciile SPARQL pot fi descrise și invocatevia tehnologiile serviciilor Web clasice – i.e., prin REST

un punct terminal SPARQL – generic sau particular –acceptă cereri și întoarce rezultate via HTTP(S)

Page 89: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Serviciile SPARQL pot fi descrise și invocatevia tehnologiile serviciilor Web clasice – i.e., prin REST

un punct terminal SPARQL – generic sau particular –acceptă cereri și întoarce rezultate via HTTP(S)

rezultatul poate fi serializat într-o suită de formate:HTML, JSON, RDF (N3, Turtle), XML etc.

Page 90: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Serviciile SPARQL pot fi descrise și invocatevia tehnologiile serviciilor Web clasice – i.e., prin REST

un punct terminal SPARQL – generic sau particular –acceptă cereri și întoarce rezultate via HTTP(S)

rezultatul poate fi serializat într-o suită de formate:HTML, JSON, RDF (N3, Turtle), XML etc.

exemplu de punct terminal: http://dbpedia.org/sparql/

Page 91: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Invocarea unui end-point SPARQL (serviciu REST)recepționând ca date de intrare o interogare:

GET /sparql/?query=interogare&graph-uri=

http://www.retea-sociala.info/document-foaf.rdf HTTP/1.1

Host: www.undeva.org

User-agent: sparql-client/1.0

Accept: application/turtle, application/rdf+xml

cerere HTTP

Page 92: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Un posibil răspuns din partea serviciului:

HTTP/1.1 200 OK Date: Fri, 1 Nov 2013 19:33:00 GMT Server: Apache/2.4.6 (Unix) Connection: closeContent-Type: application/turtle

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. <http://sit.ro/Ana> foaf:knows <http://sit.ro/Bogdan> .…

mesaj de răspuns HTTP

Page 93: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: protocol

Maniera de serializare XML a rezultatelorinterogărilor SPARQL este standardizată

SPARQL Query Results XML Format (2013)

www.w3.org/TR/rdf-sparql-XMLres/

Page 94: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

Procesoare SPARQL – exemplificări:AllegroGraph (Java)

ARC (PHP)ARQ (Java – bazat pe Jena)

dotNetRDF (C#)EasyRDF (PHP)

Rasqual (C, cu portări în alte limbaje)RDF::Query (Perl)sparql-p (Python)

de consultat și http://semanticweb.org/wiki/Tools

Page 95: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

Implementări ale protocolului SPARQL

http://www.w3.org/wiki/SparqlImplementations

exemplificări:RDF2Go – abstractizează accesul la RDF stores

SparqlGUI (C#), Twinkle (Java)editoare de interogări SPARQL pentru desktop

Sparqling (JavaScript) – aplicație Web pentru Chrome

Page 96: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

Twinkle – interogări asupra unui document RDF local

SELECT ?nume ?url ?limbaj WHERE {

[ g:label ?nume ; g:URL ?url ; g:FOSS ?foss ; g:Category ?categ ;

g:Language ?limbaj ] .

FILTER (?foss = 'Yes' && ?categ = 'Database/Datastore' &&

(?limbaj = 'PHP' || regex (?limbaj, "^C"))) .

} ORDER BY ?limbaj

Page 97: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

SELECT DISTINCT ?abilitati

WHERE {

[ a <http://dbpedia.org/ontology/FictionalCharacter> ;

<http://dbpedia.org/property/abilities> ?abilitati ] . }

LIMIT 30

interogări asupra DBpedia via instrumentul Twinkle:listarea abilităților personajelor fictive

Page 98: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

interogări SPARQL via o interfață Webaici, proiectul UniProt (Universal Protein Resource)

Page 99: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

Puncte terminale (end-points) SPARQL:http://www.w3.org/wiki/SparqlEndpoints

+ seturi de date deschise – exemplificări:

DBpediahttp://wiki.dbpedia.org/Downloads

oferite de inițiativa Linked Open Datahttp://datahub.io/group/lod

bioinformatică – proiectul BIO2RDFhttp://download.bio2rdf.org/release/2/release.html

Page 100: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumente

Puncte terminale (end-points) SPARQL:

verificarea disponibilității:SPARQL Endpoints Status – http://sparqles.okfn.org/

detalii privind descoperirea de servicii SPARQL în C. Buil-Aranda et al., SPARQL Web-Querying Infrastructure:

Ready for Action?, ISWC 2013http://sw.deri.org/~aidanh/docs/epmonitorISWC.pdf

https://www.youtube.com/watch?v=k8AJ4evqbCc

Page 101: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: instrumenteSPARQL Endpoints Status pe baza serviciilor

SPARQL înregistrate la datahub.io

Page 102: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Câteva exemplificări din lumea reală?

Page 103: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Interogarea SPARQL asupra DBpedia:informații despre locul de naștere a lui Eminescu

PREFIX dc: <http://purl.org/dc/elements/1.1/>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

PREFIX dbp: <http://dbpedia.org/property/>

SELECT ?locNastere ?dataNastere ?foto ?desc WHERE {

?persoana rdfs:label "Mihai Eminescu"@en ;

dbp:birthPlace ?locNastere ;

dbp:dateOfBirth ?dataNastere ;

foaf:img ?foto .

OPTIONAL { ?persoana dc:description ?desc } .

}

ORDER BY DESC (?locNastere)

Page 104: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

de observat diferitelegranularități

utilizarea instrumentului Twinklepentru a avea acces la DBpedia

Page 105: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

clase de resurse

interogarea SPARQL asupra DBpedia:ocupația persoanelor cu un anumit sufix al numelui

SELECT ?nume ?ocupatie

WHERE {

?persoana foaf:name ?nume ;

dbp:occupation ?ocupatie .

FILTER regex (?nume, "escu$")

}

ORDER BY ?nume

LIMIT 7

Page 106: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

acces la DBpedia via interfața Web a serviciului SPARQL:obținerea de informații despre Romania

Page 107: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Interogarea serviciului specific SPARQL al DBpediahttp://dbpedia.org/sparql

pentru a obține date privitoare la anumite state ale lumii(Lee Feigenbaum & Eric Prud’hommeaux, 2011)

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

PREFIX type: <http://dbpedia.org/class/yago/>

PREFIX prop: <http://dbpedia.org/property/>

SELECT ?numeStat ?pop WHERE {

?stat a type:LandlockedCountries ;

rdfs:label ?numeStat ;

prop:populationEstimate ?pop .

FILTER (?pop > 15000000) .

}

Page 108: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Interogarea serviciului specific SPARQL al DBpediahttp://dbpedia.org/sparql

pentru a obține date privitoare la anumite state ale lumii

numeStat pop

Afghanistan 31889923

Afganistán 31889923

Afghanistan 31889923

… …

Uzbequistão 27372000

Узбекистан 27372000

Uzbekistan 27372000

乌兹别克斯坦 27372000

Page 109: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Obținerea datelor privind personalitățile(persoane cu o anumită ocupație, eventual monarhi)

care au numele începând cu litera A

SELECT DISTINCT ?personalitate ?nume ?dataMoarte

WHERE {

?personalitate rdf:type

<http://umbel.org/umbel/rc/PersonWithOccupation> .

OPTIONAL { ?personalitate rdf:type d:Monarch . }

?personalitate d:deathDate ?dataMoarte .

?personalitate rdfs:label ?nume .

FILTER (lang (?nume) = "en" AND regex (?nume, "^A"))

}

ORDER BY ?dataMoarte

LIMIT 10

Page 110: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Page 111: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Lista filmelor vorbite în limba japoneză, regizate și– totodată – scrise de persoane născute după anul 1960

PREFIX dbo: <http://dbpedia.org/ontology/>

PREFIX dbprop: <http://dbpedia.org/property/>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?film ?nume ?regizor ?dataNastere WHERE {

?film a dbo:Film ;

dbo:language <http://dbpedia.org/resource/Japanese_language> ;

dbprop:director ?regizor ;

dbprop:writer ?scenarist ;

foaf:name ?nume .

?regizor dbprop:dateOfBirth ?dataNastere .

FILTER ((?dataNastere >= 1960) && ?regizor = ?scenarist) .

}

ORDER BY ?nume

LIMIT 7

Page 112: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

graful asociat interogării

rezultatele obținute

Page 113: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Fie interogarea SPARQL asupra DBpedia:numele papilor născuți în Roma

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT * WHERE {

?papa a <http://dbpedia.org/ontology/Pope> ;

<http://dbpedia.org/property/birthPlace>

<http://dbpedia.org/resource/Rome> ;

rdfs:label ?nume .

}

LIMIT 3

sparql: detectarea inconsistențelor

Page 114: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

iSparqleditare vizualăa interogărilor

Page 115: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

???

rezultatul obținut

sparql: detectarea inconsistențelor

Page 116: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Detectarea resurselor DBpediacare prezintă adrese Web specificate eronat

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX dbpedia2: <http://dbpedia.org/property/>

SELECT ?subiect ?url

WHERE {

{ ?subiect foaf:page ?url . }

UNION

{ ?subiect dbpedia2:siteweb ?url . }

FILTER (isLITERAL (?url))

}

LIMIT 7

Page 117: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

SELECT ?subiect ?url

WHERE {

?subiect dbpedia2:siteweb ?url .

FILTER (isLITERAL (?url))

} ORDER BY DESC (?url)

LIMIT 7

Page 118: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

apare rdf:Literalîn loc de rdf:Resource

SELECT ?subiect ?url

WHERE {

?subiect dbpedia2:siteweb ?url .

FILTER (isLITERAL (?url))

} ORDER BY DESC (?url)

LIMIT 7

Page 119: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

SPARQL oferă premisele verificării corectitudinii datelor(context mai larg: knowledge quality)

apare rdf:Literalîn loc de rdf:Resource

SELECT ?subiect ?url

WHERE {

?subiect dbpedia2:siteweb ?url .

FILTER (isLITERAL (?url))

} ORDER BY DESC (?url)

LIMIT 7

Page 120: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Folosind punctul terminal SPARQL oferit de inițiativa voiD, avem informații privind seturi de date utilizând DBpedia

SELECT DISTINCT ?dataset ?url ?voc

WHERE {

?dataset a void:Dataset .

?dataset void:subset ?set .

?set void:objectsTarget

<http://dbpedia.org/void.ttl#DBpedia> .

?dataset void:sparqlEndpoint ?url .

?dataset void:vocabulary ?voc .

}vezi http://www.w3.org/TR/void/

Page 121: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Fragment din răspunsul oferit de serviciul voiDhttp://void.rkbexplorer.com/sparql/

Page 122: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Acces la HCLS (Health Care and Life Science) http://hcls.deri.org/sparql – pentru a obține date

biomedicale disponibile sub licența Science Commons

PREFIX go: <http://purl.org/obo/owl/GO#>

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

PREFIX obo: <http://www.obofoundry.org/ro/ro.owl#>

SELECT DISTINCT ?label ?process WHERE {

{ ?process obo:part_of go:GO_0007165 } # integral to

UNION

{ ?process rdfs:subClassOf go:GO_0007165 } # refinement of

?process rdfs:label ?label

}

“Find me the cellular processes that are either integral to or a refinement of signal transduction.” – Feigenbaum, 2009

Page 123: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: exemplificare

Obținerea de date privind entități referitoare la evenimentele ISWC (International Semantic Web

Conference) și ESWC (European Semantic Web Conference) http://data.semanticweb.org/

datele despre fiecare conferință sunt stocateîntr-un graf separat (named graph)

Page 124: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

# Participanții comuni la ISWC2010 și ESWC2011

# al căror nume începe cu litera N

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT DISTINCT ?nume

FROM NAMED

<http://data.semanticweb.org/conference/eswc/2011/complete>

FROM NAMED

<http://data.semanticweb.org/conference/iswc/2010/complete>

WHERE {

GRAPH ?g1 { ?pers a foaf:Person ; foaf:name ?nume }

GRAPH ?g2 { ?pers a foaf:Person ; foaf:name ?nume }

FILTER ( ?g1 != ?g2 && regex (?nume, "^N") ) .

}

LIMIT 7

exemplu inspirat de (Corno & Farinetti, 2009)

nume

"Neil Ireson"

"Nenad Stojanovic"

"Nicholas Gibbins"

"Nicola Fanizzi"

"Nicola Henze"

"Norman Heino"

Page 125: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

organizații participantela ambele evenimente

Page 126: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

aflarea entităților cu anumite review-uri(comentarii, punctaj) disponibile la Revyu.com

Page 127: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

<sparql xmlns="http://www.w3.org/2005/sparql-results#"><head><variable name="?eticheta"/><variable name="?comentariu"/>

<variable name="?punctaj"/></head> <results ordered="false" distinct="false">

<result> <binding name="?eticheta">

<literal>Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan</literal>

</binding> <binding name="?comentariu">

<literal>I found the Borat film quite a disappointment. Being a long-time fan

of Sacha Baron Cohen in all his different guises, I was left with the feeling that he hadn't done the character, or himself, justice. […]

</literal></binding> <binding name="?punctaj"><literal>3</literal></binding>

</result></results>

</sparql> formatul XML standardizat al răspunsului

Page 128: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

date publiceguvernamentale

oferite de data.gov.uk

pe baza unuiserviciu SPARQL

(open government)

PREFIX ed: <http://education.data.gov.uk/def/school/>

SELECT DISTINCT ?denumire ?capacitate

WHERE {

?scoala a ed:TypeOfEstablishment_Other_Independent_School ;

ed:establishmentName ?denumire ;

ed:establishmentNumber ?capacitate

}

ORDER BY DESC(?capacitate)

LIMIT 10

Page 129: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

British Museum: acces la date via http://collection.britishmuseum.org/sparql

Page 130: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

vizualizarea structurată a datelor (aici, animale sălbatice) preluate de la BBC via OpenLink HTML5 Pivot Viewer

DESCRIBE ?s

WHERE {

?s a <http://purl.org/ontology/wo/Species> ;

foaf:depiction ?foto

} LIMIT 150

Page 131: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

generarea de chart-uri pe baza datelor obținute cu SPARQL biblioteca Sgvizler (JavaScript)

https://code.google.com/p/sgvizler/

SELECT *

WHERE {

[ ] w:hasCountryCode ?ID ; w:hasGNP ?GNP ;

}

Page 132: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql.us – enumerarea conceptelor (clase de resurse) definite de schema.org – scheme de date folosite via microdate HTML5

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>SELECT *WHERE {

?concept rdf:type rdfs:Class .}

?concept = http://schema.org/Thing

?concept = http://schema.org/CreativeWork

?concept = http://schema.org/Article

?concept = http://schema.org/BlogPosting

?concept = http://schema.org/NewsArticle

?concept = http://schema.org/ScholarlyArticle

?concept = http://schema.org/MedicalScholarlyArticle

?concept = http://schema.org/Blog

?concept = http://schema.org/Book

?concept = http://schema.org/Comment

Page 133: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql: recapitulare

O interogare SPARQL constă în:

declarații de prefixe – vocabulare desemnate de URL

definiții ale seturilor de date (grafuri RDF) interogate

clauză (result clause) identificând datele rezultate

un șablon (query pattern) specificând termeni liberi

modificatori (query modifiers) ce oferă posibilități de fragmentare, sortare, rearanjare a rezultatelor interogării

Page 134: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ProcesorSPARQL

HTML

bază

de daterelațională

RD

B↔

RD

F

bază

de date(e.g.,

NoSQL)

pu

nct

term

inal

SPA

RQ

L

triple store p

un

ctte

rmin

al S

PAR

QL

Aplicație

teh

nic

i NL

P

text nestructurat

XML/XHTML

graf RDF

SPARQL – privire de ansamblu (Ivan Herman, 2012)

Page 135: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

arhitectura serverului Virtuoso

Page 136: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql – viitor

Propunere de extindere a SPARQL

SPARQL 1.0SPARQL 1.1SPARQL 2.0

a se studia și prezentarea lui Lee Feigenbaum (2010)www.slideshare.net/LeeFeigenbaum/sparql2-status

Page 137: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql 1.1

Oferă mijloace pentru exprimarea:actualizărilor de date (updates)

negațiilor (negation)agregărilor (aggregates)

proiecțiilor (projected expressions)sub-interogărilor (subqueries)

conform (Bob DuCharme, 2013)

Page 138: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql – viitor

anatomia unei interogări SPARQL 1.1conform David Backett (2011)

Page 139: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

obținerea datelor privind profesorii îndrumători și numărul studenților examinați de fiecare

SELECT ?prof (COUNT (DISTINCT ?stud) AS ?studenti)

WHERE {

?prof a ac:Student_Adviser ;

s:examineaza ?stud

} GROUP BY ?prof

funcțiile de agregare (AVG, COUNT, MIN, MAX, SUM,…) sunt deja implementate de anumite sisteme SPARQL

Page 140: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql 1.1

Posibilitatea utilizării funcțiilor de proiecție:

SELECT (fn:concat (?prenume, ' ', ?nume) AS ?numeComplet)

WHERE {

?persoana foaf:firstName ?prenume ;

foaf:lastName ?nume ;

foaf:interest :Art , :Music .

}

obținerea numelui complet al persoanelorinteresate de artă și muzică

Page 141: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

SELECT *

WHERE {

?s ?p ?o .

MINUS { ?s <http://xmlns.com/foaf/0.1/maker> ?o . }

}

MINUS exprimă negația

Page 142: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

SELECT ?nume

WHERE {

?persoana foaf:firstName ?nume

FILTER ( NOT EXISTS { ?persoana rel:knowsByReputation [ ] } )

}

numele persoanelor care nu cunosc după reputație pe cineva important

Page 143: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql 1.1

Specificarea drumurilor privind proprietățile(property paths)

potrivirile de triple iau în considerațiedrumurile prin graful RDF

specificate sintactic via expresii similare XPath

a/b ^a a|b a* a+ a? a{m,n} a{n} a{m,} a{,n}

unde a și b sunt URI-uri ce semnifică predicate

Page 144: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

SELECT ?persoana

WHERE {

s:dlucanu s:examineaza/(rel:closeFriendOf|rel:siblingOf) ?persoana

}

determinarea persoanelor care sunt prieteni apropiațisau rude cu un student examinat de un anumit profesor

persoana

s:diana

s:cristina

Page 145: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Recurgerea la puncte terminale SPARQL multiple(federated query) – adaptare după Lee Feigenbaum (2010)

PREFIX s: <…>

SELECT …

FROM s:graph

WHERE {

… A …

SERVICE s:sw1 {

… B …

}

SERVICE s:sw2 {

… C …

}

}

s:graph

Web

SPARQL endpoint

s:sw2

SPARQL endpoint

s:sw1

Local Graph Store

SD

SD = Service Description (folosind RDF)

Page 146: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql 1.1

un serviciu SPARQL poate avea atașată o descriere RDF conform www.w3.org/TR/sparql11-service-description/

exemplu: serviciul http://gov.tso.co.uk/legislation/sparql (legislație)

Page 147: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql 1.1

Posibilități de actualizare a grafurilor RDF:INSERT DATA, DELETE DATA, MODIFY, LOAD, CLEAR

Managementul unui graf RDF:CREATE, DROP, COPY, MOVE, ADD

www.w3.org/TR/sparql11-update/

Page 148: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql 1.1

INSERT DATA { # inserăm unele date despre noua eroină :-)

:desdemona foaf:title "Dr." ; foaf:name "Dés de Möna" .

}

MODIFY <http://castel.info/eveniment/bal-mascat/participanti>

DELETE { ?persoana foaf:knows :julieta } # substituim :julieta

INSERT { ?persoana foaf:knows :desdemona } # cu noua venită

WHERE {

?persoana rdf:type foaf:Person .

?persoana foaf:knows :julieta .

}

fiecare operațiee considerată

atomică

Page 149: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql

Pentru mai multe detalii, a se consulta:

Bob DuCharme, Learning SPARQL. Querying and Updating with SPARQL 1.1 (Second Edition), O’Reilly, 2013

Lee Feigenbaum & Eric Prud’hommeaux,SPARQL By Example, 2013

www.cambridgesemantics.com/semantic-university/sparql-by-example

Page 150: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

sparql – privire de ansamblu

SPARQL permite:extragerea de valori de interes din date (semi)structurate

explorarea datelor via interogări asupraposibilelor relații ce pot fi stabilite între aceste date

realizarea de join-uri complexe

transformarea datelor RDF dintr-un vocabular în altul,inclusiv cu posibilitatea actualizării

Page 151: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

rezumat

obținerea, transformarea și interogareadatelor modelate în RDF

Page 152: Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

episodul viitor: aplicații Web bazate pe RDF. Linked Data