Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Jakub Klímek, Martin Nečaský

Podobné prezentace


Prezentace na téma: "Jakub Klímek, Martin Nečaský"— Transkript prezentace:

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 a reprezentující osobu Martin Nečaský zdroj 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á republika má hlavní město Prahu stejně jako entity, i vlastnosti a vztahy jsou reprezentovány pomocí zdrojů zdroj reprezentující vlastnost je vysoký zdroj foaf:knows reprezentující vlastnost zná Jakub Klímek, Martin Nečaský: RDFa

4 Subjekt Predikát Objekt
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:me ex:height “178 cm“ nec:me foaf:knows eck:me eck:me foaf:knows nec:me pro každý zdroj reprezentující vlastnost může být explicitně specifikováno, že reprezentuje vlastnost (opět pomocí trojice), např.: foaf:knows rdf:type rdf: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 – Resource Description Framework Trojice. Jednoduchá tvrzení o datech. Subjekt, Predikát, Objekt hodnota je John Smith subjekt je URL http://www.example.org/index.html predikát je " má autora" objekt je "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 <?xml version="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"> <html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.1" xml:lang="en" lang="en"> <head> <title>Virtual Library</title> </head> <body> <p> Moved to <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 Proč prefix dc?
<div> <h2>The trouble with Bob</h2> <h3>Alice</h3> ... </div> <div prefix="dc: <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 a o tom „všichni“ ví co znamená Jakub Klímek, Martin Nečaský: RDFa

11 Příklad: slovníky <div>
<h2>The trouble with Bob</h2> <h3>Alice</h3> ... </div> <div prefix="dc: <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: <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> 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"> <img src="http://example.com/bob/photos/sunset.jpg" /> <span property="dc:title">Beautiful Sunset</span> by <span property="dc:creator">Bob</span>. </div> Jakub Klímek, Martin Nečaský: RDFa

14 Žádné about, tzn. žádné URL => _:blanknode1
Příklad: FOAF, typeof <div typeof="foaf:Person" prefix="foaf: <p property="foaf:name"> Alice Birpemswick </p> <p> <a rel="foaf:mbox" </a> Phone: <a rel="foaf:phone" href="tel: "> </div> Žádné about, tzn. žádné URL => _:blanknode1 Jakub Klímek, Martin Nečaský: RDFa

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

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

17 XHTML a RDFa atributy - přehled
Typ obsahu Význam @rel Seznam CURIE Predikáty (např. "foaf:name"), objekt je @rev Obrácené predikáty, objekt je @content Řetězec Strojově čitelná podoba obsahu (např. " T:21:00:00Z") @href URI URI objektu (např. odkaz) @src URI embedded objektu (např. obrázek) RDFa Typ obsahu Význam @about URI/SafeCURIE Subjekt (např. "http://example.org/Alice/#me") @property Seznam CURIE Predikáty, objektem je obsah elementu (text) @resource Objekt (který nemá být "klikací“) @datatype CURIE Datový typ literálu (třeba pokud text (objekt) je jméno) @typeof RDF typy subjektu @prefix Seznam Zavedení prefixů. Formát: NCName+‘:‘+‘ ‘+xs:anyURI (RDFa 1.1) @vocab URI Defaultní prefix pokud není žádný použit (RDFa 1.1)

18 RDFa – chaining (řetězení)
<div about="http://dbpedia.org/resource/Albert_Einstein"> <span property="foaf:name">Albert Einstein</span> <span property="dbp:dateOfBirth" datatype="xsd:date"> </span> <div rel="dbp:birthPlace" resource="http://dbpedia.org/resource/Germany"> <span property="dbp:conventionalLongName">Federal Republic of Germany</span> </div> Zde se objekt v resource stal subjektem pro vnořená tvrzení <div about="http://dbpedia.org/resource/Albert_Einstein"> <span rel="dbp:citizenship" resource="http://dbpedia.org/resource/Germany"/> <span rel="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 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í XHTML+RDFa 1.0 prefixy zavádí pomocí XML namespaců: <div xmlns:db="http://dbpedia.org/"> <div about="db:resource/Albert_Einstein"> ... </div> XHTML+RDFa 1.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: 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, …) FOAF Friend-of-a-Friend (knows, homepage, …) Org vocabulary An organization ontology Pro skupiny a organizace (memberOf, hasMember, Site, VCard, …) Bio vocabulary BIO: A vocabulary for biographical information Coronation, Death, Dismissal, Divorce, Father, Witness, Retirement, … SKOS Simple Knowledge Organization System DOAP Description of a (Software) Project SIOC Semantically-Interlinked Online Communities 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 Org vocabulary Jakub Klímek, Martin Nečaský: RDFa

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

26 RDFa tools 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 The semantic web index Semantic information mashup W3C RDFa Distiller: RDFa Checker 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 RDFa info Leden 2011 – zprávy dle Yahoo!
Nejrychleji rostoucí formát pro popis dat na Webu Používáno na více jak 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ý namespace rdfs 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:type můžeme pro daný zdroj explicitně určit do které třídy patří (říkáme, že zdroj je instancí této třídy nec:me rdf:type foaf:Person tato trojice také implicitně říká, že foaf:Person je třída, čili explicitně vyjádřeno: foaf:Person rdf:type rdfs: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:me rdf:type foaf:Person potom také nec:me rdf:type foaf: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:knows rdfs:range foaf:Person foaf:firstName rdfs:range rdfs:Literal foaf:weblog rdfs:range foaf:Document z trojice nec:me foaf:weblog nec:weblog plyne, že nec:weblog rdf:type foaf:Document Jakub Klímek, Martin Nečaský: RDFa

36 RDFS – vlastnosti – definiční obor
pomocí rdfs:domain určíme typy zdrojů, které mají hodnotu vlastnosti subjekt z trojice obsahující vlastnost v predikátu je daného typu foaf:knows rdfs:domain foaf:Person foaf:firstName rdfs:domain foaf:Person foaf:weblog rdfs:domain foaf:Agent z trojice nec:me foaf:weblog nec:weblog plyne, že nec:me rdf:type foaf: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:goesForBeer rdfs:subPropertyOf foaf: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:me nec:goesForBeer eck:me potom také nec:me foaf:knows eck: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 : 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:Person rdfs:subClassOf foaf:Agent foaf:knows rdfs:domain foaf:Person foaf:knows rdfs:range foaf:Person foaf:firstName rdfs:domain foaf:Person foaf:firstName rdfs:range rdfs: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:me rdf:type foaf:Agent nec:me foaf:firstName „Martin“ nec:me foaf:knows eck:me nec:me foaf:knows ex:john ex:john rdf:type univ: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:Student není definována zdroj eck:me nemá přiřazen typ zdroj nec:me typu foaf:Agent nemůže mít vlastnosti foaf:knows, foaf:firstName netypovaný zdroj eck:me a zdroj ex:john typu univ:Student nemohou být hodnotami vlastnosti foaf:knows data tedy neodpovídají schématu foaf:Person rdfs:subClassOf foaf:Agent foaf:knows rdfs:domain foaf:Person foaf:knows rdfs:range foaf:Person foaf:firstName rdfs:domain foaf:Person foaf:firstName rdfs:range rdfs:Literal nec:me rdf:type foaf:Agent nec:me foaf:firstName „Martin“ nec:me foaf:knows eck:me nec:me foaf:knows ex:john ex:john rdf:type univ: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:Student rdf:type rdfs:Class nec:me rdf:type foaf:Person eck:me rdf:type foaf:Person ex:john rdf:type foaf: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:me nec:height „178 cm“ RDF 2: nec:me nec: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:knows rdfs:domain foaf:Person foaf:knows rdfs:range foaf:Person RDF 2: ex:java rdfs:type ex:ProgLang ex:cpp rdfs:type ex:ProgLang RDF 3: nec:me foaf:knows ex:java nec:me foaf:knows ex:cpp výsledek použití: ex:java rdf:type foaf: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 world assumption 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 of the FOAF RDF Schema-->
<rdfs:Class rdf:ID="Person"> <rdfs:subClassOf rdf:resource="#Agent"/> </rdfs:Class> <rdf:Property rdf:ID="knows"> <rdfs:domain rdf:resource="#Person"/> <rdfs:range rdf:resource="#Person"/> </rdf:Property> <!--Part of a FOAF document--> <foaf:Person rdf:ID="me"> <foaf:knows rdf:resource="&eck;me"/> </foaf:Person> Jakub Klímek, Martin Nečaský: RDFa

51 Resources http://rdfa.info/ http://www.w3.org/TR/xhtml-rdfa-primer/
Jakub Klímek, Martin Nečaský: RDFa


Stáhnout ppt "Jakub Klímek, Martin Nečaský"

Podobné prezentace


Reklamy Google