Aspecte privind managementul datelor RDF si a aplicatiilor folosind RDF, inclusiv instrumentele software necesare, sisteme de stocare, maniere de interogare prin SPARQL etc.
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Web04 Semantic Web: Managementul datelor RDF
1. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Web semantic
Dr. SabinCorneliu Buraga
Facultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
Dr. Sabin Buraga http://www.purl.org/net/busaco
3. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
“Trebuie sa adunam fapte
pentru a avea idei.”
GeorgesLouis de Buffon
Dr. Sabin Buraga http://www.purl.org/net/busaco
4. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
intrebari
Ce instrumente de procesare
a declaratiilor RDF putem folosi?
Dr. Sabin Buraga http://www.purl.org/net/busaco
6. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitati
Procesor (parser) RDF
preluarea datelor in diverse formate si
reprezentarea lor ca triple RDF
Dr. Sabin Buraga http://www.purl.org/net/busaco
7. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitati
Serializator (serializer) RDF
exprimarea modelului intern RDF
in diverse formate standard: RDF/XML, N3,...
Dr. Sabin Buraga http://www.purl.org/net/busaco
8. <?xml version=“1.0” ?>
Semantic Web <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)
Dr. Sabin Buraga http://www.purl.org/net/busaco
9. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitati
Convertor RDF
preluarea datelor din alte modele
si transformarea lor in RDF
extragerea directa din documentele HTML
via scrapers/harvesters
Dr. Sabin Buraga http://www.purl.org/net/busaco
11. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
instrumente
Initiativa Triplify:
triplify.org
Dr. Sabin Buraga http://www.purl.org/net/busaco
12. <?xml version=“1.0” ?>
Semantic Web <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 pinging
pingthesemanticweb.com
Dr. Sabin Buraga http://www.purl.org/net/busaco
13. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
instrumente
Motoare de cautare – exemple:
Sindice
Swoogle
SWSE – Semantic Web Search Engine
Watson
Dr. Sabin Buraga http://www.purl.org/net/busaco
14. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitati
O modalitate standardizata de “convertire”
a constructiilor semantice incapsulate
in documentele Web in triple RDF
Dr. Sabin Buraga http://www.purl.org/net/busaco
15. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
grddl
GRDDL – Gleaning Resource Descriptions
from Dialects of Languages
glean
verb [ 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.
Dr. Sabin Buraga http://www.purl.org/net/busaco
16. <?xml version=“1.0” ?>
Semantic Web <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/grddlprimer/
Dr. Sabin Buraga http://www.purl.org/net/busaco
17. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
18. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
grddl
Berners‐Lee, 2007: www.w3.org/2007/Talks/1211-whit-tbl/
Dr. Sabin Buraga http://www.purl.org/net/busaco
19. <?xml version=“1.0” ?>
Semantic Web <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> Transformare
<body> GRDDL
<div class=vcard>
<p class=fn n><span class=given-name>Sabin</span>
<span class=family-name>Buraga</span></p>
</div>
...
</body>
</html>
Dr. Sabin Buraga http://www.purl.org/net/busaco
20. <?xml version=“1.0” ?>
Semantic Web <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>
Dr. Sabin Buraga http://www.purl.org/net/busaco
21. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitati
Un sistem de stocare/interogare a triplelor RDF
Dr. Sabin Buraga http://www.purl.org/net/busaco
22. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sisteme de stocare rdf
Datele RDF sunt memorate in cadrul unui RDF store
aspecte de interes:
performanta
capacitatea de stocare
facilitatile privind interogarea
API‐urile disponibile
Dr. Sabin Buraga http://www.purl.org/net/busaco
23. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
24. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sisteme de stocare rdf
Intern, un RDF store poate stoca triplele
intr‐o varietate de formate:
baze de date relationale
structuri de date speciale
asigurarea interoperabilitatii este facilitata de formatele
de serializare standardizate – precum RDF/XML
Dr. Sabin Buraga http://www.purl.org/net/busaco
26. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitati
Un limbaj de interogare a seturilor de triple RDF
Dr. Sabin Buraga http://www.purl.org/net/busaco
27. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql
SPARQL Protocol and RDF Query Language
limbaj descriptiv standardizat
pentru realizarea de interogări pe baza potrivirilor
de şabloane referitoare la triple RDF
inspirat din RDQL – oferit de Jena, RAP, Redland etc.
Dr. Sabin Buraga http://www.purl.org/net/busaco
28. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
29. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
30. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: xml vs. rdf (Beckett, 2006)
Concept XML RDF
Model document/arbore /infoset set de triple = graf RDF
triple, URI‐uri, noduri
Atomi elemente, atribute, text
blanc, literali (text)
Nume de elemente/atribute
URI‐uri
Nume calificate (qnames)
Identificatori
identificatori (ID‐uri) (IRI‐uri)
expresii XPath
Structura DTD‐uri, scheme XML, Scheme RDF
(schema) RELAX NG,... (RDF Schema)
Dr. Sabin Buraga http://www.purl.org/net/busaco
31. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Ofera acces – via interogari – la datele RDF
doar pentru consultare (readonly)
modelul de interogare e fundamentat de
sabloane de grafuri RDF – graph patterns
constantele dintr‐un graf RDF sunt substituite de variabile
nu se bazeaza pe cai (paths) sau reguli (rules)
Dr. Sabin Buraga http://www.purl.org/net/busaco
32. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Recomandare a Consortiului Web
www.w3.org/TR/rdfsparqlquery/
Dr. Sabin Buraga http://www.purl.org/net/busaco
33. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
34. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Conventii sintactice bazate pe Turtle/N3
Triplele RDF sunt generalizate
ca fiind tablouri de termeni RDF
termen RDF = IRI | nod blanc | literal
pattern de triple = tablou de termeni RDF
sau nume de variabile (termeni liberi)
Dr. Sabin Buraga http://www.purl.org/net/busaco
35. <?xml version=“1.0” ?>
Semantic Web <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 specifica
spatii de nume ale vocabularelor utilizate
nodurile blanc se specifica prin _:nume
sau delimitate de “[” si “]” daca se folosesc o singura data
Dr. Sabin Buraga http://www.purl.org/net/busaco
36. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
37. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Abrevieri
referitoare la triple
:s :p :o1 , :s :p :o1 .
:o2 . echivalent cu :s :p :o2 .
:s :p1 :o1 , :s :p1 :o1 .
:o2 . echivalent cu
:p2 :s :p2 :o2 .
Dr. Sabin Buraga http://www.purl.org/net/busaco
38. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Abrevieri
privitoare la nodurile blanc
:s :p [ :p' :o ] echivalent cu :s :p _:x . _:x :p' :o .
Dr. Sabin Buraga http://www.purl.org/net/busaco
39. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Un şablon (pattern) permite specificarea
de variabile indicând informații ce vor fi returnate
în urma realizării interogării
?subiect ?predicat ?obiect .
Dr. Sabin Buraga http://www.purl.org/net/busaco
40. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Exemplu
lista persoanelor inter‐conectate
via predicatul (proprietatea) foaf:knows:
?persoana foaf:knows ?alta_persoana .
Dr. Sabin Buraga http://www.purl.org/net/busaco
41. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
42. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
SELECT ?contrib
WHERE {
<http://en.wikipedia.org/>
<http://purl.org/dc/elements/1.1/contributor>
?contrib .
} Selectarea celor
ce au contribuit la
o resursa
{ … } desemneaza un graph pattern
Dr. Sabin Buraga http://www.purl.org/net/busaco
43. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
44. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
SELECT: rezultatul interogarii reprezinta un tabel
secventa de rinduri compuse
din valorile variabilelor (variable bindings)
oferirea de valori distincte via DISTINCT
ordonarea rezultatelor prin ORDER BY
returnarea de sub‐secvente cu LIMIT si OFFSET
precizarea constructiilor optionale prin OPTIONAL
Dr. Sabin Buraga http://www.purl.org/net/busaco
45. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Informatiile interogate pot fi filtrate
via clauza FILTER
expresiile de filtrare includ:
variabile
operatori aritmetici/logici
functii (predefinite sau specificate de utilizator)
tipuri de date definite de XML Schema
Dr. Sabin Buraga http://www.purl.org/net/busaco
46. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
FILTER (?anul = 2)
FILTER (?dataComanda < 2008-12-31T22:00:00Z^^xsd:date)
FILTER regex (?titluCarte, ^Semantic)
Dr. Sabin Buraga http://www.purl.org/net/busaco
47. <?xml version=“1.0” ?>
Semantic Web <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
…
Dr. Sabin Buraga http://www.purl.org/net/busaco
48. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX s: <http://www.infoiasi.ro/SW#>
SELECT ?nume ?adresa ?ani
WHERE {
Informații
?pers foaf:name ?nume .
despre
?pers s:ani ?ani .
primele 10
FILTER (?ani < 33) .
persoane cu
OPTIONAL { ?pers foaf:mbox ?adresa . } vârsta < 33
}
ORDER BY ?ani DESC (?nume)
LIMIT 10
Dr. Sabin Buraga http://www.purl.org/net/busaco
49. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Graful RDF de intrare poate fi specificat via URI
FROM <http://planetrdf.com/bloggers.rdf>
Dr. Sabin Buraga http://www.purl.org/net/busaco
50. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Nodurile blanc intr‐o interogare joaca rol de
variabile anonime
Dr. Sabin Buraga http://www.purl.org/net/busaco
51. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Crearea unui graf RDF se poate realiza prin CONSTRUCT
CONSTRUCT (?s ?p ?o)
WHERE { Determinarea
?prop rdf:subject ?s . tuturor declaratiilor
?prop rdf:predicate ?p . reificate exprimate
de Wikipedia
?prop rdf:object ?o .
web:Wikipedia s:afirma ?prop .
}
Dr. Sabin Buraga http://www.purl.org/net/busaco
52. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: limbaj de interogare
Obtinerea de sabloane de graf alternative
se face via clauza UNION
Dr. Sabin Buraga http://www.purl.org/net/busaco
53. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol
Pune la dispozitie mecanismul de realizare
de interogari SPARQL prin invocarea de servicii
aflate la distanta (SPARQL endpoints)
serviciile SPARQL pot fi descrise si invocate via
tehnologiile serviciilor Web clasice (SOAP, WSDL, REST,…)
exemplu: http://dbpedia.org/sparql/
Dr. Sabin Buraga http://www.purl.org/net/busaco
54. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol
Recomandare a Consortiului Web
www.w3.org/TR/rdfsparqlprotocol/
Dr. Sabin Buraga http://www.purl.org/net/busaco
55. <?xml version=“1.0” ?>
Semantic Web <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.org
User-agent: sparql-client/0.1
Accept: text/turtle, application/rdf+xml
Dr. Sabin Buraga http://www.purl.org/net/busaco
56. <?xml version=“1.0” ?>
Semantic Web <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: close
Content-Type: text/turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
…
Dr. Sabin Buraga http://www.purl.org/net/busaco
57. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol
Maniera de serializare XML a rezultatelor
interogarilor SPARQL este standardizata
SPARQL Query Results XML Format
www.w3.org/TR/rdfsparqlXMLres/
Dr. Sabin Buraga http://www.purl.org/net/busaco
58. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
Studiu de caz – adaptare dupa (Todd Williams, 2007):
dorim sa obtinem imagini care contin obiective de interes
aflate in vecinatatea unui punct (locatie geografica)
filtrarea se va putea realiza pe alte calculatoare
calculul distantei dintre doua puncte geografice poate fi
realizat de servere multiple via implementari JavaScript
specificate prin RDF: numele functiei + URI‐ul sursei
Dr. Sabin Buraga http://www.purl.org/net/busaco
59. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
PREFIX f: <http://undeva.org/functii.rdf#>
SELECT ?locatie ?imagine
Care‐s imaginile
WHERE {
localizate in
?imagine dcterms:spatial [ proximitatea
a geo:Point ; mea?
foaf:name ?locatie ;
geo:lat ?lat ; geo:long ?long
].
FILTER ( f:distanta ( ?lat, ?long, 38.9, -76.9 ) < 15 ) .
} Poate fi calculata pe masini diferite
Dr. Sabin Buraga http://www.purl.org/net/busaco
60. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
Interogare SPARQL
trimisa via HTTP
Serviciu
Client
SPARQL
(aplicatie Web)
(endpoint)
Dr. Sabin Buraga http://www.purl.org/net/busaco
61. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
GET functii.rdf Server
Web
Serviciu
Client
SPARQL
(aplicatie Web)
(end
point)
Dr. Sabin Buraga http://www.purl.org/net/busaco
62. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
Server
Web
Serviciu
Client
SPARQL
(aplicatie Web)
(end raspuns RDF
point)
:distanta a f:Function;
f:sursa <http://sit.ro/dist.js>;
f:functie calculDistanta .
Dr. Sabin Buraga http://www.purl.org/net/busaco
63. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
Server
Web
Serviciu
Client
SPARQL
(aplicatie Web)
(end
GET dist.js
point)
Server
Web
Dr. Sabin Buraga http://www.purl.org/net/busaco
64. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
Server
Web
Serviciu
Client
SPARQL
(aplicatie Web)
(end
point)
Server
Web
function calculDistanta
(lat1, lon1, lat2, lon2) { ... }
Dr. Sabin Buraga http://www.purl.org/net/busaco
65. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql: protocol – mash‐ups
Server
Web
Serviciu
Client
SPARQL
(aplicatie Web)
(end
point)
Server
raspuns Web
?locatie ?imagine
Universitate http://flickr.com/20/fdsdw3.jpg
Teatru http://places.org/img/t.jpg
Dr. Sabin Buraga http://www.purl.org/net/busaco
68. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
sparql+
Propunere de extindere a SPARQL
pentru a suporta operatii de actualizare a datelor RDF
http://esw.w3.org/topic/SPARQL/Extensions/Update
Dr. Sabin Buraga http://www.purl.org/net/busaco
69. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
70. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf
Arhitectura aplicatiilor bazate pe RDF
(Allemang & Hendler, 2008)
Dr. Sabin Buraga http://www.purl.org/net/busaco
71. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Managementul “inteligent” al codului‐sursa
Baetle: 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
Dr. Sabin Buraga http://www.purl.org/net/busaco
72. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Managementul “inteligent” al codului‐sursa
Baetle: 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
Dr. Sabin Buraga http://www.purl.org/net/busaco
73. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Managementul informatiilor medicale
Cleveland Clinic, 2007
constituirea unui depozit de cunostinte privind pacientii
>54 milioane de asertiuni RDF
interogari SPARQL
integrarea unui sistem expert
Dr. Sabin Buraga http://www.purl.org/net/busaco
75. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Managementul informatiilor personale in KDE 4.0
proiectul NEPOMUK Semantic desktop (2008)
servicii de cautare & adnotare a resurselor
la 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
Dr. Sabin Buraga http://www.purl.org/net/busaco
76. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Componente logice ale unui semantic desktop:
sisteme de stocare: harddisk‐uri, stick‐uri USB etc.
un robot (crawler) – extrage meta‐date din fiecare fisier
un depozit RDF (triple store)
un serviciu de interogare SPARQL (endpoint)
aplicatii ce solicita (cauta, agrega,…) date,
invocind serviciul SPARQL
a se vizita si www.semanticdesktop.org
Dr. Sabin Buraga http://www.purl.org/net/busaco
77. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Componente logice ale unui semantic desktop:
N. Spivak et al., “Developing Web 3.0”, JavaOne, 2007
Dr. Sabin Buraga http://www.purl.org/net/busaco
78. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Agregarea informatiilor privind angajatii NASA
sistemul 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
Dr. Sabin Buraga http://www.purl.org/net/busaco
80. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Managementul resurselor bibliotecilor digitale
JeromeDL
jeromedl.org
BRICKS
www.brickscommunity.org
Detalii in Kruk et al., “Tutorial – Semantic Digital Libraries”,
WWW Conference, 2007
Dr. Sabin Buraga http://www.purl.org/net/busaco
81. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Solutii colaborative de management al resurselor
multimedia in medii de productie
Interactive Media Manager (Microsoft)
recurge la un cadru de lucru bazat pe meta‐date
modelate in RDF si interogate prin SPARQL
tipurile de resurse sunt specificate via ontologii (OWL)
se ofera si un SDK specializat disponibil pentru .NET
Dr. Sabin Buraga http://www.purl.org/net/busaco
82. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Management colaborativ al continutului
modelat 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.
Dr. Sabin Buraga http://www.purl.org/net/busaco
83. <?xml version=“1.0” ?>
Semantic Web <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)
Dr. Sabin Buraga http://www.purl.org/net/busaco
84. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
aplicatii rdf: exemplificari
Cautarea “avansata” a resurselor Web
Search 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
Dr. Sabin Buraga http://www.purl.org/net/busaco
85. <?xml version=“1.0” ?>
Semantic Web <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
Dr. Sabin Buraga http://www.purl.org/net/busaco
87. <?xml version=“1.0” ?>
Semantic Web <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 Global
Review of the Semantic Web Industry”, septembrie 2008
Dr. Sabin Buraga http://www.purl.org/net/busaco
88. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
concluzii
Avind la dispozitie date modelate in RDF,
se ofera premisele cautarii, descoperirii, achizitiei,
colectarii, analizei si procesarii
informatiilor disponibile pe Web
management avansat al cunostintelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
89. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Rezumat
Obtinerea, transformarea si interogarea
datelor modelate in RDF
Dr. Sabin Buraga http://www.purl.org/net/busaco