Resource Description Framework

Dr. Sabin Buragawww.purl.org/net/busaco

Dezvoltarea aplicațiilor Web
Gabriel García Márquez

Dr. Sabin Buragawww.purl.org/net/busaco

“Lucrurile au și ele viață.
Totul este să le trezești su...
Dr. Sabin Buragawww.purl.org/net/busaco

Cum (re)folosim datele disponibile pe Web?
Dr. Sabin Buragawww.purl.org/net/busaco

Am putea (re)considera Web-ul
ca fiind o bază de date distribuită?
O manieră de a atașa date privitoare la date

Dr. Sabin Buragawww.purl.org/net/busaco

necesități
O manieră de a atașa date privitoare la date

Dr. Sabin Buragawww.purl.org/net/busaco

necesități

crearea unor vocabula...
Un mod de a specifica relații între resurse

Dr. Sabin Buragawww.purl.org/net/busaco

necesități
Un mod de a specifica relații între resurse
structuri de organizare a datelor
în cadrul unui sau mai multor web-uri

Dr. ...
Un mod de a specifica relații între resurse
structuri de organizare a datelor
în cadrul unui sau mai multor web-uri

scop...
Uzual, datele sunt reprezentate în formă tabelară
(conform modelului relațional)

Dr. Sabin Buragawww.purl.org/net/busaco...
Uzual, datele sunt reprezentate în formă tabelară
(conform modelului relațional)
un rând descrie un “obiect” (item) specif...
ID
1
2
3
4
5
6
7

Nume
Windows
OS/2
IrfanView
iTunes
Thunderbird
Firefox OS
Sublime Text

Producător
Microsoft
IBM
Irfan
A...
Distribuirea datelor pe Web
fragmente de informații vor fi disponibile (liber)
pe calculatoare diferite,
accesate via tehn...
Distribuirea datelor pe Web
soluția 1:

Dr. Sabin Buragawww.purl.org/net/busaco

motivație

fiecare calculator stochează ...
Distribuirea datelor pe Web



iTunes
Apple
Aperture Apple
Firefox OS Mozilla

Care-i schema
comună?



Freeware
Comerci...
Distribuirea datelor pe Web
soluția 1:

Dr. Sabin Buragawww.purl.org/net/busaco

motivație

fiecare calculator stochează ...
Distribuirea datelor pe Web
soluția 2:

fiecare calculator este responsabil
cu una/mai multe coloane complete

Dr. Sabin B...
Distribuirea datelor pe Web



Windows
OS/2
IrfanView
iTunes
Thunderbird
Firefox OS
Sublime Text



Microsoft
IBM
Apple
...
Distribuirea datelor pe Web
solutia 2:

fiecare calculator este responsabil
cu una/mai multe coloane complete
necesitatea ...
Distribuirea datelor pe Web
soluția 3:

fiecare gazdă realizează managementul
unui număr de celule dintr-un tabel

Dr. Sab...
Rând 3

Office
Rând 3

Nume
Rând 9

Statut
Comercial

Node.js
Rând 5



Statut
Open-source

Producător

Rând 3

Microsoft...


Nume
Rând 3

Office

Rând 3

Nume
Rând 9

privitor la termenii de utilizare
Statut
Comercial

Node.js
Rând 5



Statut...
Distribuirea datelor pe Web
soluția 3:

fiecare gazdă realizează managementul
unui număr de celule dintr-un tabel
combină ...
Distribuirea datelor pe Web
fiecare celulă trebuie referită de 3 valori unice:
o referință globală ce desemnează un rând +...
Distribuirea datelor pe Web
fiecare celulă trebuie referită de 3 valori unice:
o referință globală ce desemnează un rând +...
Resource Description Framework
cadru (abstract) pentru descrierea resurselor
la nivelul calculatorului
fundație a Web-ului...
Recomandare W3C
RDF Model & Syntax Specification (1999)
RDF/XML Syntax Specification – Revised (2004)

www.w3.org/RDF/

Dr...
O soluție pentru modelarea Web-ului – sau web-urilor –
ca o bază de date distribuită

Dr. Sabin Buragawww.purl.org/net/bu...
O soluție pentru modelarea Web-ului – sau web-urilor –
ca o bază de date distribuită
deși ar fi de dorit
să putem realiza ...
Dr. Sabin Buragawww.purl.org/net/busaco

rdf
Scop:
“to allow anyone to say anything about anything”

Ian Davis, 2005
Oferă un model de specificare a triplelor
(rând, coloană, valoare de celulă)
via identificatori uniformi de resurse – URI
...
Resursă – specificată de un URI
Proprietate – aspect, caracteristică, atribut sau relație
Declarație – triplu de forma { s...
Subiect = rând: resursa despre care se “spune” ceva
Predicat = coloană: o proprietate a subiectului
Obiect = celulă: valoa...
Subiect
Resursa – specificată de un URI – care este descrisă
via predicat și obiect

Predicat
Relație – desemnată de un UR...
un vocabular de termeni folosit în triplele RDF

Dr. Sabin Buragawww.purl.org/net/busaco

Subiect
Predicat
Obiect
Apache
...
Predicat
este
Subiect
Mozilla

Obiect
Organizație

Dr. Sabin Buragawww.purl.org/net/busaco

rdf: model
Mai multe triple pot referi aceeași resursă
le putem reprezenta sub forma de grafuri
triplu = muchie între subiect și obi...
graful unui model conceptual referitor la un web:

Firebug

extinde
produsDe

utilizează

Firefox
areStatut

Organizație

...
Predicatele specifică natura relațiilor ce pot fi
stabilite între subiect și obiect
se pot exprima folosind vocabulare pub...
Modelul RDF poate fi folosit, printre altele,
la asocierea de meta-date resurselor Web
și la specificarea relațiilor dintr...
Autorul resursei desemnate de URI-ul
http://www.infoiasi.ro/~web/ este Sabin Buraga
<rdf:RDF>
<rdf:Description rdf:about="...
Alternative sintactice:
autor ("http://www.infoiasi.ro/~web/", "Sabin Buraga")

Dr. Sabin Buragawww.purl.org/net/busaco

...
Alternative sintactice:
isA sau a
este ("#java", "#Limbaj")
este ("#manuelsubredu", "#Persoana")
utilizează ("#manuelsubre...
Termenul englezesc “book” este un substantiv
și are drept sinonime “volume” și “tome”
isA ("#book", "#noun")
hasSynonym ("...
Un nod al grafului RDF e referit unic via un URI
doar etichetând resursele cu nume
– e.g., “Companie”, “produce”, “Java”,…...
Un nod al grafului RDF e referit unic via un URI
pot exista alte entități care referă aceleași
convenții sintactice cu alt...
Un nod al grafului RDF e referit unic via un URI
dacă doi agenți doresc să refere aceeași resursă,
trebuie ales un URI men...
Un nod al grafului RDF e referit unic via un URI
pentru a desemna concepte diferite,
trebuie utilizate URI-uri diferite

D...
Un URI oferă o identificare globală a unei resurse
putem stabili – via URI – semnificația unui termen

http://geo.location...
Un URI oferă o identificare globală a unei resurse
în cazul grafurilor,
un nod fuzionează cu altul dacă e referit de acela...
Dr. Sabin Buragawww.purl.org/net/busaco

folosind URI-uri, putem fuziona (merge) grafuri
referitoare la concepte comune

...
Observație (Ian Davis, 2005)
adăugând alte triple
– i.e. îmbogățind modelul conceptual –
nu vom schimba înțelesul grafului...
Observație (Ian Davis, 2005)
triplele deja existente nu pot fi “uitate”
concluziile anterioare nu vor fi invalidate
model...
Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“missing is not broken”

Dr. Sabin Bur...
Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“înțelegerea” datelor de către softwar...
Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“înțelegerea” datelor de către softwar...
Putem exprima URI-urile via nume calificate
(qualified names – qnames)
spațiu de nume:termen

Dr. Sabin Buragawww.purl.or...
Putem exprima URI-urile via nume calificate
(qualified names – qnames)
spațiu de nume:termen

e.g., construcție XML
(nume ...
Deoarece numele calificate sunt restrictive
la nivel sintactic, se recurge la CURIE
spațiu de nume:termen

http://www.w3.o...
Via nume calificate desemnăm vocabulare de termeni
coffee:java coffee:molokai
geo:france geo:java geo:romania geo:uk
lang:...
un vocabular de termeni calificați

Dr. Sabin Buragawww.purl.org/net/busaco

Subiect
Predicat
Obiect
com:Apache
s:produce...
Spațiile de nume implicite (default) pot fi omise
util dacă se folosește vocabularul local

:Server
:areStatut
:localizatI...
Meta-datele pot fi asociate unor resurse deja definite:
<rdf:Description rdf:ID="busaco">
<s:rol>profesor la FII, UAIC</s:...
Colecții de resurse: bag (multi-set), secvență, alternativă
“Cartea Programarea in Web 2.0
are ca autori pe Anca, Ciprian ...
Specificarea tipurilor de date într-un model RDF
se realizează via proprietatea predefinită rdf:type

Dr. Sabin Buragawww...
Subiect
com:canonical
com:microsoft
lang:java
geo:romania
pers:murakami
s:utilizează
s:parteDin
foaf:knows

Predicat
rdf:t...
Se pot exprima și relații non-binare,
apelându-se la o resursă intermediară
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/...
Stabilirea modului de procesare a declaratiilor
se face prin parseType

Dr. Sabin Buragawww.purl.org/net/busaco

rdf: mod...
parseType="Resource" se folosește
pentru a semnala faptul că e vorba de o resursă
și nu de o valoare
desemnată
de un URI

...
Construcția parseType="Literal" poate fi utilizată
pentru ca procesorul RDF să nu prelucreze
conținutul unui anumit elemen...
Pentru a specifica o colecție de resurse,
se recurge la parseType="Collection"

Dr. Sabin Buragawww.purl.org/net/busaco

...
Reificare: declarații despre declarații
faptul 1: Sabin-Corneliu Buraga este autorul resursei
desemnate de URI-ul http://p...
Reificare: declarații despre declarații
faptul 1: Sabin-Corneliu Buraga este autorul resursei
desemnate de URI-ul http://p...
Pentru a specifica explicit o aserțiune privitoare
la o altă aserțiune, RDF oferă trei resurse speciale:
rdf:subject
rdf:p...
“Wikipedia afirmă faptul că Mozilla produce Firefox.”
p:prop

rdf:subject
rdf:predicate
rdf:object
web:Wikipedia s:afirmă
...
“Wikipedia afirmă faptul că Mozilla produce Firefox.”
p:prop

rdf:subject
rdf:predicate
rdf:object
web:Wikipedia s:afirmă
...
Modelul RDF nu este “legat” de o anumită sintaxă
sintaxele “standard” utilizate sunt:
digrafuri (reprezentari grafice)
N-T...
Resursele sunt specificate de URI-uri absolute scrise
între “<“ si “>”, în ordinea subiect–predicat–obiect,
urmate de “.”
...
Notation 3 RDF (N3)
recurge la nume calificate – qnames
www.w3.org/DesignIssues/Notation3.html

@prefix s: <http://www.inf...
Notation 3 RDF (N3)
faptul “Diana este o persoană și-i cunoaște pe
Alex, Bogdan și Cristina” se poate specifica prin:

@pr...
“Formatul cărții referite printr-un ISBN este disponibil
ca HTML, text obișnuit sau Postscript.”
<rdf:RDF xmlns:rdf="http:...
“Formatul cărții referite printr-un ISBN este disponibil
ca text obișnuit, HTML sau Postscript.”

Dr. Sabin Buragawww.pur...
Cum reprezentăm o resursă
ce nu are identitate pe Web?
în unele situații, cunoaștem anumite aspecte
privitoare la “ceva”, ...
Exemplu: o companie/persoană lucrează la un produs
a cărui identitate rămâne necunoscută
soft:ProdusX

com:Google

rdf:typ...
Recurgem la specificarea unui nod vid
(blanc node – bnode)
“Există o aplicație (software) produs(ă) de Google.”

[ rdf:typ...
Recurgem la specificarea unui nod vid
(blanc node – bnode)
“Există o aplicație (software) produs(ă) de Google.”

com:Googl...
<http://example.org/CSymbol>
a rdfs:Datatype ;
rdfs:comment "A symbol in the C programming language" ;
owl:onDatatype xsd:...
<http://example.org/CSymbol>
a rdfs:Datatype ;
rdfs:comment "A symbol in the C programming language" ;
owl:onDatatype xsd:...
Recapitulând, într-un triplu RDF:

subiectul poate fi specificat de un URI sau un nod blanc
predicatul (proprietatea) este...
Dr. Sabin Buragawww.purl.org/net/busaco

În ce context ar putea fi utilizat practic
modelul RDF?
Uzual, aserțiunile RDF specifică meta-date
privitoare la aspecte ce privesc caracteristicile
“externe” ale unei resurse

D...
RDF poate fi util pentru:
descrierea resurselor “opace”
(cu reprezentări în formate binare)

Dr. Sabin Buragawww.purl.org...
RDF poate fi folosit pentru a descrie
resurse intangibile, abstracte

e.g., persoane, organizații,
artefacte umane: opere ...
Dr. Sabin Buragawww.purl.org/net/busaco
Dr. Sabin Buragawww.purl.org/net/busaco

subiect

obiect(e):
predicat(e)

URL-uri sau literali
Asocierea de vocabulare de meta-date privind resursele:
DCMI (Dublin Core Metadata Initiative)
FOAF (Friend Of A Friend)
D...
Vocabulare de meta-date
DCMI – Dublin Core Metadata Initiative
proprietăți pentru descrierea resurselor:
<dc:Title>, <dc:D...
Vocabulare de meta-date
DCMI – Dublin Core Metadata Initiative
exemplu – preluat din DBLP Bibliography Database:
<http://d...
Relații între persoane
FOAF – Friend Of A Friend
vocabular RDF ce descrie persoane/organizații:
identități, interese, afil...
Relații între persoane
FOAF – Friend Of A Friend
meta-date privitoare la o persoană:
<foaf:Person>, <foaf:name>, <foaf:gen...
Relații între persoane
FOAF – Friend Of A Friend
relația knows

Dr. Sabin Buragawww.purl.org/net/busaco

rdf: utilizări –...
Relații între persoane
FOAF – Friend Of A Friend
relația knows
nu se specifică relații mai rafinate
e.g., friendOf, collab...
foaf:knows

foaf:Person
Sabin Buraga

foaf:name

foaf:gender

adaptare după Hebeler et al., 2009

male

Dr. Sabin Buragaw...
Relații între persoane
FOAF – Friend Of A Friend
exemplu:
“Sabin este persoană.”
<http://www.purl.org/net/busaco#me>
<http...
Relații între persoane
FOAF – Friend Of A Friend
exemplu:
“Sabin îl cunoaște pe Cristi.”
@prefix foaf: <http://xmlns.com/f...
Dr. Sabin Buragawww.purl.org/net/busaco

rdf: utilizări – exemplu de graf FOAF
Dr. Sabin Buragawww.purl.org/net/busaco

rdf: utilizări – vocabulare multiple
@prefix id: <http://www.info.uaic.ro/~busac...
Dr. Sabin Buragawww.purl.org/net/busaco

modelarea în RDF a programului de desfășurare
a unui eveniment (utilizează DCMI,...
Dr. Sabin Buragawww.purl.org/net/busaco

dbpedia:Vangelis rdfs:label
"Vangelis"@en ;
foaf:name
"Vangelis"@en ;
foaf:given...
Relații între comunități virtuale
SIOC – Semantically-Interlinked Online Communities
model conceptual menit a interconecta...
Relații între comunități virtuale
SIOC – Semantically-Interlinked Online Communities
recurge la RDF + alte vocabulare – e....
fragment dintr-o conversație pe IRC
modelată via SIOC și alte vocabulare

Dr. Sabin Buragawww.purl.org/net/busaco

@prefi...
Descrierea unui proiect (software)
DOAP – Description Of A Project
meta-date privitoare la o aplicație

<doap:Project>, <d...
Descrierea unui proiect (software)
DOAP – Description Of A Project
se bazează pe RDF și FOAF

http://usefulinc.com/ns/doap...
Dr. Sabin Buragawww.purl.org/net/busaco

rdf: utilizari
Specificarea construcțiilor RDF direct în HTML

RDFa
reprezintă un alt format de serializare a modelului RDF
recomandare a...
Specificarea construcțiilor RDF direct în HTML

RDFa

Dr. Sabin Buragawww.purl.org/net/busaco

rdf: utilizări – rdfa

gen...
Utilizarea formatului JSON
(JavaScript Object Notation)
în contextul datelor RDF interconectate
conform inițiativei Linked...
Fie documentul JSON oferind date despre o persoană
(eventual, obținut prin invocarea unui serviciu Web)
{

}

"id": "busac...
Asocierea de adnotări semantice pe baza construcțiilor
@id @value @type @set @list @language @context @graph
{

}

"@id": ...
Contextul (vocabularul de termeni) este referit
în cadrul documentului sau via un URL extern
{

"@context": {
"foaf": "htt...
aserțiuni despre
"@context": { … },
graful RDF rezultat
"@graph": [
{ "@id": "_:b0",
"ingredient": [ "12 fresh mint leaves...
Modelul RDF permite formularea de aserțiuni
explicite privitoare la resursele Web

se folosesc triple (subiect, predicat, ...
gm:Niveluri

soft:AngryProfs
soft:AngryProfs
pers:Ana
pers:Cristina
pers:Dan
pers:Dan

a
rdf:_1
rdf:_2
a
rdf:_1
rdf:_2
rdf...
RDF “helps you to create Web-like relationships
between data, which is not easily done
in a typical relational database.”
...
RDF oferă premisa modelării interconexiunilor
web-urilor diferite existente pe Web
a se (re)vedea inițiativa Linked Data
h...
Dr. Sabin Buragawww.purl.org/net/busaco
Dr. Sabin Buragawww.purl.org/net/busaco

recurgând la RDF,
pot fi definite și utilizate
diverse modele conceptuale
baza Web-ului semantic: modelul de date RDF

Dr. Sabin Buragawww.purl.org/net/busaco

rezumat

mulțumiri: @bblfish, @danj...
graf RDF


HTML



RDB↔RDF





Dr. Sabin Buragawww.purl.org/net/busaco

punct terminal SPARQL

Procesor
SPARQL

tehn...
Upcoming SlideShare
Loading in …5
×

Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framework)

444 views
357 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
444
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framework)

  1. 1. Resource Description Framework Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplicațiilor Web
  2. 2. Gabriel García Márquez Dr. Sabin Buragawww.purl.org/net/busaco “Lucrurile au și ele viață. Totul este să le trezești sufletul.”
  3. 3. Dr. Sabin Buragawww.purl.org/net/busaco Cum (re)folosim datele disponibile pe Web?
  4. 4. Dr. Sabin Buragawww.purl.org/net/busaco Am putea (re)considera Web-ul ca fiind o bază de date distribuită?
  5. 5. O manieră de a atașa date privitoare la date Dr. Sabin Buragawww.purl.org/net/busaco necesități
  6. 6. O manieră de a atașa date privitoare la date Dr. Sabin Buragawww.purl.org/net/busaco necesități crearea unor vocabulare de termeni descriind “ceva” (proprietăți, domenii, web-uri,...) – i.e. resurse Web
  7. 7. Un mod de a specifica relații între resurse Dr. Sabin Buragawww.purl.org/net/busaco necesități
  8. 8. Un mod de a specifica relații între resurse structuri de organizare a datelor în cadrul unui sau mai multor web-uri Dr. Sabin Buragawww.purl.org/net/busaco necesități
  9. 9. Un mod de a specifica relații între resurse structuri de organizare a datelor în cadrul unui sau mai multor web-uri scop mai larg: modelarea cunoștințelor Dr. Sabin Buragawww.purl.org/net/busaco necesități
  10. 10. Uzual, datele sunt reprezentate în formă tabelară (conform modelului relațional) Dr. Sabin Buragawww.purl.org/net/busaco realități
  11. 11. Uzual, datele sunt reprezentate în formă tabelară (conform modelului relațional) un rând descrie un “obiect” (item) specific o coloană reprezintă o proprietate a tuturor item-ilor o celulă desemnează o valoare particulară a unei proprietăți asociate obiectului de interes Dr. Sabin Buragawww.purl.org/net/busaco realități
  12. 12. ID 1 2 3 4 5 6 7 Nume Windows OS/2 IrfanView iTunes Thunderbird Firefox OS Sublime Text Producător Microsoft IBM Irfan Apple Mozilla Mozilla Sublime HQ Pty Statut Comercial N/A Freeware Freeware Open-source Open-source Freeware Dr. Sabin Buragawww.purl.org/net/busaco exemplu
  13. 13. Distribuirea datelor pe Web fragmente de informații vor fi disponibile (liber) pe calculatoare diferite, accesate via tehnologiile Web actuale Dr. Sabin Buragawww.purl.org/net/busaco motivație
  14. 14. Distribuirea datelor pe Web soluția 1: Dr. Sabin Buragawww.purl.org/net/busaco motivație fiecare calculator stochează informațiile despre mai multe rânduri complete dintr-un tabel
  15. 15. Distribuirea datelor pe Web  iTunes Apple Aperture Apple Firefox OS Mozilla Care-i schema comună?  Freeware Comercial Open-source Windows Microsoft Comercial Office Microsoft Comercial Dr. Sabin Buragawww.purl.org/net/busaco exemplu 
  16. 16. Distribuirea datelor pe Web soluția 1: Dr. Sabin Buragawww.purl.org/net/busaco motivație fiecare calculator stochează informațiile despre mai multe rânduri complete dintr-un tabel necesitatea unui mecanism de coordonare între servere e.g., partajarea schemei comune folosite
  17. 17. Distribuirea datelor pe Web soluția 2: fiecare calculator este responsabil cu una/mai multe coloane complete Dr. Sabin Buragawww.purl.org/net/busaco motivație
  18. 18. Distribuirea datelor pe Web  Windows OS/2 IrfanView iTunes Thunderbird Firefox OS Sublime Text  Microsoft IBM Apple Mozilla Apache  Dr. Sabin Buragawww.purl.org/net/busaco exemplu Open-source Freeware Shareware Comercial Cine referă pe cine?
  19. 19. Distribuirea datelor pe Web solutia 2: fiecare calculator este responsabil cu una/mai multe coloane complete necesitatea cunoașterii identității datelor modelate e.g., fiecare resursă are asociat un identificator global Dr. Sabin Buragawww.purl.org/net/busaco motivație
  20. 20. Distribuirea datelor pe Web soluția 3: fiecare gazdă realizează managementul unui număr de celule dintr-un tabel Dr. Sabin Buragawww.purl.org/net/busaco motivație
  21. 21. Rând 3 Office Rând 3 Nume Rând 9 Statut Comercial Node.js Rând 5  Statut Open-source Producător Rând 3 Microsoft Dr. Sabin Buragawww.purl.org/net/busaco  Nume 
  22. 22.  Nume Rând 3 Office Rând 3 Nume Rând 9 privitor la termenii de utilizare Statut Comercial Node.js Rând 5  Statut Open-source Producător Rând 3 Microsoft web-ul specific unei corporații Dr. Sabin Buragawww.purl.org/net/busaco responsabil cu software-ul 
  23. 23. Distribuirea datelor pe Web soluția 3: fiecare gazdă realizează managementul unui număr de celule dintr-un tabel combină avantajele abordărilor precedente Dr. Sabin Buragawww.purl.org/net/busaco motivație
  24. 24. Distribuirea datelor pe Web fiecare celulă trebuie referită de 3 valori unice: o referință globală ce desemnează un rând + o referință globală care specifică o coloană + o referință globală reprezentând valoarea celulei Dr. Sabin Buragawww.purl.org/net/busaco motivație
  25. 25. Distribuirea datelor pe Web fiecare celulă trebuie referită de 3 valori unice: o referință globală ce desemnează un rând + o referință globală care specifică o coloană + o referință globală reprezentând valoarea celulei ca referințe globale nu putem utiliza URI-uri? Dr. Sabin Buragawww.purl.org/net/busaco motivație
  26. 26. Resource Description Framework cadru (abstract) pentru descrierea resurselor la nivelul calculatorului fundație a Web-ului semantic Dr. Sabin Buragawww.purl.org/net/busaco rdf
  27. 27. Recomandare W3C RDF Model & Syntax Specification (1999) RDF/XML Syntax Specification – Revised (2004) www.w3.org/RDF/ Dr. Sabin Buragawww.purl.org/net/busaco rdf
  28. 28. O soluție pentru modelarea Web-ului – sau web-urilor – ca o bază de date distribuită Dr. Sabin Buragawww.purl.org/net/busaco rdf
  29. 29. O soluție pentru modelarea Web-ului – sau web-urilor – ca o bază de date distribuită deși ar fi de dorit să putem realiza mai mult… intenție: o bază de cunoștințe Dr. Sabin Buragawww.purl.org/net/busaco rdf
  30. 30. Dr. Sabin Buragawww.purl.org/net/busaco rdf Scop: “to allow anyone to say anything about anything” Ian Davis, 2005
  31. 31. Oferă un model de specificare a triplelor (rând, coloană, valoare de celulă) via identificatori uniformi de resurse – URI proprietate (predicat) resursă (subiect) URI URI valoare (obiect) URI Dr. Sabin Buragawww.purl.org/net/busaco rdf
  32. 32. Resursă – specificată de un URI Proprietate – aspect, caracteristică, atribut sau relație Declarație – triplu de forma { subiect, predicat, obiect } subiect predicat obiect Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  33. 33. Subiect = rând: resursa despre care se “spune” ceva Predicat = coloană: o proprietate a subiectului Obiect = celulă: valoare particulară a proprietății subiect predicat obiect Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  34. 34. Subiect Resursa – specificată de un URI – care este descrisă via predicat și obiect Predicat Relație – desemnată de un URI – stabilită între subiect și obiect Poate fi considerat și drept atribut (proprietate) Obiect Desemnează – printr-un URI – resursa referită de un predicat sau specifică o valoare – via un literal Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  35. 35. un vocabular de termeni folosit în triplele RDF Dr. Sabin Buragawww.purl.org/net/busaco Subiect Predicat Obiect Apache produce Hadoop Mozilla produce Firefox Firefox areStatut Deschis oXygen areStatut Comercial Canonical este Companie Jena este Software Java este Limbaj Sabin localizatIn Romania Sabin utilizează Firefox Dragoș cunoaștePe Sabin
  36. 36. Predicat este Subiect Mozilla Obiect Organizație Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  37. 37. Mai multe triple pot referi aceeași resursă le putem reprezenta sub forma de grafuri triplu = muchie între subiect și obiect predicat = eticheta asociată muchiei digrafului Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  38. 38. graful unui model conceptual referitor la un web: Firebug extinde produsDe utilizează Firefox areStatut Organizație este Persoană produce Deschis Mozilla este Sabin areStatut este Apache produce Hadoop Lucene Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  39. 39. Predicatele specifică natura relațiilor ce pot fi stabilite între subiect și obiect se pot exprima folosind vocabulare publicate pe Web, disponibile liber și referite de URI Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  40. 40. Modelul RDF poate fi folosit, printre altele, la asocierea de meta-date resurselor Web și la specificarea relațiilor dintre resurse Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  41. 41. Autorul resursei desemnate de URI-ul http://www.infoiasi.ro/~web/ este Sabin Buraga <rdf:RDF> <rdf:Description rdf:about="http://www.infoiasi.ro/~web/"> <s:Autor>Sabin Buraga</s:Autor> </rdf:Description> </rdf:RDF> serializare RDF/XML Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  42. 42. Alternative sintactice: autor ("http://www.infoiasi.ro/~web/", "Sabin Buraga") Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  43. 43. Alternative sintactice: isA sau a este ("#java", "#Limbaj") este ("#manuelsubredu", "#Persoana") utilizează ("#manuelsubredu", "#firefox") utilizează ("#manuelsubredu", "http://twitter.com/") referă ("http://twitter.com/manuelsubredu", "http://wordpress.org") Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  44. 44. Termenul englezesc “book” este un substantiv și are drept sinonime “volume” și “tome” isA ("#book", "#noun") hasSynonym ("#book", "#volume") hasSynonym ("#book", "#tome") Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  45. 45. Un nod al grafului RDF e referit unic via un URI doar etichetând resursele cu nume – e.g., “Companie”, “produce”, “Java”,… – nu se garantează că specificăm același concept (aceeași resursă) Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  46. 46. Un nod al grafului RDF e referit unic via un URI pot exista alte entități care referă aceleași convenții sintactice cu alte semantici Dr. Sabin Buragawww.purl.org/net/busaco rdf: model Java (insulă) vs. Java (limbaj) vs. Java (sortiment de cafea)
  47. 47. Un nod al grafului RDF e referit unic via un URI dacă doi agenți doresc să refere aceeași resursă, trebuie ales un URI menit a desemna în mod unic această resursă Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  48. 48. Un nod al grafului RDF e referit unic via un URI pentru a desemna concepte diferite, trebuie utilizate URI-uri diferite Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  49. 49. Un URI oferă o identificare globală a unei resurse putem stabili – via URI – semnificația unui termen http://geo.locations.info#java http://programming-languages.org/java http://coffee-wiki.org/wiki/java Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  50. 50. Un URI oferă o identificare globală a unei resurse în cazul grafurilor, un nod fuzionează cu altul dacă e referit de același URI Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  51. 51. Dr. Sabin Buragawww.purl.org/net/busaco folosind URI-uri, putem fuziona (merge) grafuri referitoare la concepte comune figură preluată din (Toby Segaran, Colin Evans & Jamie Taylor, 2009)
  52. 52. Observație (Ian Davis, 2005) adăugând alte triple – i.e. îmbogățind modelul conceptual – nu vom schimba înțelesul grafului RDF Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  53. 53. Observație (Ian Davis, 2005) triplele deja existente nu pot fi “uitate” concluziile anterioare nu vor fi invalidate modelul RDF este monoton Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  54. 54. Observație (Ian Davis, 2005) faptele modelate nu trebuie să fie complet specificate “missing is not broken” Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  55. 55. Observație (Ian Davis, 2005) faptele modelate nu trebuie să fie complet specificate “înțelegerea” datelor de către software poate fi realizată progresiv (partial understanding) Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  56. 56. Observație (Ian Davis, 2005) faptele modelate nu trebuie să fie complet specificate “înțelegerea” datelor de către software poate fi realizată progresiv (partial understanding)  cunoștințele pot fi modelate & accesate în mod dinamic, conform necesităților Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  57. 57. Putem exprima URI-urile via nume calificate (qualified names – qnames) spațiu de nume:termen Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  58. 58. Putem exprima URI-urile via nume calificate (qualified names – qnames) spațiu de nume:termen e.g., construcție XML (nume de element) Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  59. 59. Deoarece numele calificate sunt restrictive la nivel sintactic, se recurge la CURIE spațiu de nume:termen http://www.w3.org/TR/curie Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  60. 60. Via nume calificate desemnăm vocabulare de termeni coffee:java coffee:molokai geo:france geo:java geo:romania geo:uk lang:csharp lang:java lang:php lang:ruby s:areStatut s:este s:produce soft:firefox soft:itunes soft:protégé soft:xwiki xsd:boolean xsd:integer xsd:string Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  61. 61. un vocabular de termeni calificați Dr. Sabin Buragawww.purl.org/net/busaco Subiect Predicat Obiect com:Apache s:produce soft:Hadoop org:Mozilla s:produce soft:Firefox soft:Firefox s:areStatut lic:Deschis soft:oXygen s:areStatut lic:Comercial com:Canonical s:este s:Companie soft:Jena s:este s:Software lang:Java s:este s:Limbaj pers:Sabin s:localizatIn geo:Romania pers:Sabin s:utilizează soft:Firefox pers:Dragoș pers:cunoaștePe pers:Sabin
  62. 62. Spațiile de nume implicite (default) pot fi omise util dacă se folosește vocabularul local :Server :areStatut :localizatIn Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  63. 63. Meta-datele pot fi asociate unor resurse deja definite: <rdf:Description rdf:ID="busaco"> <s:rol>profesor la FII, UAIC</s:rol> vocabular </rdf:Description> de termeni ... <rdf:Description rdf:about="#busaco"> <s:adresa>http://purl.org/net/busaco</s:adresa> </rdf:Description> Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  64. 64. Colecții de resurse: bag (multi-set), secvență, alternativă “Cartea Programarea in Web 2.0 are ca autori pe Anca, Ciprian si Ecaterina.” <rdf:RDF> <rdf:Description rdf:about="http://webpro20.blogspot.com/"> <s:areAutorPe> <rdf:Bag> <rdf:li rdf:resource="https://github.com/lucaa" /> <rdf:li rdf:resource="http://www.2wit.com/" /> <rdf:li rdf:resource="http://profs.info.uaic.ro/~evalica/" /> </rdf:Bag> </s:areAutorPe> Bag, Seq, Alt </rdf:Description> </rdf:RDF> Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  65. 65. Specificarea tipurilor de date într-un model RDF se realizează via proprietatea predefinită rdf:type Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  66. 66. Subiect com:canonical com:microsoft lang:java geo:romania pers:murakami s:utilizează s:parteDin foaf:knows Predicat rdf:type rdf:type rdf:type rdf:type rdf:type rdf:type rdf:type rdf:type Obiect s:Companie s:Companie s:Limbaj geo:Stat s:Autor rdf:Property rdf:Property rdf:Property Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  67. 67. Se pot exprima și relații non-binare, apelându-se la o resursă intermediară <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:un="http://www.schemas.org/Units/"> <rdf:Description rdf:about="urn:ISBN:0-201-00023-7"> <un:price rdf:parseType="Resource"> <rdf:value>33.00</rdf:value> <un:units rdf:resource="http://www.schemas.org/Units/USdollar"/> </un:price> </rdf:Description> </rdf:RDF> costul cartii referite de ISBN-ul ei este de 33 $ Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  68. 68. Stabilirea modului de procesare a declaratiilor se face prin parseType Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  69. 69. parseType="Resource" se folosește pentru a semnala faptul că e vorba de o resursă și nu de o valoare desemnată de un URI Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  70. 70. Construcția parseType="Literal" poate fi utilizată pentru ca procesorul RDF să nu prelucreze conținutul unui anumit element <dc:title rdf:parseType="Literal"> Franz Kafka: <html:strong>Procesul</html:strong> (1925) </dc:title> Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  71. 71. Pentru a specifica o colecție de resurse, se recurge la parseType="Collection" Dr. Sabin Buragawww.purl.org/net/busaco rdf: model <rdf:Description rdf:about="http://games.biz/mmorpgs/WorldOfWarcraft"> <s:jucatori rdf:parseType="Collection"> <rdf:Description rdf:about="http://students.info.uaic.ro/~Ana" /> <rdf:Description rdf:about="http://failpuke.com/Bogdan" /> <rdf:Description rdf:about="http://www.undeva.org/Cristina" /> </s:jucatori> </rdf:Description>
  72. 72. Reificare: declarații despre declarații faptul 1: Sabin-Corneliu Buraga este autorul resursei desemnate de URI-ul http://purl.org/net/busaco faptul 2: Dan Cristea afirmă că Sabin-Corneliu Buraga este autorul resursei desemnate de URI-ul http://purl.org/net/busaco Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  73. 73. Reificare: declarații despre declarații faptul 1: Sabin-Corneliu Buraga este autorul resursei desemnate de URI-ul http://purl.org/net/busaco faptul 2: Dan Cristea afirmă că Sabin-Corneliu Buraga este autorul resursei desemnate de URI-ul http://purl.org/net/busaco astfel, pot fi modelate meta-date privitoare la meta-date Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  74. 74. Pentru a specifica explicit o aserțiune privitoare la o altă aserțiune, RDF oferă trei resurse speciale: rdf:subject rdf:predicate rdf:object explicit reification Dr. Sabin Buragawww.purl.org/net/busaco rdf: model
  75. 75. “Wikipedia afirmă faptul că Mozilla produce Firefox.” p:prop rdf:subject rdf:predicate rdf:object web:Wikipedia s:afirmă org:Mozilla ; s:produce ; soft:Firefox . p:prop . Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  76. 76. “Wikipedia afirmă faptul că Mozilla produce Firefox.” p:prop rdf:subject rdf:predicate rdf:object web:Wikipedia s:afirmă org:Mozilla ; s:produce ; soft:Firefox . p:prop . a nu se confunda cu declarația: org:Mozilla s:produce soft:Firefox . Dr. Sabin Buragawww.purl.org/net/busaco rdf: model – exemplu
  77. 77. Modelul RDF nu este “legat” de o anumită sintaxă sintaxele “standard” utilizate sunt: digrafuri (reprezentari grafice) N-Triples Turtle – Terse RDF Triple Language N3 – notation 3 RDF/XML http://blog.iandavis.com/2005/09/28/the-sixteen-faces-of-eve/ Dr. Sabin Buragawww.purl.org/net/busaco rdf: serializare
  78. 78. Resursele sunt specificate de URI-uri absolute scrise între “<“ si “>”, în ordinea subiect–predicat–obiect, urmate de “.” <http://www.personalitati.info/MirceaEliade> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1#Person> . W3C Candidate Recommendation (2013) www.w3.org/TR/turtle/ Dr. Sabin Buragawww.purl.org/net/busaco rdf: serializare – turtle
  79. 79. Notation 3 RDF (N3) recurge la nume calificate – qnames www.w3.org/DesignIssues/Notation3.html @prefix s: <http://www.infoiasi.ro/SW.rdf#> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> s:Sabin rdf:type s:Autor . uzual, specificat prin a Dr. Sabin Buragawww.purl.org/net/busaco rdf: serializare – N3
  80. 80. Notation 3 RDF (N3) faptul “Diana este o persoană și-i cunoaște pe Alex, Bogdan și Cristina” se poate specifica prin: @prefix s: <http://www.infoiasi.ro/vocabular.rdf#> @prefix foaf: <http://xmlns.com/foaf/0.1> s:diana a foaf:Person ; foaf:knows s:alex ; foaf:knows s:bogdan ; foaf:knows s:cristina . Dr. Sabin Buragawww.purl.org/net/busaco rdf: serializare – N3
  81. 81. “Formatul cărții referite printr-un ISBN este disponibil ca HTML, text obișnuit sau Postscript.” <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="urn:ISBN:0-201-00023-7"> <dc:format> alternativă de <rdf:Alt> tipuri MIME <rdf:li>text/html</rdf:li> <rdf:li>text/plain</rdf:li> <rdf:li>application/postscript</rdf:li> </rdf:Alt> </dc:format> </rdf:Description> </rdf:RDF> Dr. Sabin Buragawww.purl.org/net/busaco rdf: serializare – RDF/XML
  82. 82. “Formatul cărții referite printr-un ISBN este disponibil ca text obișnuit, HTML sau Postscript.” Dr. Sabin Buragawww.purl.org/net/busaco rdf: serializare – grafuri
  83. 83. Cum reprezentăm o resursă ce nu are identitate pe Web? în unele situații, cunoaștem anumite aspecte privitoare la “ceva”, fără a-i ști identitatea Dr. Sabin Buragawww.purl.org/net/busaco rdf – noduri vide
  84. 84. Exemplu: o companie/persoană lucrează la un produs a cărui identitate rămâne necunoscută soft:ProdusX com:Google rdf:type soft:Aplicatie ; s:areStatut lic:Deschis . s:produce soft:ProdusX . Cum procedăm dacă nu-i știm identitatea? Dr. Sabin Buragawww.purl.org/net/busaco rdf – noduri vide
  85. 85. Recurgem la specificarea unui nod vid (blanc node – bnode) “Există o aplicație (software) produs(ă) de Google.” [ rdf:type soft:Aplicatie ; s:areStatut lic:Deschis ] un nod blanc nu are asociat un URI Dr. Sabin Buragawww.purl.org/net/busaco rdf – noduri vide
  86. 86. Recurgem la specificarea unui nod vid (blanc node – bnode) “Există o aplicație (software) produs(ă) de Google.” com:Google s:produce [ rdf:type soft:Aplicatie ; s:areStatut lic:Deschis ] . Dr. Sabin Buragawww.purl.org/net/busaco rdf – noduri vide
  87. 87. <http://example.org/CSymbol> a rdfs:Datatype ; rdfs:comment "A symbol in the C programming language" ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "[_a-zA-Z][_a-zA-Z0-9]*" ] [ xsd:maxLength 255 ] ). Dr. Sabin Buragawww.purl.org/net/busaco Specificarea tipurilor de date în RDF (adaptare după David Robillard, 2012)
  88. 88. <http://example.org/CSymbol> a rdfs:Datatype ; rdfs:comment "A symbol in the C programming language" ; owl:onDatatype xsd:string ; owl:withRestrictions ( nod vid [ xsd:pattern "[_a-zA-Z][_a-zA-Z0-9]*" ] [ xsd:maxLength 255 ] ). se pot utiliza restricțiile XML Schema (facets) Dr. Sabin Buragawww.purl.org/net/busaco Specificarea tipurilor de date în RDF (adaptare după David Robillard, 2012) folosirea vocabularelor XML Schema, RDF Schema și OWL pentru a specifica tipuri & restricții asupra datelor
  89. 89. Recapitulând, într-un triplu RDF: subiectul poate fi specificat de un URI sau un nod blanc predicatul (proprietatea) este desemnat(ă) de un URI obiectul poate fi un URI, un nod blanc sau un literal eventual, având specificat un tip de dată Dr. Sabin Buragawww.purl.org/net/busaco rdf
  90. 90. Dr. Sabin Buragawww.purl.org/net/busaco În ce context ar putea fi utilizat practic modelul RDF?
  91. 91. Uzual, aserțiunile RDF specifică meta-date privitoare la aspecte ce privesc caracteristicile “externe” ale unei resurse Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări de exemplu: autor, copyright, tag-uri asociate, data publicării, format,…
  92. 92. RDF poate fi util pentru: descrierea resurselor “opace” (cu reprezentări în formate binare) Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări e.g., arhive, executabile, multimedia – fișiere audio, video,…
  93. 93. RDF poate fi folosit pentru a descrie resurse intangibile, abstracte e.g., persoane, organizații, artefacte umane: opere de artă, software, specificații,… Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări
  94. 94. Dr. Sabin Buragawww.purl.org/net/busaco
  95. 95. Dr. Sabin Buragawww.purl.org/net/busaco subiect obiect(e): predicat(e) URL-uri sau literali
  96. 96. Asocierea de vocabulare de meta-date privind resursele: DCMI (Dublin Core Metadata Initiative) FOAF (Friend Of A Friend) DOAC (Description Of A Carrier) DOAP (Description Of A Project) RDFa SIOC (Semantically-Interlinked Online Communities) … a se vizita http://vocab.org/ Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări
  97. 97. Vocabulare de meta-date DCMI – Dublin Core Metadata Initiative proprietăți pentru descrierea resurselor: <dc:Title>, <dc:Description>, <dc:Contributor>, <dc:Publisher>, <dc:Date>, <dc:Type>, <dc:Subject>,… www.dublincore.org Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – dcmi
  98. 98. Vocabulare de meta-date DCMI – Dublin Core Metadata Initiative exemplu – preluat din DBLP Bibliography Database: <http://dblp.l3s.de/d2r/resource/authors/Sabin_C._Buraga> dc:creator <http://dblp.l3s.de/d2r/resource/publications/conf/iceis/LucaB08> Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – dcmi
  99. 99. Relații între persoane FOAF – Friend Of A Friend vocabular RDF ce descrie persoane/organizații: identități, interese, afilieri, rețele sociale etc. www.foaf-project.org Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  100. 100. Relații între persoane FOAF – Friend Of A Friend meta-date privitoare la o persoană: <foaf:Person>, <foaf:name>, <foaf:gender>, <foaf:title>, <foaf:mbox>, <foaf:homepage>, <foaf:weblog>, <foaf:Image>, <foaf:depiction>,... Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  101. 101. Relații între persoane FOAF – Friend Of A Friend relația knows Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  102. 102. Relații între persoane FOAF – Friend Of A Friend relația knows nu se specifică relații mai rafinate e.g., friendOf, collaboratorOf specializări: http://vocab.org/relationship Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  103. 103. foaf:knows foaf:Person Sabin Buraga foaf:name foaf:gender adaptare după Hebeler et al., 2009 male Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  104. 104. Relații între persoane FOAF – Friend Of A Friend exemplu: “Sabin este persoană.” <http://www.purl.org/net/busaco#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  105. 105. Relații între persoane FOAF – Friend Of A Friend exemplu: “Sabin îl cunoaște pe Cristi.” @prefix foaf: <http://xmlns.com/foaf/0.1> <#sabin> <foaf:knows> <#cristi> . Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – foaf
  106. 106. Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – exemplu de graf FOAF
  107. 107. Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – vocabulare multiple @prefix id: <http://www.info.uaic.ro/~busaco/foaf.xml#> @prefix rel: <http://purl.org/vocab/relationship/> @prefix foaf: <http://xmlns.com/foaf/0.1> id:me rel:childOf id:mama , id:tata ; rel:acquaintanceOf id:adria , id:alxb , id:blankdots ; foaf:title "Dr" ; foaf:workplaceHomepage <http://www.info.uaic.ro/> ; foaf:holdsAccount id:my-delicious-account, id:my-slideshare-account ; foaf:interest <http://www.w3.org/XML/> , :Art, :Literature, :Music .
  108. 108. Dr. Sabin Buragawww.purl.org/net/busaco modelarea în RDF a programului de desfășurare a unui eveniment (utilizează DCMI, FOAF, RDF Schema)
  109. 109. Dr. Sabin Buragawww.purl.org/net/busaco dbpedia:Vangelis rdfs:label "Vangelis"@en ; foaf:name "Vangelis"@en ; foaf:givenName "Evangelos Odysseas Papathanassiou"@en ; foaf:depiction <http://upload.wikimedia.org/.../commons/...jpg> ; rdfs:comment "Vangelis is een Grieks muzikant…"@nl ; dbpedia-owl:hometown dbpedia:Volos ; dbpedia-owl:wikiPageExternalLink <http://www.NemoStudios.co.uk> , <http://www.elsew.com> ; dbpedia-owl:birthDate "1943-03-29"^^xsd:date ; dbpedia-owl:genre dbpedia:Electronic_music , dbpedia:Progressive_rock ; dbpprop:associatedActs dbpedia:Jon_and_Vangelis ; dcterms:subject category:Best_Original_Music_Score_Academy_Award_winners , <http://dbpedia.org/resource/Category:1943_births> , category:Living_people , category:Chevaliers_of_the_Ordre_des_Arts_et_des_Lettres . <http://dbpedia.org/resource/Aphroditeu0027s_Child> dbpedia-owl:formerBandMember dbpedia:Vangelis . date RDF despre Vangelis oferite de DBpedia http://dbpedia.org/resource/Vangelis
  110. 110. Relații între comunități virtuale SIOC – Semantically-Interlinked Online Communities model conceptual menit a interconecta situri de comunități (blog, calendar, aggregator,…) și liste de discuții: mailing list, newsgroup, canale IRC etc. Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – sioc
  111. 111. Relații între comunități virtuale SIOC – Semantically-Interlinked Online Communities recurge la RDF + alte vocabulare – e.g., DCMI http://sioc-project.org/ Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – sioc
  112. 112. fragment dintr-o conversație pe IRC modelată via SIOC și alte vocabulare Dr. Sabin Buragawww.purl.org/net/busaco @prefix sioc: <http://rdfs.org/sioc/ns#> <irc://freenode/%23swig> rdf:type sioc:Forum . <irc://freenode/%23swig> sioc:container_of <http://iki.fi/2013-06-11#02:50:56> . <http://iki.fi/2013-06-11#02:50:56> dc:created "2013-06-11T02:50:56Z" . <http://iki.fi/2013-06-11#02:50:56> sioc:has_creator <irc://freenode/tux,isuser>. <http://iki.fi/2013-06-11#02:50:56> rdf:type sioc:Post . conversația propriu-zisă <http://iki.fi/2013-06-11#02:50:56> rdfs:content "Hello!". <http://iki.fi/2013-06-11#02:50:56> rdfs:label "<tux> Hello!". <irc://freenode/tux,isuser> rdfs:label "tux" . <irc://freenode/tux,isuser> rdf:type sioc:User .
  113. 113. Descrierea unui proiect (software) DOAP – Description Of A Project meta-date privitoare la o aplicație <doap:Project>, <doap:name>, <doap:homepage>, <doap:description>, <doap:wiki>, <doap:maintainer>, <doap:programming-language>,… Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – doap
  114. 114. Descrierea unui proiect (software) DOAP – Description Of A Project se bazează pe RDF și FOAF http://usefulinc.com/ns/doap https://github.com/edumbill/doap/wiki Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – doap
  115. 115. Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizari
  116. 116. Specificarea construcțiilor RDF direct în HTML RDFa reprezintă un alt format de serializare a modelului RDF recomandare a Consorțiului Web (2008, 2012) www.w3.org/TR/rdfa-core/ Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – rdfa
  117. 117. Specificarea construcțiilor RDF direct în HTML RDFa Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – rdfa generalizare a specificării unor modele de date exprimate via microformate sau microdate HTML5 rdfa.info vezi suplimentul asociat acestui curs
  118. 118. Utilizarea formatului JSON (JavaScript Object Notation) în contextul datelor RDF interconectate conform inițiativei Linked Data W3C Candidate Recommendation (septembrie 2013) http://www.w3.org/TR/json-ld/ http://json-ld.org/ Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – JSON-LD
  119. 119. Fie documentul JSON oferind date despre o persoană (eventual, obținut prin invocarea unui serviciu Web) { } "id": "busaco", "name": "Sabin Buraga", "title: { "en": "PhD", "ro": "Doctor" }, "workHomepage": "http://www.info.uaic.ro/", "knows": [ { "id": "adria", "name": "Lenuța Alboaie" }, { "id": "blankdots", "name": "Ștefan Negru" } ] de dorit: adnotări semantice adaptare după Markus Lanthaler (2012) Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – JSON-LD
  120. 120. Asocierea de adnotări semantice pe baza construcțiilor @id @value @type @set @list @language @context @graph { } "@id": "busaco", "name": "Sabin Buraga", "title: [ { "@language": "en", "@value": "PhD" }, { "@language": "ro", "@value": "Doctor" } ], "workHomepage": "http://www.info.uaic.ro/", "knows": [ { "@id": "adria", "name": "Lenuța Alboaie" }, { "@id": "blankdots", "name": "Ștefan Negru" } ] adaptare după Markus Lanthaler (2012) Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – JSON-LD
  121. 121. Contextul (vocabularul de termeni) este referit în cadrul documentului sau via un URL extern { "@context": { "foaf": "http://xmlns.com/foaf/0.1/", "name" : "foaf:name", asocieri (mappings) "title" : "foaf:title", de termeni "workHomepage": { "@id" : "foaf:workplaceHomepage" , "@type" : "@id" }, "knows": "foaf:knows" } adaptare după Markus Lanthaler (2012) } Dr. Sabin Buragawww.purl.org/net/busaco rdf: utilizări – JSON-LD
  122. 122. aserțiuni despre "@context": { … }, graful RDF rezultat "@graph": [ { "@id": "_:b0", "ingredient": [ "12 fresh mint leaves", "1/2 lime, juiced with pulp", "1 tablespoons white sugar", "1 cup ice cubes", "2 fluid ounces white rum", "1/2 cup club soda" ], "instructions": [ { "@id": "_:b1" }, { "@id": "_:b2" }, { "@id": "_:b3" }, { "@id": "_:b4" }, { "@id": "_:b5" } ], "name": "Mojito", "yield": "1 cocktail" }, { "@id": "_:b1", "description": "Crush lime juice, mint & sugar together...", "step": 1 }, { "@id": "_:b2", "description": "Fill glass to top with ice cubes.", "step": 2 }, { "@id": "_:b3", "description": "Pour white rum over ice.", "step": 3 }, { "@id": "_:b4", "description": "Fill the rest of glass with club soda, stir.", "step": 4 }, { "@id": "_:b5", "description": "Garnish with a lime wedge.", "step": 5 } ] } un model RDF exprimat în JSON-LD al unei rețete exemplul complet e disponibil la http://json-ld.org/playground Dr. Sabin Buragawww.purl.org/net/busaco {
  123. 123. Modelul RDF permite formularea de aserțiuni explicite privitoare la resursele Web se folosesc triple (subiect, predicat, obiect) referite prin URI-uri Dr. Sabin Buragawww.purl.org/net/busaco concluzii
  124. 124. gm:Niveluri soft:AngryProfs soft:AngryProfs pers:Ana pers:Cristina pers:Dan pers:Dan a rdf:_1 rdf:_2 a rdf:_1 rdf:_2 rdf:_3 s:jucatDe s:areNiveluri gm:joacă rel:friendOf e:attendeeAt foaf:title rdf:Bag ; pers:Ana ; pers:Dan . rdf:Seq ; gm:NivelAn1Sem1 ; gm:NivelAn1Sem2 ; gm:NivelAn2Sem1 . s:Jucători . gm:Niveluri . soft:AngryProfs . pers:Ana . <http://potop.info> . "Bachelor of Science" . datele nu trebuie să fie specificate complet Dr. Sabin Buragawww.purl.org/net/busaco s:Jucători AAA
  125. 125. RDF “helps you to create Web-like relationships between data, which is not easily done in a typical relational database.” Microsoft Developer Network, 2006 Dr. Sabin Buragawww.purl.org/net/busaco concluzii
  126. 126. RDF oferă premisa modelării interconexiunilor web-urilor diferite existente pe Web a se (re)vedea inițiativa Linked Data http://linkeddata.org/guides-and-tutorials Dr. Sabin Buragawww.purl.org/net/busaco concluzii
  127. 127. Dr. Sabin Buragawww.purl.org/net/busaco
  128. 128. Dr. Sabin Buragawww.purl.org/net/busaco recurgând la RDF, pot fi definite și utilizate diverse modele conceptuale
  129. 129. baza Web-ului semantic: modelul de date RDF Dr. Sabin Buragawww.purl.org/net/busaco rezumat mulțumiri: @bblfish, @danja, @gridinoc, @iand, @kidehen, @lucaa, @mfhepp
  130. 130. graf RDF  HTML  RDB↔RDF   Dr. Sabin Buragawww.purl.org/net/busaco punct terminal SPARQL Procesor SPARQL tehnici NLP triple store punct terminal SPARQL  Aplicație bază de date (e.g., NoSQL)  bază de date relațională text nestructurat XML/XHTML episodul viitor: managementul datelor RDF

×