270 likes | 411 Views
RDF a RQL. Roman Krejčík. RDF a RQL. RDF – Resource Description Framework Ja z y k pro ukládání informací v XML RDF Schema RQL – RDF Query Language Dotazová n í nad RDF dokumenty. RDF. XML dokument Standardizován W3C Formát pro strojové čtení Ukládání webových zdrojů
E N D
RDF a RQL Roman Krejčík
RDF a RQL • RDF – Resource Description Framework • Jazyk pro ukládání informací v XML • RDF Schema • RQL – RDF Query Language • Dotazování nad RDF dokumenty
RDF • XML dokument • Standardizován W3C • Formát pro strojové čtení • Ukládání webových zdrojů • URI pro identifikaci zdrojů
Základní pojmy • Zdroj • Identifikován URI • Může mít přiřazené vlastnosti • Vlastnost • Má hodnotu nějakého typu • Můze být odkazem na zdroj nebo prim. typ • RDF definuje základní primitivní typy
Syntaxe RDF • XML dokument • Kořenový element <RDF> • Každý zdroj popsán tagem <Description> • Namespace pro RDF značky http://www.w3.org/1999/02/22-rdf-syntax-ns# • Popis zdroje - vlastní namespace a struktura
Příklad RDF <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://www.recshop.fake/cd"> <rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque"> <cd:artist>Bob Dylan</cd:artist> <cd:country>USA</cd:country> <cd:company>Columbia</cd:company> <cd:price>10.90</cd:price> <cd:year>1985</cd:year> </rdf:Description> </rdf:RDF>
Odkazy na zdroje • Vlastnosti se mohou odkazovat na zdroje <rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque"<cd:artistrdf:resource="http://www.recshop.fake/artists/dylan"/> <cd:country>USA</cd:country> <cd:company>Columbia</cd:company> <cd:price>10.90</cd:price> <cd:year>1985</cd:year> </rdf:Description>
Kontejnerové elementy • Vlastnosti mohou být složitější struktury • Reprezentace více prvků • Množina – element Bag • Sekvence – element Seq • Alternativy – element Alt • Jednotlivé položky <rdf:li>…</rdf:li>
Kontejnerové elementy • Bag – neuspořádaná množina • Seq – prvky jsou indexované <cd:artist> <rdf:Bag> <rdf:li>John</rdf:li> <rdf:li>Paul</rdf:li> <rdf:li>Ringo</rdf:li> </rdf:Bag> </cd:artist>
RDF Schema (RDFS) • Rozšíření RDF • Třídy pro jednotlivé zdroje • Zavedení dědičnosti tříd • Pouze framework, nedefinuje žádné třídy, jen způsob jejich vytváření
RDFS • Třída nedefinuje objekt. Instancí třídý je pouze bezstavový zdroj reprezentovaný URI • Jeden zdroj může být instancí libovolných tříd • Vlastnosti mohou být v rámci dědičnost specializovány
Syntaxe RDFS • Součástí RDF dokumentu • Namespace http://www.w3.org/2000/01/rdf-schema# • Definice třídy <rdfs:Class rdf:ID=“…”> • Dědičnost <rdfs:subClassOf rdf:resource=“…”>
Příklad RDFS – třídy <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > <rdfs:Class rdf:ID="Artist" /> <rdfs:Class rdf:ID="Painter"> <rdfs:subClassOf rdf:resource="#Artist"/> </rdfs:Class> </rdf:RDF>
Popis RDF vlastností • Omezení vlastnosti na třídu • Doména vlastnosti • Značka <rdfs:domain rdf:resource=“…” /> • Omezení hodnoty vlastnosti • Rozsah vlastnosti • Značka <rdfs:range rdf:resource=“…” /> • Specializace vlastnosti • Značka <rdfs:subPropertyOf rdf:resource=“…”/>
Příklad RDFS - vlastnosti <rdfs:Property rdf:ID="creates"> <rdfs:domain rdf:resource="#Artist" /> <rdfs:range rdf:resource="#Artifact" /> </rdfs:Property> <rdfs:Property rdf:ID="paints"> <rdfs:domain rdf:resource="#Painter" /> <rdfs:range rdf:resource="#Painting" /> <rdfs:subPropertyOf rdf:resource="creates" /> </rdfs:Property> <rdfs:Property rdf:ID="name"> <rdfs:domain rdf:resource="#Artist" /> <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> </rdfs:Property>
RQL • RDF Query Language • Dotazování se nad RDFdokumentem • Kombinované dotazy na schéma a data • Není standardem
Jednoduché dotazy na schéma Class– pro všechny třídy Property– pro všechny vlastnosti subClassOf(Artist) – získání všech podtříd dané třídy subClassOf^(Artist) – pouze přímí potomci
Jednoduché dotazy na data Artist – všechny instance dané třídy včetně potomků ^Artist – pouze přímé instance dané třídy creates – všechny vlastností daného typu, vrací dva sloupce (zdroj a hodnotu vlastnosti)
Operátory • Standardní operátory nad množinami intersect, in, count • Relační operátory pro třídy a vlastnosti • Porovnání v rámci dědičnosti • Artist > Painter true • creates < paints false • Běžné relační operátory pro prim. typy
select .. from .. where • Výběr dat podle podmínky • Syntaxe select proměnné from třídy nebo vlastnost where podmínka • Proměnné mohou reprezentovat zdroje, vlastnosti, jejich hodnoty i třídy
Operátor {} • Proměnné uzavřené v { } • Syntaxe pro třídu Artist{X} • Syntaxe pro vlastnost {X}creates{Y} Př: select X, Y from {X}creates{Y}
Operátor . • Řetězení vlastností a tříd pomocí . select X,Y from Artist{X}.creates{Y} • Join pomocí where podmínky select X,Y, R from {X}creates{Y}, {R}name{S} where X = R
Omezení třídy proměnné • Konstrukce {X:třída} select X from {X:Painter}creates{Y} • Omezení proměnné na třídu – prefix $ select X,Y from {X:$Z}creates{Y} where $Z <= Painter
Další omezení proměnné • Omezení proměnné na vlastnost • operátor @ select X,Y from {X:Artist}@P{Y} • Omezení proměnné na třídu nebo typ • operátor $$ • Kromě třídy zdroje může být např. String
Další možnosti • Vnořené selecty • Operátory pro vlastnosti • range(@P) • domain(@P) • Operátor like • * zastupuje libovolné znaky
Využití RDF • Webové portály a vyhledávače • Elektronické knihovny • E-obchody