Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framework)
-
Upload
sabin-buraga -
Category
Technology
-
view
321 -
download
2
description
Transcript of Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framework)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Resource Description Framework
Dezvoltarea aplicațiilor Web
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
“Lucrurile au și ele viață.Totul este să le trezești sufletul.”
Gabriel García Márquez
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Cum (re)folosim datele disponibile pe Web?
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Am putea (re)considera Web-ulca fiind o bază de date distribuită?
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
necesități
O manieră de a atașa date privitoare la date
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
necesități
O manieră de a atașa date privitoare la date
crearea unor vocabulare de termenidescriind “ceva”
(proprietăți, domenii, web-uri,...) – i.e. resurse Web
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
necesități
Un mod de a specifica relații între resurse
Dr.
Sab
in B
ura
ga
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.
Sab
in B
ura
ga
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
scop mai larg: modelarea cunoștințelor
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
realități
Uzual, datele sunt reprezentate în formă tabelară(conform modelului relațional)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
realități
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
exemplu
ID Nume Producător Statut
1 Windows Microsoft Comercial
2 OS/2 IBM N/A
3 IrfanView Irfan Freeware
4 iTunes Apple Freeware
5 Thunderbird Mozilla Open-source
6 Firefox OS Mozilla Open-source
7 Sublime Text Sublime HQ Pty Freeware
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
fragmente de informații vor fi disponibile (liber)pe calculatoare diferite,
accesate via tehnologiile Web actuale
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
soluția 1:
fiecare calculator stochează informațiiledespre mai multe rânduri complete dintr-un tabel
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
exemplu
Distribuirea datelor pe Web
Care-i schema
comună?
iTunes Apple Freeware
Aperture Apple Comercial
Windows Microsoft Comercial
Office Microsoft Comercial
Firefox OS Mozilla Open-source
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
soluția 1:
fiecare calculator stochează informațiiledespre mai multe rânduri complete dintr-un tabel
necesitatea unui mecanism de coordonare între serveree.g., partajarea schemei comune folosite
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
soluția 2:
fiecare calculator este responsabilcu una/mai multe coloane complete
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
exemplu
Distribuirea datelor pe Web
Cine referăpe cine?
Windows
OS/2
IrfanView
iTunes
Thunderbird
Firefox OS
Sublime Text
Microsoft
IBM
Apple
Mozilla
Apache
Open-source
Freeware
Shareware
Comercial
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
solutia 2:
fiecare calculator este responsabilcu una/mai multe coloane complete
necesitatea cunoașterii identității datelor modelatee.g., fiecare resursă are asociat un identificator global
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
soluția 3:
fiecare gazdă realizează managementulunui număr de celule dintr-un tabel
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Nume
Rând 3 Office
Nume
Rând 9 Node.js
Statut
Rând 3 Comercial
Statut
Rând 5 Open-source
Producător
Rând 3 Microsoft
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Nume
Rând 3 Office
Nume
Rând 9 Node.js
Statut
Rând 3 Comercial
Statut
Rând 5 Open-source
Producător
Rând 3 Microsoft
web-ul specific unei corporații
responsabil cu software-ul
privitor la termenii de utilizare
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
Distribuirea datelor pe Web
soluția 3:
fiecare gazdă realizează managementulunui număr de celule dintr-un tabel
combină avantajele abordărilor precedente
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
motivație
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
Resource Description Framework
cadru (abstract) pentru descrierea resurselorla nivelul calculatorului
fundație a Web-ului semantic
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
Recomandare W3C
RDF Model & Syntax Specification (1999)RDF/XML Syntax Specification – Revised (2004)
www.w3.org/RDF/
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
O soluție pentru modelarea Web-ului – sau web-urilor –ca o bază de date distribuită
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
O soluție pentru modelarea Web-ului – sau web-urilor –ca o bază de date distribuită
deși ar fi de doritsă putem realiza mai mult…
intenție:
o bază de cunoștințe
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
Scop:“to allow anyone to say anything about anything”
Ian Davis, 2005
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
Oferă un model de specificare a triplelor(rând, coloană, valoare de celulă)
via identificatori uniformi de resurse – URI
proprietate (predicat)
resursă (subiect)
valoare(obiect)
URI
URIURI
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Resursă – specificată de un URIProprietate – aspect, caracteristică, atribut sau relațieDeclarație – triplu de forma { subiect, predicat, obiect }
subiect obiectpredicat
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Subiect = rând: resursa despre care se “spune” cevaPredicat = coloană: o proprietate a subiectului
Obiect = celulă: valoare particulară a proprietății
subiect obiectpredicat
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
SubiectResursa – specificată de un URI – care este descrisăvia predicat și obiect
PredicatRelație – desemnată de un URI – stabilităîntre subiect și obiectPoate fi considerat și drept atribut (proprietate)
ObiectDesemnează – printr-un URI – resursa referităde un predicat sau specifică o valoare – via un literal
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Subiect Predicat Obiect
Apache produce HadoopMozilla produce FirefoxFirefox areStatut DeschisoXygen areStatut Comercial
Canonical este CompanieJena este SoftwareJava este Limbaj
Sabin localizatIn RomaniaSabin utilizează Firefox
Dragoș cunoaștePe Sabin
un vocabular de termeni folosit în triplele RDF
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
SubiectMozilla
Predicateste
ObiectOrganizație
Dr.
Sab
in B
ura
ga
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 obiect
predicat = eticheta asociată muchiei digrafului
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
Firebug Firefoxextinde
Mozilla
produsDeproduce
Deschis
areStatut
areStatut
Hadoop
Organizație
este Apacheproduce
este
Sabinutilizează
Persoană
este
graful unui model conceptual referitor la un web:
Lucene
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Modelul RDF poate fi folosit, printre altele,la asocierea de meta-date resurselor Webși la specificarea relațiilor dintre resurse
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
Autorul resursei desemnate de URI-ulhttp://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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
Alternative sintactice:autor ("http://www.infoiasi.ro/~web/", "Sabin Buraga")
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
Alternative sintactice:
este ("#java", "#Limbaj")
este ("#manuelsubredu", "#Persoana")
utilizează ("#manuelsubredu", "#firefox")
utilizează ("#manuelsubredu", "http://twitter.com/")
referă ("http://twitter.com/manuelsubredu", "http://wordpress.org")
isA sau a
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
Termenul englezesc “book” este un substantivși are drept sinonime “volume” și “tome”
isA ("#book", "#noun")
hasSynonym ("#book", "#volume")
hasSynonym ("#book", "#tome")
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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ămacelași concept (aceeași resursă)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Un nod al grafului RDF e referit unic via un URI
pot exista alte entități care referă aceleașiconvenții sintactice cu alte semantici
Java (insulă) vs. Java (limbaj) vs. Java (sortiment de cafea)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Un nod al grafului RDF e referit unic via un URI
pentru a desemna concepte diferite,trebuie utilizate URI-uri diferite
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
folosind URI-uri, putem fuziona (merge) grafurireferitoare la concepte comune
figură preluată din (Toby Segaran, Colin Evans & Jamie Taylor, 2009)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Observație (Ian Davis, 2005)
adăugând alte triple– i.e. îmbogățind modelul conceptual –nu vom schimba înțelesul grafului RDF
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Observație (Ian Davis, 2005)
triplele deja existente nu pot fi “uitate”concluziile anterioare nu vor fi invalidate
modelul RDF este monoton
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“missing is not broken”
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“înțelegerea” datelor de către softwarepoate fi realizată progresiv (partial understanding)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Observație (Ian Davis, 2005)
faptele modelate nu trebuie să fie complet specificate
“înțelegerea” datelor de către softwarepoate fi realizată progresiv (partial understanding)
cunoștințele pot fi modelate & accesate în mod dinamic,
conform necesităților
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Putem exprima URI-urile via nume calificate(qualified names – qnames)
spațiu de nume:termen
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Putem exprima URI-urile via nume calificate(qualified names – qnames)
spațiu de nume:termen
e.g., construcție XML(nume de element)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Deoarece numele calificate sunt restrictivela nivel sintactic, se recurge la CURIE
spațiu de nume:termen
http://www.w3.org/TR/curie
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
Subiect Predicat Obiect
com:Apache s:produce soft:Hadooporg:Mozilla s:produce soft:Firefoxsoft:Firefox s:areStatut lic:Deschissoft:oXygen s:areStatut lic:Comercial
com:Canonical s:este s:Companiesoft:Jena s:este s:Softwarelang:Java s:este s:Limbaj
pers:Sabin s:localizatIn geo:Romaniapers:Sabin s:utilizează soft:Firefox
pers:Dragoș pers:cunoaștePe pers:Sabin
un vocabular de termeni calificați
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Spațiile de nume implicite (default) pot fi omise
util dacă se folosește vocabularul local
:Server
:areStatut
:localizatIn
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Meta-datele pot fi asociate unor resurse deja definite:
<rdf:Description rdf:ID="busaco">
<s:rol>profesor la FII, UAIC</s:rol>
</rdf:Description>
...
<rdf:Description rdf:about="#busaco">
<s:adresa>http://purl.org/net/busaco</s:adresa>
</rdf:Description>
vocabularde termeni
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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>
</rdf:Description> </rdf:RDF>
Bag, Seq, Alt
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Specificarea tipurilor de date într-un model RDFse realizează via proprietatea predefinită rdf:type
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
Subiect Predicat Obiect
com:canonical rdf:type s:Companiecom:microsoft rdf:type s:Companie
lang:java rdf:type s:Limbajgeo:romania rdf:type geo:Stat
pers:murakami rdf:type s:Autors:utilizează rdf:type rdf:Propertys:parteDin rdf:type rdf:Propertyfoaf:knows rdf:type rdf:Property
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Stabilirea modului de procesare a declaratiilorse face prin parseType
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
parseType="Resource" se foloseștepentru a semnala faptul că e vorba de o resursă
și nu de o valoare
desemnatăde un URI
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Pentru a specifica o colecție de resurse, se recurge la parseType="Collection"
<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>
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Reificare: declarații despre declarații
faptul 1: Sabin-Corneliu Buraga este autorul resurseidesemnate de URI-ul http://purl.org/net/busaco
faptul 2: Dan Cristea afirmă că Sabin-Corneliu Buragaeste autorul resursei desemnate de URI-ul http://purl.org/net/busaco
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
Reificare: declarații despre declarații
faptul 1: Sabin-Corneliu Buraga este autorul resurseidesemnate de URI-ul http://purl.org/net/busaco
faptul 2: Dan Cristea afirmă că Sabin-Corneliu Buragaeste autorul resursei desemnate de URI-ul http://purl.org/net/busaco
astfel, pot fi modelate meta-date privitoare la meta-date
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
“Wikipedia afirmă faptul că Mozilla produce Firefox.”
p:prop rdf:subject org:Mozilla ;rdf:predicate s:produce ;rdf:object soft:Firefox .
web:Wikipedia s:afirmă p:prop .
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: model – exemplu
“Wikipedia afirmă faptul că Mozilla produce Firefox.”
p:prop rdf:subject org:Mozilla ;rdf:predicate s:produce ;rdf:object soft:Firefox .
web:Wikipedia s:afirmă p:prop .
a nu se confunda cu declarația:
org:Mozilla s:produce soft:Firefox .
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: serializare
Modelul RDF nu este “legat” de o anumită sintaxă
sintaxele “standard” utilizate sunt:digrafuri (reprezentari grafice)
N-TriplesTurtle – Terse RDF Triple Language
N3 – notation 3RDF/XML
http://blog.iandavis.com/2005/09/28/the-sixteen-faces-of-eve/
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: serializare – turtle
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: serializare – N3
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: serializare – N3
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: serializare – RDF/XML
“Formatul cărții referite printr-un ISBN este disponibilca 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>
<rdf:Alt><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>
alternativă de tipuri MIME
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: serializare – grafuri
“Formatul cărții referite printr-un ISBN este disponibilca text obișnuit, HTML sau Postscript.”
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf – noduri vide
Cum reprezentăm o resursăce nu are identitate pe Web?
în unele situații, cunoaștem anumite aspecteprivitoare la “ceva”, fără a-i ști identitatea
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf – noduri vide
Exemplu: o companie/persoană lucrează la un produsa cărui identitate rămâne necunoscută
soft:ProdusX rdf:type soft:Aplicatie ;
s:areStatut lic:Deschis .
com:Google s:produce soft:ProdusX .
Cum procedăm dacă nu-i știm
identitatea?
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf – noduri vide
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf – noduri vide
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
Specificarea tipurilor de date în RDF(adaptare după David Robillard, 2012)
<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.
Sab
in B
ura
ga
www.purl.org/net/busaco
Specificarea tipurilor de date în RDF(adaptare după David Robillard, 2012)
<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 ]
) .
folosirea vocabularelor XML Schema, RDF Schema și OWL pentru a specifica tipuri & restricții asupra datelor
nod vid
se pot utiliza restricțiileXML Schema (facets)
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf
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ândspecificat un tip de dată
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
În ce context ar putea fi utilizat practic modelul RDF?
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări
Uzual, aserțiunile RDF specifică meta-dateprivitoare la aspecte ce privesc caracteristicile
“externe” ale unei resurse
de exemplu:autor, copyright, tag-uri asociate, data publicării, format,…
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări
RDF poate fi util pentru:descrierea resurselor “opace”
(cu reprezentări în formate binare)
e.g., arhive, executabile, multimedia – fișiere audio, video,…
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări
RDF poate fi folosit pentru a descrieresurse intangibile, abstracte
e.g., persoane, organizații,artefacte umane: opere de artă, software, specificații,…
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
subiect
predicat(e)
obiect(e):URL-uri sau literali
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări
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)
RDFaSIOC (Semantically-Interlinked Online Communities)
…
a se vizita http://vocab.org/
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – dcmi
Vocabulare de meta-dateDCMI – 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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – dcmi
Vocabulare de meta-dateDCMI – 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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
Relații între persoaneFOAF – Friend Of A Friend
vocabular RDF ce descrie persoane/organizații:identități, interese, afilieri, rețele sociale etc.
www.foaf-project.org
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
Relații între persoaneFOAF – 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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
Relații între persoaneFOAF – Friend Of A Friend
relația knows
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
Relații între persoaneFOAF – Friend Of A Friend
relația knows
nu se specifică relații mai rafinatee.g., friendOf, collaboratorOf
specializări: http://vocab.org/relationship
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
foaf:Person
Sabin Buraga
foaf:knows
foaf:namemale
foaf:gender
adaptare după Hebeler et al., 2009
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
Relații între persoaneFOAF – 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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – foaf
Relații între persoaneFOAF – Friend Of A Friend
exemplu:“Sabin îl cunoaște pe Cristi.”
@prefix foaf: <http://xmlns.com/foaf/0.1>
<#sabin> <foaf:knows> <#cristi> .
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – exemplu de graf FOAF
Dr.
Sab
in B
ura
ga
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 .
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
modelarea în RDF a programului de desfășurarea unui eveniment (utilizează DCMI, FOAF, RDF Schema)
Dr.
Sab
in B
ura
ga
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/Aphrodite\u0027s_Child>
dbpedia-owl:formerBandMember dbpedia:Vangelis .
date RDF despre Vangelis oferite de DBpediahttp://dbpedia.org/resource/Vangelis
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – sioc
Relații între comunități virtualeSIOC – Semantically-Interlinked Online Communities
model conceptual menit a interconectasituri de comunități (blog, calendar, aggregator,…) și
liste de discuții: mailing list, newsgroup, canale IRC etc.
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – sioc
Relații între comunități virtualeSIOC – Semantically-Interlinked Online Communities
recurge la RDF + alte vocabulare – e.g., DCMI
http://sioc-project.org/
Dr.
Sab
in B
ura
ga
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 .
<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 .
fragment dintr-o conversație pe IRCmodelată via SIOC și alte vocabulare
conversațiapropriu-zisă
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – doap
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – doap
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizari
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – rdfa
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – rdfa
Specificarea construcțiilor RDF direct în HTML
RDFa
generalizare a specificării unor modele de date exprimatevia microformate sau microdate HTML5
rdfa.info
vezi suplimentulasociat acestui curs
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – JSON-LD
Utilizarea formatului JSON (JavaScript Object Notation)
în contextul datelor RDF interconectateconform inițiativei Linked Data
W3C Candidate Recommendation (septembrie 2013)http://www.w3.org/TR/json-ld/
http://json-ld.org/
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – JSON-LD
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" }
]}
adaptare după Markus Lanthaler (2012)
de dorit: adnotări
semantice
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – JSON-LD
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
rdf: utilizări – JSON-LD
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", "title" : "foaf:title", "workHomepage": {
"@id" : "foaf:workplaceHomepage" , "@type" : "@id"
},"knows": "foaf:knows"
}} adaptare după Markus Lanthaler (2012)
asocieri (mappings) de termeni
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
un model RDF exprimat în JSON-LD al unei rețeteexemplul complet e disponibil la http://json-ld.org/playground
{
"@context": { … },
"@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 }
]
}
aserțiuni despre graful RDF rezultat
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
concluzii
Modelul RDF permite formularea de aserțiuniexplicite privitoare la resursele Web
se folosesc triple (subiect, predicat, obiect)referite prin URI-uri
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
s:Jucători a rdf:Bag ;
rdf:_1 pers:Ana ;
rdf:_2 pers:Dan .
gm:Niveluri a rdf:Seq ;
rdf:_1 gm:NivelAn1Sem1 ;
rdf:_2 gm:NivelAn1Sem2 ;
rdf:_3 gm:NivelAn2Sem1 .
soft:AngryProfs s:jucatDe s:Jucători .
soft:AngryProfs s:areNiveluri gm:Niveluri .
pers:Ana gm:joacă soft:AngryProfs .
pers:Cristina rel:friendOf pers:Ana .
pers:Dan e:attendeeAt <http://potop.info> .
pers:Dan foaf:title "Bachelor of Science" .
AAA
datele nu trebuie să fie specificate complet
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
concluzii
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.
Sab
in B
ura
ga
www.purl.org/net/busaco
concluzii
RDF oferă premisa modelării interconexiunilorweb-urilor diferite existente pe Web
a se (re)vedea inițiativa Linked Data
http://linkeddata.org/guides-and-tutorials
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
Dr.
Sab
in B
ura
ga
www.purl.org/net/busacorecurgând la RDF,
pot fi definite și utilizate diverse modele conceptuale
Dr.
Sab
in B
ura
ga
www.purl.org/net/busacorezumat
baza Web-ului semantic: modelul de date RDF
mulțumiri: @bblfish, @danja, @gridinoc, @iand, @kidehen, @lucaa, @mfhepp
Dr.
Sab
in B
ura
ga
www.purl.org/net/busaco
episodul viitor: managementul datelor RDF
ProcesorSPARQL
HTML
bază
de daterelațională
RD
B↔
RD
F
bază
de date(e.g.,
NoSQL)
pu
nct
term
inal
SPA
RQ
L
triple store p
un
ctte
rmin
al S
PAR
QL
Aplicație
teh
nic
i NL
P
text nestructurat
XML/XHTML
graf RDF