Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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 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" " <html xmlns=" version="XHTML+RDFa 1.1" xml:lang="en" lang="en"> <head> <title>Virtual Library</title> </head> <body> <p> Moved to <a href=" </p> </body> </html> Jakub Klímek, Martin Nečaský: RDFa
9
Příklad All content on this site is licensed under <a href=" a Creative Commons License </a> All content on this site is licensed under <a rel="license" href=" 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=" <img src=" /> <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=" Bob </a> </li> href=" Eve </ul> </div> Jakub Klímek, Martin Nečaský: RDFa
16
URI vs. CURIE vs. SafeCURIE
URI – Uniform Resource Identifier <div about=" 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ř. " @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=" <span property="foaf:name">Albert Einstein</span> <span property="dbp:dateOfBirth" datatype="xsd:date"> </span> <div rel="dbp:birthPlace" resource=" <span property="dbp:conventionalLongName">Federal Republic of Germany</span> </div> Zde se objekt v resource stal subjektem pro vnořená tvrzení <div about=" <span rel="dbp:citizenship" resource=" <span rel="dbp:citizenship" resource=" </div> <div about=" <div rel="dbp:citizenship"> <span about=" <span about=" </div> <div about=" rel="dbp:citizenship"> <span about=" <span about=" </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=" <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=" 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: dcterms: foaf: sioc: rdf: rdfs: owl: taxo: xhv: xsd: cc: dbp: dbr: dc: ex: 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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.