Title: Resource Description Framework (RDF)
1Resource Description Framework (RDF)
- Aplica?ii Web Semantice
- Curs 3
2Problema
Cum putem folosi datele distribuite pe Web?
Cream vocabulare de termeni (ontologii)
Specificam rela?ii între resurse (instan?e)
3Problema
- Datele folosite de aplica?iile web sunt stocate
in baze de date rela?ionale - Randurile descriu un obiect
- Coloanele reprezinta proprieta?i ale obiectelor
- Celula reprezinta o valoare a unei proprieta?i a
unui obiect
CNP Nume_Prenume Ocupatie Localitate
1880211.. Popescu Ion Student Bucuresti
1871121.. Ionescu Mihai Student Cluj
1871002.. Ene Marius Student Timisoara
1880203.. Ionita George Student Iasi
4Problema
- Cum putem distribui datele pe web?
- Varianta 1
- Separam rânduri diferite pe mai multe
calculatoare - Trebuie asigurata gestionarea distribu?iei
informa?iei - Trebuie sa asiguram un model rela?ional comun
CNP Nume_Prenume Ocupatie Localitate
1880211.. Popescu Ion Student Bucuresti
1871121.. Ionescu Mihai Student Cluj
CNP Nume_Prenume Ocupatie Localitate
1880203.. Ionita George Student Iasi
5- Varianta 2
- Distribuim datele pe coloane
- Trebuie asigurat un mod prin care sa facem
legatura între datele de pe acelea?i rânduri
Nume_Prenume
Popescu Ion
Ionescu Mihai
Ocupatie
Student
Student
Localitate
Bucuresti
Cluj
CNP
1880211..
1871121..
6- Varianta 3
- Distribuim informa?ii la nivel de celula
- Fiecare calculator re?ine un numar de celule ?i
un mod de a identifica obiectul la care se refera
informa?iile - Nevoia de a identifica în mod unic
- Obiectele descrise (rândurile)
- Proprieta?ile descrise (coloanele)
- Valorile efective
CNP
Obiect 1 1880211..
Nume_Prenume
Obiect 2 Popescu Ion
7RDF Resource Description Framework
- RDF is a standard model for data interchange on
the Web (W3C definition) - RDF recomandare W3C din 2004
- Tehnologie matura a web-ului semantic
- Permite exprimarea datelor distribuite pe
internet v. varianta 3 (slide 6)
8RDF definirea resurselor
- Permite specificarea resurselor de tip tripleta
(coloana, rând, valoare) - coloana/rând/valoare identificate prin URI-uri
- URI Uniform Resource Identifier (RFC 3305)
- Exista urmatoarele asocieri
- Resursa ? Subiect ? Rând
- Predicat ? Coloana ? Proprietate
CNP
Obiect 1 1880211..
Predicat/proprietate
Subiect/resursa
Valoare
9RDF
- Statement/ Declara?ie (Propozi?ie) tripleta
(subiect, predicat, atribut) - Subiect Resursa despre cine se face afirma?ia
- Predicat exprima rela?ia dintre subiect ?i
atribut - Atribut (valoare) caracteristica a subiectului
- Atributul poate fi la rândul sau resursa sau
poate fi o valoare
10Grafuri RDF
- Propozi?iile pot fi exprimate ca ?i grafuri
- Grafuri RDF
- Mai multe propozi?ii referitoare la aceea?i
resursa - Atributele din unele propozi?ii reprezinta
subiectele altor propozi?ii
predicat
subiect
atribut
11Grafuri RDF
areOcupa?ie
Popescu Ion
Student
areCNP
locuiesteIn
areOcupa?ie
189...
locuie?teIn
Bucuresti
Ionescu Mihai
areCNP
CapitalaA
areCapitala
188..
România
12Vocabulare RDF
- Vocabularele RDF colec?ie de defini?ii de
proprieta?i - Sunt disponibile pe web
- Resursele dintr-un vocabular au un prefix comun
în cadrul URI - Exemple de vocabulare
- FOAF friend of a friend
- SIOC semantically interlinked online
communities - SKOS simple knowledge organisation system
- DC Dublin Core
- Vocabularele RDF vor fi analizate în detaliu în
urmatoarele cursuri (5/6)
13Identificarea resurselor prin URI-uri
- Resursele sunt identificate prin URI-uri
- QName Qualified Name abreviere a unui URL
full - QName prefix asignat unui spa?iu de nume
localname - Exemplu
- http//xmlns.com/foaf/0.1/name ltgt foafname
- Foaf prefixul definit pentru spa?iul de nume
http//xmlns.com/foaf/0.1/
14Spa?ii de nume ?i prefixe
- prefix rdf, namespace URI http//www.w3.org/1999
/02/22-rdf-syntax-ns - prefix rdfs, namespace URI http//www.w3.org/200
0/01/rdf-schema - prefix dc, namespace URI http//purl.org/dc/elem
ents/1.1/ - prefix owl, namespace URI http//www.w3.org/2002
/07/owl - prefix xsd, namespace URI http//www.w3.org/2001
/XMLSchema - Modul de definire al spa?iilor de nume depinde de
sintaxa aleasa pentru RDF
15Noduri vide blank nodes
- TBL asociem fiecarei resurse un URI ?i în
momentul în care accesam acel URI ob?inem
informa?ii relevante despre resursa rela?ii - Problema resurse anonime
- Resurse care nu sunt reprezentate pe web
- Nu putem sa le asociem un URI sau nu le cunoa?tem
identitatea - Acestor resurse le sunt asociate noduri vide
(blank node/ bnode)
16Tipuri de atribute
- Atributele pot fi de 2 tipuri
- Atribute de tip resursa
- Atribute tip valoare
- Atributelor de tip valoare li se poate specifica
explicit tipul - valoarelttip datagt
- Exemple
- 1850-01-15xsddate
- 25xsdinteger
17Descrierea resurselor utilizând RDF
- ltrdfDescription rdfabout"http//dbpedia.org/res
ource/Mihai_Eminescu"gt - ltrdftype rdfresource"http//dbpedia.org/ontolog
y/Artist"/gt - lt/rdfDescriptiongt
http//dbpedia.org/resource/Mihai_Eminescu
http//dbpedia.org/ontology/Artist
18Descrierea resurselor utilizând RDF
- Type(http//dbpedia.org/resource/Mihai_Eminescu,
http//dbpedia.org/ontology/Artist) - (http//dbpedia.org/resource/Mihai_Eminescu,
rdftype, http//dbpedia.org/ontology/Artist) - gtExista mai multe feluri în care descrierile RDF
pot fi reprezentate
19Facilita?i ale RDF rdfdatatype
- ltrdfDescription rdfabout"http//dbpedia.org/res
ource/Mihai_Eminescu"gt - ltdbpedia-owlbirthDate xmlnsdbpedia-owl"http//d
bpedia.org/ontology/" rdfdatatype"http//www.w3.
org/2001/XMLSchemadate"gt1850-01-15lt/dbpedia-owlb
irthDategt - lt/rdfDescriptiongt
- Echivalent cu
- (http//dbpedia.org/resource/Mihai_Eminescu,
dbpedia-owlbirthDate, 1850-01-15xsddate)
20Facilita?i ale RDF rdftype
- Rdftype precizeaza ca resursa subiect este o
instan?a a clasei specificata ca atribut - ltrdfDescription rdfabout"http//dbpedia.org/res
ource/Mihai_Eminescu"gt - ltrdftype rdfresource"http//dbpedia.org/ontolog
y/Artist"/gt - lt/rdfDescriptiongt
- ? http//dbpedia.org/resource/Mihai_Eminescu este
o instan?a a clasei Artist - Poate fi exprimat uzual prin a (în unele tipuri
de serializare)
21Containere RDF
- rdfBag
- container în cadrul caruia nu conteaza ordinea
elementelor - rdfSeq
- Container în cadrul caruia conteaza ordinea
elementelor - rdfAlt
- Container cu elemente alternative
22Exemplu rdfbag
ltrdfDescription rdfabout"http//example.org/cou
rses/6.001"gt ltsstudentsgt ltrdfBaggt
ltrdfli rdfresource"http//example.org/stude
nts/Amy"/gt ltrdfli rdfresource"http//example
.org/students/Mohamed"/gt ltrdfli
rdfresource"http//example.org/students/Johann"/
gt ltrdfli rdfresource"http//example.org/stu
dents/Maria"/gt ltrdfli rdfresource"http//ex
ample.org/students/Phuong"/gt lt/rdfBaggt
lt/sstudentsgt lt/rdfDescriptiongt
23Exemplu rdfalt
ltrdfDescription rdfabout"http//example.org/pac
kages/X11"gt ltsDistributionSitegt ltrdfAltgt
ltrdfli rdfresource"ftp//ftp.example.org"/gt
ltrdfli rdfresource"ftp//ftp1.example.org"
/gt ltrdfli rdfresource"ftp//ftp2.example.or
g"/gt lt/rdfAltgt lt/sDistributionSitegt
lt/rdfDescriptiongt
24Facilita?i RDF rdfparseType
- ltdctitle rdfparseType"Literal"gt
- F.Kafka lthtmlstronggtProcesullt/htmlstronggt
- lt/dctitlegt
- Utilizarea parseType cu atributul Literal
specifica faptul ca nu va fi prelucrat con?inutul
elementului
25RdfparseType
- parseType cu atributul Resource parseaza
resursa ?i creeaza un nod vid cu con?inutul
acesteia
ltrdfDescription rdfabout"http//www.example.com
/2002/04/productsitem10245"gt ltextermsweight
rdfparseType"Resource"gt ltrdfvalue
rdfdatatype"xsddecimal"gt2.4lt/rdfvaluegt
ltextermsunits rdfresource"http//www.example.or
g/units/kilograms"/gt lt/extermsweightgt
lt/rdfDescriptiongt
Rdfresource indica faptul ca valoarea
proprieta?ii este de tip resursa ?i
identificatorul acesteia este URI-ul dat
Rdfvalue specifica valoarea principala a unei
proprieta?i compuse
26RDFparseType, resource, value
weight
item10245
_blankNode
units
Rdfvalue
kilograms
2.4
27Utilizarea RDF pentru reprezentare hypergrafuri
- In mathematics, a hypergraph is a generalization
of a graph, where an edge can connect any number
of vertices. (wikipedia) - Hypergraf exprima proprieta?i n-are
- Exemplu
- Utilizatorul u adnoteaza resursa r cu tagul t
t
u
u
t
AnnotatedBy
AnnotatedWith
tagging
Adaugam o resursa suplimentara
AnnotatesResource
r
r
28Reification
- Un mod de a descrie în RDF afirma?ii facute
despre alte afirma?ii RDF - Afirma?ie RDF obi?nuita
- (s,p,a)
- Reificarea afirma?iei
- Propozi?ie prop
- p areSubiect s
- p arePredicat p
- p areAtribut a
- Taguri utilizate
- Rdfstatement
- Rdfsubject
- Rdfpredicate
- Rdfobject
29Exemplu reificare
- ltrdfDescription rdfID"item10245"gt
- extermsweight rdfdatatype"xsddecimal"gt2.4lt/ex
termsweightgt - lt/rdfDescriptiongt
- ltrdfStatement rdfabout"triple12345"gt
- ltrdfsubject rdfresource"http//www.example.com/
2002/04/productsitem10245"/gt - ltrdfpredicate rdfresource"http//www.example.co
m/terms/weight"/gt - ltrdfobject rdfdatatype"xsddecimal"gt2.4lt/rdfo
bjectgt - ltdccreator rdfresource"http//www.example.com/s
taffid/85740"/gt - lt/rdfStatementgt
30Serializare RDF
- RDF/XML
- Turtle
- N3
- N-triple
31N-triple
- Propozi?iile RDF enun?ate în forma
- ltSgt ltPgt ltAgt.
- S,P,A URI-uri
- Exemplu
- lthttp//dbpedia.org/resource/Mihai_Eminescu"gtlthtt
p//www.w3.org/1999/02/22-rdf-syntax-nstypegtlthtt
p//dbpedia.org/class/yago/RomanianPoetsgt.
32N3 (Notation 3)
- Nota?ie care ar trebui sa poata fi citita ?i de
oameni (nota?ia XML e dificil de citit) - Folose?te QNames
- _at_prefix rdf lthttp//www.w3.org/1999/02/22-rdf-syn
tax-nsgt . - _at_prefix dbpedia lthttp//dbpedia.org/resource/gt .
- _at_prefix yago lthttp//dbpedia.org/class/yago/gt .
- dbpediaMihai_Eminescu a yagoRomanianPoets
- a ? rdftype
33Turtle
- Varianta intermediara între N-Triples ?i N3
- Cea mai tânara varianta (submission W3C 2008)
- Sintaxa folosita în cadrul interogarilor SPARQL
- Foarte asemanatoare cu N3
34RDF/XML
- Varianta clasica
- Foarte greu de citit de utilizatorii umani
- Gre?eala clasica asocierea RDF cu RDF/XML
- RDF limbajul
- RDF/XML o metoda de serializare
35Descrierea spa?iilor de nume în RDF/XML ?i N3
- ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
df-syntax-ns" xmlnsex"http//example.org/stuff/
1.0/" xmlbase"http//example.org/here/"gt
- _at_prefix rdf lthttp//www.w3.org/1999/02/22-rdf-syn
tax-nsgt ._at_prefix ex lthttp//example.org/stuff/1
.0/gt_at_base lthttp//example.org/here/gt.
36Rezumat sintaxa adaugiri
- x!yz
- x!p ? p este proprietate a lui x
- similar cu x.p in paradigma oop
- xp acele x care au proprietateap
- p exista x care are proprietatea p
- gt - implica?ie folose?te la implementarea
regulilor
37Concluzii
- RDF limbajul cel mai folosit în momentul de
fa?a pentru aplica?ii semantice - Permite descrierea informa?iilor despre resurse
- Permite conectarea unor seturi de date existente
pe web - Sintaxa foarte simpla
- Bazat pe triplete (subiect, predicat, atribut)
- URI-uri ca identificatori ai resurselor
38Test
- desena?i un graf RDF care sa exprime cât mai
multe din cuno?tin?ele din pagina - exprima?i 2 propozi?ii folosind o sintaxa la
alegere
39Referin?e
- RDF Primer - http//www.w3.org/TR/rdf-primer/
- http//www.w3.org/TR/rdf-mt
- http//www.w3.org/TR/REC-rdf-syntax/
- http//www.slideshare.net/busaco/web03-resource-de
scription-framework-presentation