V předchozích článcích Značkovací jazyky a XML1 jsme se snažili velice stručně popsat výhody zpracování údajů pomocí aplikace značkovacích jazyků, zvláště pak XML. V tomto článku se zaměříme na stručný popis nástroje, který umožní výhodně popisovat metadata zpracovávaných dat a současně využívá předností značkovacího jazyka XML. Při popisu tohoto nástroje - RDF (Resource Description Framework) se opíráme o doporučení konsorcia W3C, které deklarace tohoto nástroje spravuje a poskytuje k volnému užití, podobně jako deklaraci jazyka XML.
Prakticky pro veškerou činnost aplikací potřebujeme data. Tato data můžeme zpracovávat jak ručně tak automaticky, ale vždy musíme v rámci konkrétního úkolu zpracovávat ta vhodná a správná data. Často pracujeme na úkolu, pro který máme zhruba vhodná data. Navíc ani nevíme, jak moc zhruba jsou tato data vhodná. Jednou z výhodných cest jak řešit tuto situaci je opatření dat popisem, který k jednotlivým datovým instancím připojí další údaje, popisující jejich vlastnosti. Tyto rozšiřující popisy nazveme metadaty. Metadata jsou tedy data, která nepopisují objekty reálného světa ale popisují datové instance. Příkladem takových rozšiřujících údajů jsou například údaje o datu a času vzniku datové instance, autor instance, autorita, která instanci verifikovala, předchozí a případně i zamýšlené zpracování konkrétní entity nebo například explicitní definice přístupových práv. Za metadata je možno považovat i velikost a datum vzniku textového souboru. Podobně přípona názvu souboru rovněž poskytuje informaci o povaze souboru.
Lze dokonce formulovat názor, že data bez metadat, která popisují jejich vlastnosti, nemá smysl zpracovávat. Nevíme například odkud se vzala ani jak byla předzpracována.
V dalším textu se budeme zabývat pouze metadaty na logické úrovni. Nebudeme se zabývat potřebami konkrétní implementace nebo požadovaného výkonu aplikací. Vzhledem k tomu, že metadata jsou využívána v širokém spektru aplikačních domén, budeme předpokládat, že sémantická úroveň popisu dat je implicitně daná. Nebudeme zde tedy diskutovat jaké vlastnosti budeme u dat popisovat, ale jakým způsobem je budeme popisovat.
S pojmem metadata je často spojován pojem interoperabilita. Podobně jako pojem metadata i pojem interoperabilita budeme v tomto textu chápat spíše intuitivně: jako schopnost aplikací spolupracovat na řešení daného úkolu například sdílením dat nebo jako schopnost zpracovat data produkovaná předchozí aplikací.
Schopnost aplikací interpretovat data správným způsobem, což je důležitý předpoklad spolupráce aplikací, je výhodné založit na explicitním formalizovaném popisu vlastností zpracovávaných dat, na metadatech. Právě požadovaná míra interoperability (způsob spolupráce, jednotlivé spolupracující aplikace, požadavek na možnost čitelnosti člověkem, ...) ovlivňují strukturu a šíři metadatového popisu. Toto ovlivnění je jednak na úrovni sémantické tj. které vlastnosti dat budou metadata vůbec popisovat, jednak na úrovní logické tj. jakou strukturu budou metadat mít (schéma metadat).
Popis dat pomocí metadat je vhodnou technikou, která umožní zpracovávat i velice komplikované datové struktury a současně umožní jejich sdílení několika aplikacemi, případně popis dat zasílaných ke zpracování spolupracující aplikací. Nástroj2, který by měl zajistit deklaraci metadat, by měl mít následující vlastnosti:
RDF je možno uplatnit takřka ve všech případech, kdy budujeme metadatový popis zpracovávaných dat. Pokud budujeme metadata, která budou sdílena s aplikacemi třetích stran, pak je aplikace RDF ještě výhodnější a to z důvodu existence publikovaných a volně dostupných doporučení, která definují jednoznačně základní elementy, ze kterých je poté možno deklarovat metadatové struktury vyhovující konkrétní aplikační doméně.
RDF je nezávislá na platformě, pro kterou je aplikace vyvíjena. Dokonce jednotlivé aplikace mohou pracovat na různých platformách a sdílet metadata. Tato nezávislost je zajištěna užitím XML jako jazyka, ve kterém je RDF deklarováno.
Hlavní pole působnosti pro RDF ale v současné době spatřujeme při popisu zdrojů na webu. V tomto prostředí jsou zdroje nejrůznějších formátů a přesto je třeba tyto zdroje jednotně zpracovávat bez ohledu na formát zdroje. Pokud nás budou zajímat například zdroje týkající se Národního divadla, pak lze očekávat zdroje v podobě textů, fotografií, hudebních nahrávek, zpravodajských šotů, filmů, ...a je velice výhodné, pokud lze do určité míry všechny tyto zdroje zpracovávat jednotným způsobem (stáří zdroje, autor, typ zdroje, ...).
V předchozích odstavcích jsme zdůraznili vazbu mezi RDF a XML. Tyto dva nástroje se navzájem velice silně podporují, ale metadatový popis dat založený na RDF lze bez zjednodušení vyjádřit i jinými prostředky než je XML. Lze dokonce předpokládat, že některé ze zmíněných prostředků budou mít v některých případech vyšší výkon, například RDF lze implementovat jako tabulky relační databáze. Na druhé straně bychom se tak připravili o otevřenost systémů založených na XML. Vzhledem k předpokladu, že XML by se mohlo stát standardem pro předávání dat (metadat) mezi jednotlivými aplikacemi je oprávněný i předpoklad poměrně velké interoperability popisů založených na RDF.
Doporučení RDF konsorcia W3C popisují RDF pomocí syntaxe jazyka XML. RDF je zde představeno jako aplikace XML a jako taková využívá konkrétní implementace XML na konkrétní platformě. Implementace XML tvoří prostředí, které stírá rozdíly mezi jednotlivými platformami a snímá z RDF nutnost řešit například otázky interpretace znaků národních abeced, ...
Shrňme některé vlastnosti RDF:
RDF je pojímán nejen jako nástroj pro popis vlastností dat, ale obecněji jako nástroj pro popis zdrojů. Zdrojem je míněn jakýkoli objekt, kterému lze přiřadit vlastnost. Zdrojem je tedy například věta v textu identifikovaná pořadovým číslem věty, stránka na webu identifikovaná svým URL, případně osoba identifikovaná třeba číslem zaměstnance.
Popis zdroje je vyjádřen vlastností, jejíž význam je určen hodnotou
vlastnosti. Definujeme-li vlastnost autor
,
pak je možné, že hodnotou této vlastnosti bude například
J. Vochozka
.
Popis v RDF je založen na definici binární relace (autor
), která
pro zdroj (text
) přiřadí hodnotu (J. Vochozka
).
Relace může přiřadit zdroji jako hodnotu jiný zdroj, který v této relaci hraje roli hodnoty, ale v jiné relaci hraje roli zdroje. Jeden zdroj může mít více relací (vlastností).
Pomocí syntaxe RDF lze velice jednoduše popsat například tento text. (Pro tento i všechny další příklady užíváme syntaxi doporučenou konsorciem W3C.)
<rdf:RDF> <rdf:Description about="http://www.ics. muni.cz/zpravodaj/.../RDF"> <s:Creator>J. Vochozka</s:Creator> </rdf:Description> <rdf:RDF>
V tomto příkladu prefix rdf
ve jménech jednotlivých prvků
identifikuje ty prvky, které jsou deklarovány v rámci
nástroje RDF. Na základě stručného přehledu syntaxe a sémantiky v předchozím článku je již zřejmé, že RDF je
formálně deklarováno jako namespace (jmenný prostor) XML. Tato konstrukce umožní začlenění prvků
vyjádřených pomocí XML i z jiných namespace. V tomto příkladu užíváme
namespace s
, kde je definován
například prvek Creator
. Podobně je možno při budování metadatového
popisu zdroje užít (znovu použít) XML
namespace budované v rámci konkrétní aplikační domény.
Uvedený příklad lze rozšířit o další údaje
<rdf:RDF> <rdf:Description about="http://www.ics. muni.cz/zpravodaj/.../RDF"> <s:Creator>J. Vochozka</s:Creator> <s:Publisher>UVT</s:Publisher> <s:Title>RDF</s:Title> <s:Date>24.3.2001</s:Date> </rdf:Description> </rdf:RDF>
Podobně jako namespace s
, lze užít i velice propracovaných namespace
jako je například namespace DC, který
deklaruje prvky potřebné pro popis dokumentů pomocí Dublin Core.
RDF pochopitelně umožňuje popsat daleko složitější struktury než je pouhé zapouzdření několika prvků. Jako příklad složitějších struktur zde uvedeme konstrukci kontejnerů (containers). Kontejnery mohou obsahovat prvky deklarované v různých namespaces. Kontejnery jsou zde definovány jako prvky tří základních typů:
rdf:Bag
rdf:Seq
rdf:Alt
Jako příklad užití zde uvedeme popis časopisu, který chápeme jako uspořádaný seznam článků:
<rdf:RDF> <rdf:Description about="http://www.ics. muni.cz/zpravodaj/"> <s:Publisher>UVT</s:Publisher> <s:Date>24.3.2001</s:Date> <s:Articles> <rdf:Seq> <rdf:li resource="http://www. .../Článek1"> <rdf:li resource="http://www. .../Článek2"> <rdf:li resource="http://www. .../Článek3"> ... </rdf:Seq> </s:Articles> </rdf:Description> </rdf:RDF>
Deklarovali jsme prvek Articles
(z namespaces) a v rámci tohoto
prvku jsem deklarovali posloupnost, která jako
své prvky obsahuje zdroje, které popisují jednotlivé články konkrétního čísla
Zpravodaje.
Na této úrovni popisu ale nepopisujme strukturu
jednotlivých článků.
Aplikace, která pracuje s metadaty popisovanými pomocí RDF, načítá a
zpracovává metadata podobně jako
jakákoli data zapsaná v XML syntaxi. Efektivnímu zpracování výrazně napomáhají prvky, které jsou deklarovány
v rámci RDF. Například identifikace popisovaného zdroje, explicitní
deklarace vlastností a konečně i hodnot těchto
vlastností umožňují efektivně popsat data.
Pokud aplikace například zpracovává
identifikaci autora konkrétního textu, pak tento údaj jednoznačně najde
v jednom konkrétním prvku <s:Creator>
,
který je vnořen v prvku <rdf:Description>
odpovídajícímu konkrétnímu
zdroji (textu).
V tomto textu není možno zachytit strukturu RDF v celé její šíři. Přesto doufáme, že se podařilo alespoň náznakem ukázat, že užití metadatových popisů při práci s daty, zvláště pokud vyžadujeme spolupráci několika aplikací, je velice výhodné a to jak pro uživatele tak pro administrátora i vývojáře aplikace. Jako vhodný nástroj pro zachycení metadatového popisu jsme zde krátce představili RDF. Pokud budujeme datovou základnu aplikací na značkovacím jazyku, nebo přímo na XML, pak je volba RDF jako nástroje pro metadatový popis velice vhodná.
1 | J. Vochozka.
Značkovací jazyky a XML. Zpravodaj ÚVT MU.
ISSN 1212-0901. 2000, roč. 11, č. 2 a 3.
... zpět do textu |
2 | Nástrojem zde rozumíme jasně deklarovaný
systém, který je budován pro potřeby deklarace metadat a jako takový je ho
možno použít. Nástrojem zde nerozumíme konkrétní SW aplikaci, která je
dostupná ať už ve formě zdrojového kódu nebo ve spustitelném tvaru.
... zpět do textu |