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
Resource Description Framework (RDF)
Aplicații Web SemanticeCurs 3
ProblemăCum putem folosi datele distribuite pe Web?
Creăm vocabulare de termeni (ontologii)
Specificăm relații între resurse (instanțe)
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
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
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
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
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)
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
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
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
Grafuri RDF
Popescu Ion
Student
areOcupație
Ionescu Mihai
189...
areCNP
Bucuresti
188..
areCNP
locuiesteIn areOcupație
locuieșteIn
România
CapitalăAareCapitală
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)
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/
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
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)
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
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
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
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)
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)
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
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>
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>
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
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
RDF:parseType, resource, value
item10245
_blankNode
kilograms2.4
weight
Rdf:value
units
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
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
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>
Serializare RDF RDF/XML Turtle N3 N-triple
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>.
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
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
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
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/>.
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
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
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
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