5. O manieră de a atașa date privitoare la date
Dr. Sabin Buragawww.purl.org/net/busaco
necesități
6. O manieră de a atașa date privitoare la date
Dr. Sabin Buragawww.purl.org/net/busaco
necesități
crearea unor vocabulare de termeni
descriind “ceva”
(proprietăți, domenii, web-uri,...) – i.e. resurse Web
7. Un mod de a specifica relații între resurse
Dr. Sabin Buragawww.purl.org/net/busaco
necesități
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 Buragawww.purl.org/net/busaco
necesități
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 Buragawww.purl.org/net/busaco
necesități
10. Uzual, datele sunt reprezentate în formă tabelară
(conform modelului relațional)
Dr. Sabin Buragawww.purl.org/net/busaco
realități
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 Buragawww.purl.org/net/busaco
realități
13. Distribuirea datelor pe Web
fragmente de informații vor fi disponibile (liber)
pe calculatoare diferite,
accesate via tehnologiile Web actuale
Dr. Sabin Buragawww.purl.org/net/busaco
motivație
14. Distribuirea datelor pe Web
soluția 1:
Dr. Sabin Buragawww.purl.org/net/busaco
motivație
fiecare calculator stochează informațiile
despre mai multe rânduri complete dintr-un tabel
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 Buragawww.purl.org/net/busaco
exemplu
16. Distribuirea datelor pe Web
soluția 1:
Dr. Sabin Buragawww.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. Distribuirea datelor pe Web
soluția 2:
fiecare calculator este responsabil
cu una/mai multe coloane complete
Dr. Sabin Buragawww.purl.org/net/busaco
motivație
18. Distribuirea datelor pe Web
Windows
OS/2
IrfanView
iTunes
Thunderbird
Firefox OS
Sublime Text
Microsoft
IBM
Apple
Mozilla
Apache
Dr. Sabin Buragawww.purl.org/net/busaco
exemplu
Open-source
Freeware
Shareware
Comercial
Cine referă
pe cine?
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 Buragawww.purl.org/net/busaco
motivație
20. Distribuirea datelor pe Web
soluția 3:
fiecare gazdă realizează managementul
unui număr de celule dintr-un tabel
Dr. Sabin Buragawww.purl.org/net/busaco
motivație
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 Buragawww.purl.org/net/busaco
Nume
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 Buragawww.purl.org/net/busaco
responsabil cu software-ul
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 Buragawww.purl.org/net/busaco
motivație
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 Buragawww.purl.org/net/busaco
motivație
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 Buragawww.purl.org/net/busaco
motivație
26. Resource Description Framework
cadru (abstract) pentru descrierea resurselor
la nivelul calculatorului
fundație a Web-ului semantic
Dr. Sabin Buragawww.purl.org/net/busaco
rdf
27. Recomandare W3C
RDF Model & Syntax Specification (1999)
RDF/XML Syntax Specification – Revised (2004)
www.w3.org/RDF/
Dr. Sabin Buragawww.purl.org/net/busaco
rdf
28. O soluție pentru modelarea Web-ului – sau web-urilor –
ca o bază de date distribuită
Dr. Sabin Buragawww.purl.org/net/busaco
rdf
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 Buragawww.purl.org/net/busaco
rdf
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 Buragawww.purl.org/net/busaco
rdf
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
35. un vocabular de termeni folosit în triplele RDF
Dr. Sabin Buragawww.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
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model – exemplu
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 Buragawww.purl.org/net/busaco
rdf: model
40. Modelul RDF poate fi folosit, printre altele,
la asocierea de meta-date resurselor Web
și la specificarea relațiilor dintre resurse
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model – exemplu
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 Buragawww.purl.org/net/busaco
rdf: model – exemplu
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 Buragawww.purl.org/net/busaco
rdf: model – exemplu
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
Java (insulă) vs. Java (limbaj) vs. Java (sortiment de cafea)
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 Buragawww.purl.org/net/busaco
rdf: model
48. Un nod al grafului RDF e referit unic via un URI
pentru a desemna concepte diferite,
trebuie utilizate URI-uri diferite
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
54. Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“missing is not broken”
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
57. Putem exprima URI-urile via nume calificate
(qualified names – qnames)
spațiu de nume:termen
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
62. Spațiile de nume implicite (default) pot fi omise
util dacă se folosește vocabularul local
:Server
:areStatut
:localizatIn
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
65. Specificarea tipurilor de date într-un model RDF
se realizează via proprietatea predefinită rdf:type
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
68. Stabilirea modului de procesare a declaratiilor
se face prin parseType
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
71. Pentru a specifica o colecție de resurse,
se recurge la parseType="Collection"
Dr. Sabin Buragawww.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. 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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model
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 Buragawww.purl.org/net/busaco
rdf: model – exemplu
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 Buragawww.purl.org/net/busaco
rdf: model – exemplu
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 Buragawww.purl.org/net/busaco
rdf: serializare
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 Buragawww.purl.org/net/busaco
rdf: serializare – turtle
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 Buragawww.purl.org/net/busaco
rdf: serializare – N3
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 Buragawww.purl.org/net/busaco
rdf: serializare – N3
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 Buragawww.purl.org/net/busaco
rdf: serializare – RDF/XML
82. “Formatul cărții referite printr-un ISBN este disponibil
ca text obișnuit, HTML sau Postscript.”
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: serializare – grafuri
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 Buragawww.purl.org/net/busaco
rdf – noduri vide
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 Buragawww.purl.org/net/busaco
rdf – noduri vide
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 Buragawww.purl.org/net/busaco
rdf – noduri vide
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 Buragawww.purl.org/net/busaco
rdf – noduri vide
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 Buragawww.purl.org/net/busaco
Specificarea tipurilor de date în RDF
(adaptare după David Robillard, 2012)
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 Buragawww.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. 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 Buragawww.purl.org/net/busaco
rdf
91. Uzual, aserțiunile RDF specifică meta-date
privitoare la aspecte ce privesc caracteristicile
“externe” ale unei resurse
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: utilizări
de exemplu:
autor, copyright, tag-uri asociate, data publicării, format,…
92. RDF poate fi util pentru:
descrierea resurselor “opace”
(cu reprezentări în formate binare)
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: utilizări
e.g., arhive, executabile, multimedia – fișiere audio, video,…
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 Buragawww.purl.org/net/busaco
rdf: utilizări
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 Buragawww.purl.org/net/busaco
rdf: utilizări
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 Buragawww.purl.org/net/busaco
rdf: utilizări – dcmi
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 Buragawww.purl.org/net/busaco
rdf: utilizări – dcmi
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 Buragawww.purl.org/net/busaco
rdf: utilizări – foaf
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 Buragawww.purl.org/net/busaco
rdf: utilizări – foaf
101. Relații între persoane
FOAF – Friend Of A Friend
relația knows
Dr. Sabin Buragawww.purl.org/net/busaco
rdf: utilizări – foaf
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 Buragawww.purl.org/net/busaco
rdf: utilizări – foaf
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 Buragawww.purl.org/net/busaco
rdf: utilizări – foaf
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 Buragawww.purl.org/net/busaco
rdf: utilizări – foaf
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 Buragawww.purl.org/net/busaco
rdf: utilizări – sioc
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 Buragawww.purl.org/net/busaco
rdf: utilizări – sioc
112. fragment dintr-o conversație pe IRC
modelată via SIOC și alte vocabulare
Dr. Sabin Buragawww.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. 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 Buragawww.purl.org/net/busaco
rdf: utilizări – doap
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 Buragawww.purl.org/net/busaco
rdf: utilizări – doap
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 Buragawww.purl.org/net/busaco
rdf: utilizări – rdfa
117. Specificarea construcțiilor RDF direct în HTML
RDFa
Dr. Sabin Buragawww.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. 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 Buragawww.purl.org/net/busaco
rdf: utilizări – JSON-LD
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 Buragawww.purl.org/net/busaco
rdf: utilizări – JSON-LD
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 Buragawww.purl.org/net/busaco
rdf: utilizări – JSON-LD
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 Buragawww.purl.org/net/busaco
{
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 Buragawww.purl.org/net/busaco
concluzii
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 Buragawww.purl.org/net/busaco
concluzii
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 Buragawww.purl.org/net/busaco
concluzii
129. baza Web-ului semantic: modelul de date RDF
Dr. Sabin Buragawww.purl.org/net/busaco
rezumat
mulțumiri: @bblfish, @danja, @gridinoc, @iand, @kidehen, @lucaa, @mfhepp
130. graf RDF
HTML
RDB↔RDF
Dr. Sabin Buragawww.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