390 likes | 507 Views
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ă.
E N D
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ă • 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 obiect
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 comun
Varianta 2 • Distribuim datele pe coloane • Trebuie asigurat un mod prin care să facem legătura între datele de pe aceleași rânduri
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
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 Predicat/proprietate Subiect/resursă 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 predicat subiect atribut
Grafuri RDF areOcupație Popescu Ion Student areCNP locuiesteIn areOcupație 189... locuieșteIn Bucuresti Ionescu Mihai areCNP areCapitală CapitalăA 188.. România
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:Descriptionrdf:about="http://dbpedia.org/resource/Mihai_Eminescu"> • <rdf:typerdf:resource="http://dbpedia.org/ontology/Artist"/> • </rdf:Description> • http://dbpedia.org/resource/Mihai_Eminescu este o instanță a clasei Artist • Poatefiexprimatuzualprin “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 weight item10245 _blankNode units Rdf:value kilograms 2.4
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 t u u t AnnotatedBy AnnotatedWith tagging Adăugăm o resursă suplimentară AnnotatesResource r r
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:Descriptionrdf:ID="item10245"> • exterms:weightrdf:datatype="&xsd;decimal">2.4</exterms:weight> • </rdf:Description> • <rdf:Statementrdf:about="#triple12345"> • <rdf:subjectrdf:resource="http://www.example.com/2002/04/products#item10245"/> • <rdf:predicaterdf:resource="http://www.example.com/terms/weight"/> • <rdf:objectrdf:datatype="&xsd;decimal">2.4</rdf:object> • <dc:creatorrdf: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