web04 semantic web: managementul datelor rdf

90
Dr. Sabin Buraga http://www.purl.org/net/busaco Semantic Web <?xml version=“1.0” ?> <curs desc=“…” /> Web semantic Dr. SabinCorneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/

Upload: sabin-buraga

Post on 07-Dec-2014

3.681 views

Category:

Education


3 download

DESCRIPTION

Aspecte privind managementul datelor RDF si a aplicatiilor folosind RDF, inclusiv instrumentele software necesare, sisteme de stocare, maniere de interogare prin SPARQL etc.

TRANSCRIPT

Page 1: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Web semantic

Dr. Sabin­Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Page 2: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Managementul datelor RDF

Page 3: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

“Trebuie sa adunam fapte pentru a avea idei.”

Georges­Louis de Buffon

Page 4: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

intrebari

Ce instrumente de procesarea declaratiilor RDF putem folosi?

Page 5: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Conform (Bailer &

 Hausenblas, 2007)

Page 6: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

Procesor (parser) RDF

preluarea datelor in diverse formate si reprezentarea lor ca triple RDF

Page 7: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

Serializator (serializer) RDF

exprimarea modelului intern RDFin diverse formate standard: RDF/XML, N3,...

Page 8: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

instrumente

API‐uri RDF – exemple:

ActiveRDF (Ruby)CARA – CArmen RDF API (Perl)

Drive.NET (C#)Jena Semantic Web Toolkit (Java)

RAP – RDF API for PHP RDFLib (Python)

Redland (C/C++; bindings in alte limbaje)SemWeb (C#)Wilbur (Lisp)

Page 9: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

Convertor RDF

preluarea datelor din alte modelesi transformarea lor in RDF

extragerea directa din documentele HTMLvia scrapers/harvesters

Page 10: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

instrumente

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

Greengrass (C#)LinqToRDF (C#)

Piggy Bank (JavaScript – extensie Firefox)Raptor (C)

RDF123 (Java)sommer (Java)

Semantic Radar (JavaScript – extensie Firefox)

Page 11: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

instrumente

Initiativa Triplify:

triplify.org

Page 12: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

Motoare de cautare

cauta documente RDF,eventual extrag cunostinte – e.g., meta‐date –

din alte documente (HTML, RSS,...)

pot beneficia de servicii de pingingpingthesemanticweb.com

Page 13: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

instrumente

Motoare de cautare – exemple:

SindiceSwoogle

SWSE – Semantic Web Search EngineWatson

Page 14: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

O modalitate standardizata de “convertire”a constructiilor semantice incapsulatein documentele Web in triple RDF

Page 15: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

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 16: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

grddl

Permite asocierea de transformari din formate structurate (e.g., microformate, RDFa, XML) in declaratii RDF,

fara pierderea semanticii (meaning)

www.w3.org/TR/grddl/

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

Page 17: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

grddl

Exista o multitudine de documente recurgind la anumite dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –,incapsulind informatii care ar putea fi redate in RDF 

se doreste o asociere faithful – se pastreaza intelesul

se va specifica o transformare GRDDL uzual, se foloseste XSLT

Page 18: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

grddl

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

Page 19: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

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 20: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

grddl: exemplu

In urma transformarii 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 21: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

Un sistem de stocare/interogare a triplelor RDF

Page 22: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sisteme de stocare rdf

Datele RDF sunt memorate in cadrul unui RDF store

aspecte de interes:performanta

capacitatea de stocarefacilitatile privind interogarea

API‐urile disponibile

Page 23: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sisteme de stocare rdf

Se ofera posibilitatea fuzionarii (merging)a seturilor de date RDF

date 2 seturi de triple RDF, in urma fuzionarii va rezulta un set de triple RDF incluzind toate triplele din ambele seturi de intrare in care resursele avind acelasi URI 

sunt considerate echivalente

Page 24: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sisteme de stocare rdf

Intern, un RDF store poate stoca tripleleintr‐o varietate de formate:

baze de date relationalestructuri de date speciale

asigurarea interoperabilitatii este facilitata de formatele de serializare standardizate – precum RDF/XML

Page 25: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sisteme de stocare rdf

Exemple:BOCA (Java)

Brahms (C/C++)D2R Server (Java)Joseki (Java)

Kowari & Mulgara (Java)Oracle Spatial 10g (C/C++)

Oyster (Java)RDFStore (C, Perl)Sesame (Java)

Page 26: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

necesitati

Un limbaj de interogare a seturilor de triple RDF

Page 27: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

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 28: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql

Ofera suport pentru manipularea constructiilor RDF

Pune la dispozitie operatii asupra grafurilor RDF

Independent de platforma software utilizata

Limbaj de interogare + protocol de acces la triple RDF

Page 29: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql

Precursori:limbaje inspirate de SQL: RDQL, SeRQL, RQL,...limbaje inspirate de XPath: Versa, RDFPath

limbaje bazate pe reguli: N3QL, Triple, DQL, OWL‐QL,…suportul de interogare oferit de XML: XSLT, XPath, XQuery

Page 30: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: xml vs. rdf (Beckett, 2006)

Concept XML RDF

Model document/arbore /infoset set de triple = graf RDF

Atomi elemente, atribute, text triple, URI‐uri, noduriblanc, literali (text)

Identificatori

Nume de elemente/atributeNume calificate (qnames)identificatori (ID‐uri)

expresii XPath

URI‐uri(IRI‐uri)

Structura(schema)

DTD‐uri, scheme XML, RELAX NG,...

Scheme RDF (RDF Schema)

Page 31: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Ofera acces – via interogari – la datele RDFdoar pentru consultare (read­only)

modelul de interogare e fundamentat desabloane de grafuri RDF – graph patterns

constantele dintr‐un graf RDF sunt substituite de variabile

nu se bazeaza pe cai (paths) sau reguli (rules)

Page 32: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Recomandare a Consortiului Web

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

Page 33: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Termeni RDF (RDF‐T): reuniunea multimilor IRI, noduri blanc, literali RDF

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

Sabloane (triple patterns): membru al multimii(RDF‐T ∪ V) × (IRI ∪ V) × (RDF‐T ∪ V) 

Sabloane de tip graf: multime de sabloane

Page 34: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Conventii sintactice bazate pe Turtle/N3

Triplele RDF sunt generalizateca fiind tablouri de termeni RDF

termen RDF = IRI | nod blanc | literal

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

Page 35: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

URI – sau, mai general, IRI – delimitati de “<” si “>”<http://www.info.uaic.ro/>

se poate folosi constructia @prefix pentru a specificaspatii de nume ale vocabularelor utilizate

nodurile blanc se specifica prin _:numesau delimitate de “[” si “]” daca se folosesc o singura data

Page 36: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Literali RDF(siruri de caractere cu atribute optionale)

"Web" "Web"@ro <!-- se indica limba --> "Web"^^xsd:string <!-- se specifica tipul de date --> "true"^^xsd:boolean

Page 37: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

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 38: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Abrevieriprivitoare la nodurile blanc

:s :p [ :p' :o ] echivalent cu :s :p _:x . _:x :p' :o .

Page 39: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Un şablon (pattern) permite specificareade variabile indicând informații ce vor fi returnate 

în urma realizării interogării

?subiect ?predicat ?obiect .

Page 40: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Exemplu

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

?persoana foaf:knows ?alta_persoana .

Page 41: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Sabloanele pot fi combinate pentru a forma şabloane mai complexe

şabloane de tip graf (graph patterns)

componente ale unei interogari SPARQL

Page 42: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

SELECT ?contribWHERE {<http://en.wikipedia.org/> <http://purl.org/dc/elements/1.1/contributor>?contrib .

}

{ … } desemneaza un graph pattern

Selectarea celorce au contribuit la 

o resursa

Page 43: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Rezultatul interogarii poate fi:

un tabel de valori corespunzatoare variabilelor utilizate, rezultat precizat prin SELECT

o valoare booleana intoarsa de constructia ASK

un graf RDF creat via CONSTRUCT sau DESCRIBE

Page 44: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

SELECT: rezultatul interogarii reprezinta un tabelsecventa de rinduri compuse

din valorile variabilelor (variable bindings)

oferirea de valori distincte via DISTINCTordonarea rezultatelor prin ORDER BY

returnarea de sub‐secvente cu LIMIT si OFFSETprecizarea constructiilor optionale prin OPTIONAL

Page 45: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Informatiile interogate pot fi filtratevia clauza FILTER

expresiile de filtrare includ:variabile

operatori aritmetici/logicifunctii (predefinite sau specificate de utilizator)

tipuri de date definite de XML Schema

Page 46: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

FILTER (?anul = 2)

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

FILTER regex (?titluCarte, "^Semantic")

Page 47: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Interogare: ce aplicatii utilizeaza Sabin?s:Sabin s:utilizeaza ?aplicatie .

Rezultatul interogarii:?aplicatie = soft:Firefox?aplicatie = soft:iTunes

?aplicatie = soft:ZynAddSubFX…

Page 48: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX s: <http://www.infoiasi.ro/SW#>SELECT ?nume ?adresa ?aniWHERE {?pers foaf:name ?nume .?pers s:ani ?ani . FILTER (?ani < 33) .OPTIONAL { ?pers foaf:mbox ?adresa . }

}ORDER BY ?ani DESC (?nume)LIMIT 10

Informațiidespre 

primele 10 persoane cuvârsta < 33

Page 49: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Graful RDF de intrare poate fi specificat via URI

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

Page 50: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Nodurile blanc intr‐o interogare joaca rol de variabile anonime

Page 51: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

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 .

}

Determinareatuturor declaratiilorreificate exprimatede Wikipedia

Page 52: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: limbaj de interogare

Obtinerea de sabloane de graf alternativese face via clauza UNION

Page 53: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol

Pune la dispozitie mecanismul de realizarede interogari SPARQL prin invocarea de servicii

aflate la distanta (SPARQL end­points)

serviciile SPARQL pot fi descrise si invocate via tehnologiile serviciilor Web clasice (SOAP, WSDL, REST,…)

exemplu: http://dbpedia.org/sparql/

Page 54: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol

Recomandare a Consortiului Web

www.w3.org/TR/rdf­sparql­protocol/

Page 55: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol

Exemplu de invocare a unei interogari SPARQL:

GET /sparql/?query=interogare&graph-uri=http://www.retea-sociala.info/document-foaf.rdf HTTP/1.1

Host: www.undeva.orgUser-agent: sparql-client/0.1 Accept: text/turtle, application/rdf+xml

Page 56: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol

Un posibil raspuns din partea serviciului:

HTTP/1.1 200 OK Date: Mon, 04 Nov 2008 14:33:00 GMT Server: Apache/1.3.29 (Unix) Connection: closeContent-Type: text/turtle

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

Page 57: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol

Maniera de serializare XML a rezultatelorinterogarilor SPARQL este standardizata

SPARQL Query Results XML Format

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

Page 58: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Studiu de caz – adaptare dupa (Todd Williams, 2007):

dorim sa obtinem imagini care contin obiective de interesaflate in vecinatatea unui punct (locatie geografica)

filtrarea se va putea realiza pe alte calculatoare

calculul distantei dintre doua puncte geografice poate firealizat de servere multiple via implementari JavaScript specificate prin RDF: numele functiei + URI‐ul sursei

Page 59: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

PREFIX f: <http://undeva.org/functii.rdf#>SELECT ?locatie ?imagineWHERE {

?imagine dcterms:spatial [a geo:Point ;foaf:name ?locatie ;geo:lat ?lat ; geo:long ?long

] .FILTER ( f:distanta ( ?lat, ?long, 38.9, -76.9 ) < 15 ) .

}

Care‐s imaginilelocalizate in proximitatea

mea?

Poate fi calculata pe masini diferite

Page 60: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Client(aplicatie Web)

ServiciuSPARQL(end­point)

Interogare SPARQLtrimisa via HTTP

Page 61: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Client(aplicatieWeb)

ServiciuSPARQL(end­point)

GET functii.rdf Server Web

Page 62: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Client(aplicatieWeb)

ServiciuSPARQL(end­point)

Server Web

:distanta a f:Function;f:sursa <http://sit.ro/dist.js>;f:functie "calculDistanta" .

raspuns RDF

Page 63: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Client(aplicatieWeb)

ServiciuSPARQL(end­point)

Server Web

GET dist.js

Server Web

Page 64: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Client(aplicatieWeb)

ServiciuSPARQL(end­point)

Server Web

function calculDistanta(lat1, lon1, lat2, lon2) { ... }

Server Web

Page 65: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: protocol –mash‐ups

Client(aplicatieWeb)

ServiciuSPARQL(end­point)

Server Web

Server Web

?locatie ?imagine

Universitate http://flickr.com/20/fdsdw3.jpgTeatru http://places.org/img/t.jpg

raspuns

Page 66: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: instrumente

AllegroGraph (Java)ARC (PHP)

OpenRDF Sesame (Java)Rasqual (C)

RDF::Query (Perl)SPARQL library (Java)Virtuoso (C/C++)

Page 67: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql: instrumente

Page 68: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

sparql+

Propunere de extindere a SPARQLpentru a suporta operatii de actualizare a datelor RDF

http://esw.w3.org/topic/SPARQL/Extensions/Update

Page 69: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf

Tipuri majore de aplicatii RDF

integrare de resurse: bookmark‐uri, calendare, informatii cartografice (map integration)

adnotare avansata a resurselor

management “inteligent” al continutului

Page 70: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf

Arhitectura aplicatiilor bazate pe RDF(Allemang & Hendler, 2008)

Page 71: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Managementul “inteligent” al codului‐sursaBaetle: Bug And Enhancement Tracking LanguagE (Sun)

ofera o vedere coerenta a dependentelor dintre diverse proiecte software, permitand filtrarea bug‐urilor

modelare prin RDF, DOAP, SIOC etc.interogari via SPARQL

vezi si blog‐ul Babel Fish: http://blogs.sun.com/bblfish

Page 72: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Managementul “inteligent” al codului‐sursaBaetle: Bug And Enhancement Tracking LanguagE (Sun)

PREFIX : <http://baetle.googlecode.com/svn/ns/#>SELECT *WHERE {

?jar :contains ?c . FILTER REGEX ( str (?c), 'OffsetIterator.class$')

}LIMIT 20

Page 73: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Managementul informatiilor medicaleCleveland Clinic, 2007

constituirea unui depozit de cunostinte privind pacientii>54 milioane de asertiuni RDF

interogari SPARQLintegrarea unui sistem expert

Page 74: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Page 75: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Managementul informatiilor personale in KDE 4.0proiectul NEPOMUK Semantic desktop (2008)

servicii de cautare & adnotare a resurselorla nivel de desktop pe baza instrumentului Soprano

meta‐datele asociate fisierelor sunt stocate in RDF

www.w3.org/2001/sw/sweo/public/UseCases/Nepomuk/Nepomuk.pdf

Page 76: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Componente logice ale unui semantic desktop:sisteme de stocare: hard­disk‐uri, stick‐uri USB etc.un robot (crawler) – extrage meta‐date din fiecare fisierun depozit RDF (triple store)un serviciu de interogare SPARQL (end­point)aplicatii ce solicita (cauta, agrega,…) date, 

invocind serviciul SPARQL

a se vizita siwww.semanticdesktop.org

Page 77: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Componente logice ale unui semantic desktop:

N. Spivak et al., “Developing Web 3.0”, JavaOne, 2007

Page 78: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Agregarea informatiilor privind angajatii NASAsistemul POPS de management inteligent al angajatilor: date personale, competente, implicari in proiecte etc.

interogari vizuale ale datelor RDF prin jSpace

arhitectura bazata pe servicii Web in stil REST

www.w3.org/2001/sw/sweo/public/UseCases/Nasa/Nasa.pdf

Page 79: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Page 80: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Managementul resurselor bibliotecilor digitale

JeromeDLjeromedl.org

BRICKSwww.brickscommunity.org

Detalii in Kruk et al., “Tutorial – Semantic Digital Libraries”, WWW Conference, 2007

Page 81: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Solutii colaborative de management al resurselormultimedia in medii de productieInteractive Media Manager (Microsoft)

recurge la un cadru de lucru bazat pe meta‐datemodelate in RDF si interogate prin SPARQL

tipurile de resurse sunt specificate via ontologii (OWL)

se ofera si un SDK specializat disponibil pentru .NET

Page 82: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Management colaborativ al continutuluimodelat semantic (semantic wikis)

Semantic MediaWiki

extensie a sistemului MediaWiki:permite adnotarea semantica a continutului unui wiki

facilitati: specificarea proprietatilor,realizarea de interogari, exportarea datelor in RDF etc.

Page 83: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Semantic MediaWiki

marcaje semantice:Title: '''[[Has Title::Mythical Man-Month]]'''

ISBN: [[Has ISBN::0201835959]]

“triple” RDF:(Man-Month, Has Title, "Mythical Man-Month")

(Man-Month, Has ISBN, "0201835959")

Page 84: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Cautarea “avansata” a resurselor WebSearch Monkey (Yahoo!)

ofera maniere de rafinare a rezultatelor cautarilor pe Web

se bazeaza pe meta‐date scufundate in documentele HTML (microformate, RDFa)

se poate recurge la o extragere “manuala”a datelor de interes dintr‐o pagina via XSLT

Page 85: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Search Monkey (Yahoo!)

utilizatorul (consumatorul) trebuie “sa puna la treaba”o “maimuta” de cautare via 

http://developer.search.yahoo.com/

pentru vocabulare si microformate consacrate,pot fi realizate automat extractii de date – eventual, filtrate

maniera de vizualizare poate fi ajustata via PHP

Page 86: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Page 87: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

aplicatii rdf: exemplificari

Alte studii de caz pe situl Consortiului Web:www.w3.org/2001/sw/sweo/public/UseCases/

A se consulta si David Provost, “On The Cusp: A GlobalReview of the Semantic Web Industry”, septembrie 2008

Page 88: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

concluzii

Avind la dispozitie date modelate in RDF,se ofera premisele cautarii, descoperirii, achizitiei, 

colectarii, analizei si procesariiinformatiilor disponibile pe Web

management avansat al cunostintelor

Page 89: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Rezumat

Obtinerea, transformarea si interogareadatelor modelate in RDF

Page 90: Web04 Semantic Web: Managementul datelor RDF

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

?