1 / 51

RDF, RDFa , RDFS

Jakub Klímek, Martin Nečaský. RDF, RDFa , RDFS. RDF. entity reálného světa (konkrétní i abstraktní) nějaká osoba, stát, webová stránka, ... reprezentovány na webu pomocí zdrojů každý zdroj je jednoznačně identifikován svým URI

yeriel
Download Presentation

RDF, RDFa , RDFS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jakub Klímek, Martin Nečaský RDF, RDFa, RDFS

  2. RDF • entity reálného světa (konkrétní i abstraktní) • nějaká osoba, stát, webová stránka, ... • reprezentovány na webu pomocí zdrojů • každý zdroj je jednoznačně identifikován svým URI • zdroje http://www.necasky.net/#me a mailto:martinnec@gmail.com reprezentující osobu Martin Nečaský • zdroj http://dbpedia.org/resource/Czech_Republic reprezentující stát Česká republika Jakub Klímek, Martin Nečaský: RDFa

  3. RDF • entity mají různé vlastnosti a jsou ve vztahu k jiným entitám • Martin Nečaskýje vysoký178 cm • Martin NečaskýznáAlana Eckharta • Česká republikamá hlavní městoPrahu • stejně jako entity, i vlastnosti a vztahy jsou reprezentovány pomocí zdrojů • zdroj http://www.example.com/personal/#height reprezentující vlastnost je vysoký • zdroj foaf:knows reprezentující vlastnost zná Jakub Klímek, Martin Nečaský: RDFa

  4. RDF • takové vlastnosti entit a vztahy mezi nimi lze formálně popisovat jako trojice Subjekt Predikát Objekt • subjekt (subject) je zdroj jehož vlastnost je popisována • predikát (predicate) je zdroj reprezentující popisovanou vlastnost • objekt (object) je hodnotou vlastnosti subjektu (zdroj nebo hodnota) Jakub Klímek, Martin Nečaský: RDFa

  5. Příklad nec:meex:height“178 cm“nec:mefoaf:knowseck:meeck:mefoaf:knowsnec:me • pro každý zdroj reprezentující vlastnost může být explicitně specifikováno, že reprezentuje vlastnost (opět pomocí trojice), např.: foaf:knowsrdf:typerdf:Property Jakub Klímek, Martin Nečaský: RDFa

  6. Co vidí stroj vs. co vidí uživatel Jakub Klímek, Martin Nečaský: RDFa

  7. RDFa – RDF in attributes • RDF – ResourceDescription Framework • Trojice. Jednoduchá tvrzení o datech. • Subjekt, Predikát, Objekt • http://www.example.org/index.htmlmáautorajehož hodnota jeJohn Smith • subjektje URL http://www.example.org/index.html • predikátje " má autora" • objektje "John Smith" • Před RDFa: XHTML pro lidi, RDF pro stroje • RDFa: Speciální XHTML atributy • Umožňují využít existující XHTML data jak pro lidi tak pro stroje • bez opakování obsahu Jakub Klímek, Martin Nečaský: RDFa

  8. XHTML+RDFa 1.0 document <?xmlversion="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa1.1" xml:lang="en" lang="en"> <head> <title>VirtualLibrary</title> </head> <body> <p> Movedto <a href="http://example.org/">example.org</a>. </p> </body> </html> Jakub Klímek, Martin Nečaský: RDFa

  9. Příklad All content on this site is licensed under <a href="http://creativecommons.org/licenses/by/3.0/"> a Creative Commons License </a> All content on this site is licensed under <a rel="license"href="http://creativecommons.org/licenses/by/3.0/"> a Creative Commons License </a> Jakub Klímek, Martin Nečaský: RDFa

  10. Příklad: slovníky <div> <h2>Thetroublewith Bob</h2> <h3>Alice</h3> ... </div> <div prefix="dc: http://purl.org/dc/elements/1.1/"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> ... </div> • Proč prefix dc? • Kdybychom použili jen property=„title“ a property=„creator“pro stroj to jsou stále jen nějaké nové texty • Ve slovníku Dublin Core jsou koncepty title a creator definované spolu s jejich sémantikou • dc:title je zkratka za http://purl.org/dc/elements/1.1/title a o tom „všichni“ ví co znamená Jakub Klímek, Martin Nečaský: RDFa

  11. Příklad: slovníky <div> <h2>Thetroublewith Bob</h2> <h3>Alice</h3> ... </div> <div prefix="dc: http://purl.org/dc/elements/1.1/"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> ... </div> Jakub Klímek, Martin Nečaský: RDFa

  12. Příklad: více položek na stránce <div prefix="dc: http://purl.org/dc/elements/1.1/"> <div about="/alice/posts/trouble_with_bob"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> ... </div> <div about="/alice/posts/jos_barbecue"> <h2 property="dc:title">Jo's Barbecue</h2> <h3 property="dc:creator">Eve</h3> ... </div> ... </div> Jakub Klímek, Martin Nečaský: RDFa

  13. Příklad: nejbližší about <div about="/alice/posts/trouble_with_bob"> <h2 property="dc:title">The trouble with Bob</h2> The trouble with Bob is that he takes much better photos than I do: <div about="http://example.com/bob/photos/sunset.jpg"> <imgsrc="http://example.com/bob/photos/sunset.jpg" /> <span property="dc:title">Beautiful Sunset</span> by <span property="dc:creator">Bob</span>. </div> </div> Jakub Klímek, Martin Nečaský: RDFa

  14. Příklad: FOAF, typeof <div typeof="foaf:Person"prefix="foaf: http://xmlns.com/foaf/0.1/"> <p property="foaf:name"> Alice Birpemswick </p> <p> Email: <a rel="foaf:mbox"href="mailto:alice@example.com"> alice@example.com </a> </p> <p> Phone: <a rel="foaf:phone"href="tel:+1-617-555-7332"> +1 617.555.7332 </a> </p> </div> Žádné about, tzn. žádné URL => _:blanknode1 Jakub Klímek, Martin Nečaský: RDFa

  15. Příklad: FOAF <div prefix="foaf: http://xmlns.com/foaf/0.1/"about="#me"rel="foaf:knows"> <ul> <litypeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/bob"> Bob </a> </li> <litypeof="foaf:Person"> <a property="foaf:name" rel="foaf:homepage" href="http://example.com/eve"> Eve </a> </li> </ul> </div> Jakub Klímek, Martin Nečaský: RDFa

  16. URI vs. CURIE vs. SafeCURIE • URI – UniformResourceIdentifier <div about="http://dbpedia.org/resource/Albert_Einstein"> • CURIE – Compact URI Expression <div prefix="db: http://dbpedia.org/"> <div about="db:resource/Albert_Einstein"> ... </div> </div> • SafeCURIE <div prefix="db: http://dbpedia.org/"> <div about="[db:resource/Albert_Einstein]"> ... </div> </div> Jakub Klímek, Martin Nečaský: RDFa

  17. XHTML a RDFa atributy - přehled

  18. RDFa – chaining (řetězení) <div about="http://dbpedia.org/resource/Albert_Einstein"> <spanproperty="foaf:name">Albert Einstein</span> <spanproperty="dbp:dateOfBirth" datatype="xsd:date">1879-03-14</span> <div rel="dbp:birthPlace" resource="http://dbpedia.org/resource/Germany"> <spanproperty="dbp:conventionalLongName">Federal Republic ofGermany</span> </div> </div> Zde se objekt v resourcestal subjektem pro vnořená tvrzení <div about="http://dbpedia.org/resource/Albert_Einstein"> <spanrel="dbp:citizenship" resource="http://dbpedia.org/resource/Germany"/> <spanrel="dbp:citizenship" resource="http://dbpedia.org/resource/United_States"/> </div> <div about="http://dbpedia.org/resource/Albert_Einstein"> <div rel="dbp:citizenship"> <span about="http://dbpedia.org/resource/Germany"/> <span about="http://dbpedia.org/resource/United_States"/> </div> </div> <div about="http://dbpedia.org/resource/Albert_Einstein" rel="dbp:citizenship"> <span about="http://dbpedia.org/resource/Germany"/> <span about="http://dbpedia.org/resource/United_States"/> </div> Jakub Klímek, Martin Nečaský: RDFa

  19. RDFa 1.1, XHTML+RDFa 1.1 • 31.3.2011: Second Last Call Working Draft • XHTML+RDFa 1.1 je popsáno nejen DTD, ale i XML Schema • Zavádí atributy @prefix a @vocab • XHTML+RDFa 1.0 prefixy zavádí pomocí XML namespaců: <div xmlns:db="http://dbpedia.org/"> <div about="db:resource/Albert_Einstein"> ... </div> </div> • XHTML+RDFa1.1 prefixy zavádí pomocí atributu prefix: • A zavádění pomocí xmlns je deprecated • Ale některé nástroje toto ještě neumí, lze zatím psát obojí najednou <div prefix="db: http://dbpedia.org/"> <div about="db:resource/Albert_Einstein"> ... </div> </div> Jakub Klímek, Martin Nečaský: RDFa

  20. Využití mikroformátů v RDFa Microformat: <div class="haudio"> <span class="title">Start Wearing Purple</span>by <span class="contributor">Gogol Bordello</span> </div> RDFa: <div vocab="http://microformats.org/vocab#" typeof="haudio"> <span property="title">Start Wearing Purple</span> by <span property="contributor">Gogol Bordello</span> </div> Jakub Klímek, Martin Nečaský: RDFa

  21. Typické RDF vocabularies - slovníky • Dublin Core • Např. vlastnosti dokumentů (title, language, creator, date, …) • http://www.dublincore.org/ • FOAF • Friend-of-a-Friend (knows, homepage, …) • http://www.foaf-project.org/ • Orgvocabulary • Anorganization ontology • Pro skupiny a organizace (memberOf, hasMember, Site, VCard, …) • http://www.epimorphics.com/public/vocabulary/org.html • Bio vocabulary • BIO: A vocabularyforbiographicalinformation • Coronation, Death, Dismissal, Divorce, Father, Witness, Retirement, … • SKOS • SimpleKnowledgeOrganizationSystem • http://www.w3.org/2004/02/skos/ • DOAP • Descriptionof a (Software) Project • http://trac.usefulinc.com/doap • SIOC • Semantically-Interlinked Online Communities • http://sioc-project.org/ Jakub Klímek, Martin Nečaský: RDFa

  22. Typické RDF vocabularies - slovníky • biblio:  http://example.org/biblio/0.1 • dcterms:  http://purl.org/dc/terms/ • foaf:  http://xmlns.com/foaf/0.1/ • sioc:  http://rdfs.org/sioc/ns# • rdf:  http://www.w3.org/1999/02/22-rdf-syntax-ns# • rdfs:  http://www.w3.org/2000/01/rdf-schema# • owl:  http://www.w3.org/2002/07/owl# • taxo:  http://purl.org/rss/1.0/modules/taxonomy/ • xhv:  http://www.w3.org/1999/xhtml/vocab# • xsd:  http://www.w3.org/2001/XMLSchema# • cc:  http://creativecommons.org/ns# • dbp:  http://dbpedia.org/property/ • dbr:  http://dbpedia.org/resource/ • dc:  http://purl.org/dc/elements/1.1/ • ex:  http://example.org/ (Your own vocabulary) Jakub Klímek, Martin Nečaský: RDFa

  23. FOAF Core • Agent • Person • name • title • img • depiction (depicts) • familyName • givenName • knows • based_near • age • made (maker) • primaryTopic (primaryTopicOf) • Project • Organization • Group • member • Document • Image Jakub Klímek, Martin Nečaský: RDFa

  24. Orgvocabulary Jakub Klímek, Martin Nečaský: RDFa

  25. SIOC Jakub Klímek, Martin Nečaský: RDFa

  26. RDFatools • RDF Detective – doplněk pro Google Chrome • Propojení na sindice.com a sig.ma • Neumí XHTML+RDFa 1.1 prefix • je třeba přidat xmlns • Thesemantic web index • http://sindice.com • Semanticinformationmashup • http://sig.ma • W3C RDFaDistiller: • http://www.w3.org/2007/08/pyRdfa/ • RDFa Checker • http://check.rdfa.info/ Jakub Klímek, Martin Nečaský: RDFa

  27. Podpora RDFa v Drupal 7 • XHTML+RDFa 1.0 • Automaticky generuje např.: • dcterm:title • xhv:icon • rdf:type=„foaf:Document“ • content:encoded • Dá se udělat typ obsahu, který se bude vyplňovat jako formulář a výsledná stránka pak bude RDFa anotovaná Jakub Klímek, Martin Nečaský: RDFa

  28. RDFainfo • Leden 2011 – zprávy dle Yahoo! • Nejrychleji rostoucí formát pro popis dat na Webu • Používáno na více jak 430 000 000 stránkách • tj. 3,6% webových stránek. • Poslední rok narostl počet RDFa stránek o 510% Jakub Klímek, Martin Nečaský: RDFa

  29. RDFS – RDF Schema • sada pevně definovaných zdrojů s pevně definovanou sémantikou rdfs:Class, rdfs:Resource, rdfs:range, rdfs:domain, … • rezervovaný namespacerdfs • umožňuje popis tzv. metadat (data o datech) Jakub Klímek, Martin Nečaský: RDFa

  30. RDFS – RDF Schema • RDF Schema definuje následující třídy (nejsou všechny): • rdfs:Resource(třída všech zdrojů) • rdfs:Class(třída všech tříd) • rdf:Property(z rdf třída všech vlastností) • a následující vlastnosti (nejsou všechny): • rdfs:subClassOf(je podtřídou) • rdfs:range(obor hodnot vlastnosti) • rdfs:domain(definiční obor vlastnosti) Jakub Klímek, Martin Nečaský: RDFa

  31. RDFS – zdroje • každý zdroj patří do (je instancí) nějaké třídy • pokud není o zdroji známo nic bližšího, potom je vždy alespoň instancí předdefinované RDF Schema třídy rdfs:Resource • třída všech zdrojů Jakub Klímek, Martin Nečaský: RDFa

  32. RDFS – třídy • každá třída je instancí předdefinované RDF Schema třídy rdfs:Class • třída všech tříd, je instancí sama sebe • pomocí vlastnosti rdf:typemůžeme pro daný zdroj explicitně určit do které třídy patří (říkáme, že zdroj je instancí této třídynec:merdf:typefoaf:Person • tato trojice také implicitně říká, že foaf:Personje třída, čili explicitně vyjádřeno: foaf:Personrdf:typerdfs:Class Jakub Klímek, Martin Nečaský: RDFa

  33. RDFS – podtřídy • vlastnost rdfs:subClassOf říká, že množina podtřídy je podmnožinou množiny nadtřídy • z hierarchie tříd tedy plyne, že pokud nec:merdf:typefoaf:Person • potom také nec:merdf:typefoaf:Agent Jakub Klímek, Martin Nečaský: RDFa

  34. RDFS – vlastnosti • každá vlastnost je instancí předdefinované RDF třídy rdf:Property • „třída všech vlastností“ • vlastnosti jsou charakterizovány pomocí následujících RDF Schema vlastností: • rdfs:range • rdfs:domain Jakub Klímek, Martin Nečaský: RDFa

  35. RDFS – vlastnosti – obor hodnot • pomocí rdfs:range určíme, jakého typu jsou hodnoty popisované vlastnosti • objekt z trojice obsahující vlastnost v predikátu je daného typu foaf:knowsrdfs:rangefoaf:Person foaf:firstNamerdfs:rangerdfs:Literal foaf:weblogrdfs:rangefoaf:Document • z trojice nec:mefoaf:weblognec:weblog • plyne, že nec:weblogrdf:typefoaf:Document Jakub Klímek, Martin Nečaský: RDFa

  36. RDFS – vlastnosti – definiční obor • pomocí rdfs:domainurčíme typy zdrojů, které mají hodnotu vlastnosti • subjekt z trojice obsahující vlastnost v predikátu je daného typu foaf:knowsrdfs:domainfoaf:Person foaf:firstNamerdfs:domainfoaf:Person foaf:weblogrdfs:domainfoaf:Agent • z trojice nec:mefoaf:weblognec:weblog • plyne, že nec:merdf:typefoaf:Agent Jakub Klímek, Martin Nečaský: RDFa

  37. RDFS – podvlastnosti • kromě hierarchií tříd umožňuje RDF Schema také vytvářet hierarchie vlastností pomocí rdfs:subPropertyOf • býti podvlastností je tedy opět v RDF Schema pouze vlastnost zdroje, který podvlastnost reprezentuje, např. nec:goesForBeerrdfs:subPropertyOffoaf:knows Jakub Klímek, Martin Nečaský: RDFa

  38. RDFS – podvlastnosti – příklad • opět to definuje podmnožiny • z hierarchie vlastností tedy plyne, že pokud nec:menec:goesForBeereck:me • potom také nec:mefoaf:knowseck:me Jakub Klímek, Martin Nečaský: RDFa

  39. HTML vs. XHTML • HTML není rozšiřitelné • XHTML ano • Standard: XHTML+RDFa 1.0 • Blízká budoucnost: XHTML+RDFa 1.1 • 31.3.2011: Second Last Call Working Draft • RDFa v HTML by mělo fungovat taky Jakub Klímek, Martin Nečaský: RDFa

  40. RDFS a klasické modely (1/6) • první pohled: • vlastně to samé jako UML nebo E-R • popisujeme třídy, jejich atributy a vztahy mezi třídami • druhý pohled: • podstatné a zásadní rozdíly Jakub Klímek, Martin Nečaský: RDFa

  41. RDFS a klasické modely (2/6) • uvažujme následující metadata: foaf:Personrdfs:subClassOffoaf:Agent foaf:knowsrdfs:domainfoaf:Person foaf:knowsrdfs:rangefoaf:Person foaf:firstNamerdfs:domainfoaf:Person foaf:firstNamerdfs:rangerdfs:Literal Jakub Klímek, Martin Nečaský: RDFa

  42. RDFS a klasické modely (3/6) • v UML bychom metadata reprezentovali takto: Jakub Klímek, Martin Nečaský: RDFa

  43. RDFS a klasické modely (4/6) • a následující data nec:merdf:typefoaf:Agent nec:mefoaf:firstName„Martin“ nec:mefoaf:knowseck:me nec:mefoaf:knowsex:john ex:johnrdf:typeuniv:Student Jakub Klímek, Martin Nečaský: RDFa

  44. RDFS a klasické modely (5/6) • klasický pohled UML či E-R by narazil: • třída univ:Studentnení definována • zdroj eck:menemá přiřazen typ • zdroj nec:metypu foaf:Agentnemůže mít vlastnosti foaf:knows, foaf:firstName • netypovaný zdroj eck:mea zdroj ex:john typu univ:Studentnemohou být hodnotami vlastnosti foaf:knows • data tedy neodpovídají schématu foaf:Personrdfs:subClassOffoaf:Agent foaf:knowsrdfs:domainfoaf:Person foaf:knowsrdfs:rangefoaf:Person foaf:firstNamerdfs:domainfoaf:Person foaf:firstNamerdfs:rangerdfs:Literal nec:merdf:typefoaf:Agent nec:mefoaf:firstName „Martin“ nec:mefoaf:knowseck:me nec:mefoaf:knowsex:john ex:johnrdf:typeuniv:Student Jakub Klímek, Martin Nečaský: RDFa

  45. RDFS a klasické modely (6/6) • RDF Schema nechápe metadata jako striktní omezení struktury • metadata jsou pouze přídavnou informací, které používáme k dedukci dalších tvrzení (trojic) • to co nám v klasických modelech vadí, zde naopak využijeme k odvození chybějících informací univ:Studentrdf:typerdfs:Class nec:merdf:typefoaf:Person eck:merdf:typefoaf:Person ex:johnrdf:typefoaf:Person Jakub Klímek, Martin Nečaský: RDFa

  46. RDF & RDFS – výhody • výhody RDF & RDF Schema: • zdroj je chápán jako samostatná entita, kterou až dodatečně popisujeme pomocí trojic • popis můžeme kdykoliv rozšířit o vlastnosti, se kterými původní autor zdaleka nepočítal • i když nemáme kompletní popis zdroje, můžeme spoustu věcí odvodit (viz. předchozí příklad) Jakub Klímek, Martin Nečaský: RDFa

  47. RDF & RDFS – nevýhody (1/2) • nevýhody RDF & RDF Schema: • při použití musíme být opatrní, jinak může dojít ke zmatkům a dokonce i logickým sporům • pro daný zdroj může být na dvou místech zároveň zadána různá hodnota stejné vlastnosti • RDF 1: nec:menec:height „178 cm“ • RDF 2: nec:menec:height „185 c Jakub Klímek, Martin Nečaský: RDFa

  48. RDF & RDFS – nevýhody (2/2) • v důsledku nesprávného použití vlastností může dojít k logickým chybám, které však pomocí prostředků RDF Schema neodhalíme • RDF 1: foaf:knowsrdfs:domainfoaf:Person foaf:knowsrdfs:rangefoaf:Person • RDF 2: ex:javardfs:typeex:ProgLang ex:cpprdfs:typeex:ProgLang • RDF 3: nec:mefoaf:knowsex:java nec:mefoaf:knowsex:cpp • výsledek použití: ex:javardf:typefoaf:Person Jakub Klímek, Martin Nečaský: RDFa

  49. OWL – Web Ontology Language • Aktuálně OWL2 • Sémantické rozšíření RDF a RDFS • Pokročilejší konstrukty, logika • Průnik, sjednocení, doplněk, datové a objektové vlastnosti • Instance • Vše je owl:Thing, vše má jako podtřídu owl:Nothing • Open worldassumption • the closed world assumption implies that everything we don’t know is false, while the open world assumption states that everything we don’t know is undefined Jakub Klímek, Martin Nečaský: RDFa

  50. RDF/XML syntaxe <!--Part ofthe FOAF RDF Schema--> <rdfs:Classrdf:ID="Person"> <rdfs:subClassOfrdf:resource="#Agent"/> </rdfs:Class> <rdf:Propertyrdf:ID="knows"> <rdfs:domainrdf:resource="#Person"/> <rdfs:rangerdf:resource="#Person"/> </rdf:Property> ------------------------------------------- <!--Part of a FOAF document--> <foaf:Personrdf:ID="me"> <foaf:knowsrdf:resource="&eck;me"/> </foaf:Person> Jakub Klímek, Martin Nečaský: RDFa

More Related