resource description framework (rdf)
DESCRIPTION
Resource Description Framework (RDF). Aplica ții Web Semantice Curs 3. Problemă. Cum putem folosi datele distribuite pe Web?. Creăm vocabulare de termeni (ontologii). Specificăm relații între resurse (instanțe). Problemă. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/1.jpg)
Resource Description Framework (RDF)
Aplicații Web SemanticeCurs 3
![Page 2: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/2.jpg)
ProblemăCum putem folosi datele distribuite pe Web?
Creăm vocabulare de termeni (ontologii)
Specificăm relații între resurse (instanțe)
![Page 3: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/3.jpg)
Problemă Datele folosite de aplicațiile web sunt stocate
in baze de date relaționale Randurile descriu un obiect Coloanele reprezintă proprietăți ale obiectelor Celula reprezintă o valoare a unei proprietăți a
unui obiectCNP Nume_Pre
numeOcupatie Localitate
1880211.. Popescu Ion
Student Bucuresti
1871121.. Ionescu Mihai
Student Cluj
1871002.. Ene Marius Student Timisoara
1880203.. Ionita George
Student Iasi
![Page 4: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/4.jpg)
Problemă Cum putem distribui datele pe web? Varianta 1
Separăm rânduri diferite pe mai multe calculatoare
Trebuie asigurată gestionarea distribuției informației
Trebuie să asigurăm un model relațional comunCNP Nume_
Prenume
Ocupatie
Localitate
1880211..
Popescu Ion
Student Bucuresti
1871121..
Ionescu Mihai
Student ClujCNP Nume_Pre
numeOcupatie Localitate
1880203.. Ionita George
Student Iasi
![Page 5: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/5.jpg)
Varianta 2 Distribuim datele pe coloane Trebuie asigurat un mod prin care să facem
legătura între datele de pe aceleași rânduri
CNP
1880211..
1871121..
Nume_Prenume
Popescu Ion
Ionescu Mihai
Ocupatie
Student
Student
Localitate
Bucuresti
Cluj
![Page 6: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/6.jpg)
Varianta 3 Distribuim informații la nivel de celulă Fiecare calculator reține un număr de celule și un
mod de a identifica obiectul la care se referă informațiile
Nevoia de a identifica în mod unic Obiectele descrise (rândurile) Proprietățile descrise (coloanele) Valorile efective
CNP
Obiect 1
1880211..
Nume_Prenume
Obiect 2 Popescu Ion
![Page 7: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/7.jpg)
RDF – Resource Description Framework RDF is a standard model for data interchange
on the Web (W3C definition) RDF – recomandare W3C din 2004
Tehnologie matură a web-ului semantic Permite exprimarea datelor distribuite pe
internet v. varianta 3 (slide 6)
![Page 8: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/8.jpg)
RDF – definirea resurselor Permite specificarea resurselor de tip tripletă
(coloană, rând, valoare) coloana/rând/valoare identificate prin URI-uri URI = Uniform Resource Identifier (RFC 3305) Există următoarele asocieri
Resursă Subiect Rând Predicat Coloană Proprietate
CNP
Obiect 1
1880211..Subiect/resursă
Predicat/proprietate
Valoare
![Page 9: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/9.jpg)
RDF Statement/ Declarație (Propoziție) = tripletă
(subiect, predicat, atribut) Subiect = Resursa – despre cine se face
afirmația Predicat – exprimă relația dintre subiect și
atribut Atribut (valoare) – caracteristică a subiectului Atributul poate fi la rândul său resursă sau
poate fi o valoare
![Page 10: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/10.jpg)
Grafuri RDF Propozițiile pot fi exprimate ca și grafuri
Grafuri RDF Mai multe propoziții referitoare la aceeași resursă Atributele din unele propoziții reprezintă
subiectele altor propoziții
subiect atributpredicat
![Page 11: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/11.jpg)
Grafuri RDF
Popescu Ion
Student
areOcupație
Ionescu Mihai
189...
areCNP
Bucuresti
188..
areCNP
locuiesteIn areOcupație
locuieșteIn
România
CapitalăAareCapitală
![Page 12: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/12.jpg)
Vocabulare RDF Vocabularele RDF = colecție de definiții de
proprietăț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 următoarele cursuri (5/6)
![Page 13: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/13.jpg)
Identificarea 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 <=> foaf:name Foaf = prefixul definit pentru spațiul de nume
http://xmlns.com/foaf/0.1/
![Page 14: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/14.jpg)
Spaț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/2000/01/rdf-schema#
prefix dc:, namespace URI: http://purl.org/dc/elements/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 aleasă pentru RDF
![Page 15: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/15.jpg)
Noduri vide – blank nodes TBL: asociem fiecărei resurse un URI și în
momentul în care accesăm acel URI obținem informații relevante despre resursă + relații
Problemă: 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)
![Page 16: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/16.jpg)
Tipuri de atribute Atributele pot fi de 2 tipuri
Atribute de tip resursă Atribute tip valoare
Atributelor de tip valoare li se poate specifica explicit tipul ”valoare”^^<tip data>
Exemple: “1850-01-15”^^xsd:date “25”^^xsd:integer
![Page 17: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/17.jpg)
Descrierea resurselor utilizând RDF <rdf:Description
rdf:about="http://dbpedia.org/resource/Mihai_Eminescu"> <rdf:type
rdf:resource="http://dbpedia.org/ontology/Artist"/>
</rdf:Description>http://dbpedia.org/resource/
Mihai_Eminescu
http://dbpedia.org/
ontology/Artist
![Page 18: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/18.jpg)
Descrierea resurselor utilizând RDF Type(http://dbpedia.org/resource/
Mihai_Eminescu, http://dbpedia.org/ontology/Artist)
(http://dbpedia.org/resource/Mihai_Eminescu, rdf:type, http://dbpedia.org/ontology/Artist)
=>Există mai multe feluri în care descrierile RDF pot fi reprezentate
![Page 19: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/19.jpg)
Facilități ale RDF: rdf:datatype <rdf:Description
rdf:about="http://dbpedia.org/resource/Mihai_Eminescu"> <dbpedia-owl:birthDate xmlns:dbpedia-
owl="http://dbpedia.org/ontology/" rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1850-01-15</dbpedia-owl:birthDate>
</rdf:Description> Echivalent cu
(http://dbpedia.org/resource/Mihai_Eminescu, dbpedia-owl:birthDate, ”1850-01-15”^^xsd:date)
![Page 20: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/20.jpg)
Facilități ale RDF – rdf:type Rdf:type precizează că resursa subiect este o
instanță a clasei specificată ca atribut <rdf:Description
rdf:about="http://dbpedia.org/resource/Mihai_Eminescu"> <rdf:type
rdf:resource="http://dbpedia.org/ontology/Artist"/>
</rdf:Description> http://dbpedia.org/resource/Mihai_Eminescu
este o instanță a clasei Artist Poate fi exprimat uzual prin “a” (în unele tipuri
de serializare)
![Page 21: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/21.jpg)
Containere RDF rdf:Bag
container în cadrul căruia nu contează ordinea elementelor
rdf:Seq Container în cadrul căruia contează ordinea
elementelor rdf:Alt
Container cu elemente alternative
![Page 22: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/22.jpg)
Exemplu rdf:bag<rdf:Description rdf:about="http://example.org/courses/6.001">
<s:students> <rdf:Bag>
<rdf:li rdf:resource="http://example.org/students/Amy"/><rdf:li rdf:resource="http://example.org/students/Mohamed"/> <rdf:li rdf:resource="http://example.org/students/Johann"/> <rdf:li rdf:resource="http://example.org/students/Maria"/> <rdf:li rdf:resource="http://example.org/students/Phuong"/>
</rdf:Bag> </s:students>
</rdf:Description>
![Page 23: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/23.jpg)
Exemplu rdf:alt<rdf:Description rdf:about="http://example.org/packages/X11">
<s:DistributionSite> <rdf:Alt>
<rdf:li rdf:resource="ftp://ftp.example.org"/> <rdf:li rdf:resource="ftp://ftp1.example.org"/> <rdf:li rdf:resource="ftp://ftp2.example.org"/>
</rdf:Alt> </s:DistributionSite>
</rdf:Description>
![Page 24: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/24.jpg)
Facilități RDF – rdf:parseType <dc:title rdf:parseType="Literal">
F.Kafka: <html:strong>Procesul</html:strong> </dc:title> Utilizarea parseType cu atributul ”Literal”
specifică faptul că nu va fi prelucrat conținutul elementului
![Page 25: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/25.jpg)
Rdf:parseType parseType cu atributul ”Resource” parsează
resursa și creează un nod vid cu conținutul acesteia<rdf:Description rdf:about="http://www.example.com/2002/04/products#item10245">
<exterms:weight rdf:parseType="Resource"> <rdf:value rdf:datatype="&xsd;decimal">2.4</rdf:value> <exterms:units rdf:resource="http://www.example.org/units/kilograms"/>
</exterms:weight> </rdf:Description> Rdf:resource indică faptul că
valoarea proprietății este de tip resursă și identificatorul acesteia este URI-ul dat
Rdf:value specifică valoarea principală a unei proprietăți compuse
![Page 26: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/26.jpg)
RDF:parseType, resource, value
item10245
_blankNode
kilograms2.4
weight
Rdf:value
units
![Page 27: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/27.jpg)
Utilizarea 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 – exprimă proprietăți n-are Exemplu
Utilizatorul u adnotează resursa r cu tagul t
u t
r
ut
r
Adăugăm o resursă suplimentară
tagging
AnnotatedBy AnnotatedWith
AnnotatesResource
![Page 28: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/28.jpg)
Reification Un mod de a descrie în RDF afirmații făcute
despre alte afirmații RDF Afirmație RDF obișnuită
(s,p,a) Reificarea afirmației
Propoziție prop p areSubiect s p arePredicat p p areAtribut a
Taguri utilizate Rdf:statement Rdf:subject Rdf:predicate Rdf:object
![Page 29: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/29.jpg)
Exemplu reificare <rdf:Description
rdf:ID="item10245"> exterms:weight
rdf:datatype="&xsd;decimal">2.4</exterms:weight>
</rdf:Description> <rdf:Statement
rdf:about="#triple12345"> <rdf:subject
rdf:resource="http://www.example.com/2002/04/products#item10245"/>
<rdf:predicate rdf:resource="http://www.example.com/terms/weight"/>
<rdf:object rdf:datatype="&xsd;decimal">2.4</rdf:object>
<dc:creator rdf:resource="http://www.example.com/staffid/85740"/>
</rdf:Statement>
![Page 30: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/30.jpg)
Serializare RDF RDF/XML Turtle N3 N-triple
![Page 31: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/31.jpg)
N-triple Propozițiile RDF enunțate în forma:
<S> <P> <A>. S,P,A – URI-uri
Exemplu: <http://dbpedia.org/resource/
Mihai_Eminescu"><http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://dbpedia.org/class/yago/RomanianPoets>.
![Page 32: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/32.jpg)
N3 (Notation 3) Notație care ar trebui să poată fi citită și de
oameni (notația XML e dificil de citit) Folosește QNames @prefix rdf:
<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dbpedia:<http://dbpedia.org/resource/> .
@prefix yago:<http://dbpedia.org/class/yago/> .
dbpedia:Mihai_Eminescu a yago:RomanianPoets a rdf:type
![Page 33: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/33.jpg)
Turtle Variantă intermediară între N-Triples și N3 Cea mai tânără variantă (submission W3C
2008) Sintaxă folosită în cadrul interogărilor SPARQL Foarte asemănătoare cu N3
![Page 34: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/34.jpg)
RDF/XML Varianta clasică Foarte greu de citit de utilizatorii umani Greșeală clasică – asocierea RDF cu RDF/XML RDF = limbajul RDF/XML = o metodă de serializare
![Page 35: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/35.jpg)
Descrierea spațiilor de nume în RDF/XML și N3
RDF/XML N3
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/stuff/1.0/" xml:base="http://example.org/here/">
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix ex: <http://example.org/stuff/1.0/>@base <http://example.org/here/>.
![Page 36: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/36.jpg)
Rezumat sintaxă + adăugiri x!y^z
x!p p este proprietate a lui x
similar cu x.p in paradigma oop
x^p – acele x care au proprietateap
[p] – exista x care are proprietatea p
=> - implicație; folosește la implementarea regulilor
![Page 37: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/37.jpg)
Concluzii RDF = limbajul cel mai folosit în momentul de
față pentru aplicații semantice Permite descrierea informațiilor despre
resurse Permite conectarea unor seturi de date
existente pe web Sintaxă foarte simplă
Bazat pe triplete (subiect, predicat, atribut) URI-uri ca identificatori ai resurselor
![Page 38: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/38.jpg)
Test desenați un graf
RDF care să exprime cât mai multe din cunoștințele din pagină
exprimați 2 propoziții folosind o sintaxă la alegere
![Page 39: Resource Description Framework (RDF)](https://reader035.vdocuments.site/reader035/viewer/2022062723/56813e60550346895da865d4/html5/thumbnails/39.jpg)
Referinț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-description-framework-presentation