resource description framework (rdf)

39
Resource Description Framework (RDF) Aplicații Web Semantice Curs 3

Upload: tex

Post on 07-Jan-2016

41 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Resource Description Framework (RDF)

Resource Description Framework (RDF)

Aplicații Web SemanticeCurs 3

Page 2: Resource Description Framework (RDF)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

RDF:parseType, resource, value

item10245

_blankNode

kilograms2.4

weight

Rdf:value

units

Page 27: Resource Description Framework (RDF)

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)

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)

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)

Serializare RDF RDF/XML Turtle N3 N-triple

Page 31: Resource Description Framework (RDF)

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)

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)

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)

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)

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)

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)

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)

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)

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