Reprezentácia dát pomocou RDF

Bc. Juraj Ďurech

 

 

Slovenská technická univerzita, Fakulta informatiky a informačných technológií
Ústav informatiky a softvérového inžinierstva
Ilkovičova 3, 842 16 Bratislava, Slovenská republika
juraj.durech at gmail.com

 

Spracované podľa: Explorer's Guide To The Semantic Web [1]

 

Abstrakt: Tento dokument sa zaoberá problematikou Resource Description Framework (RDF), ktorý umožňuje uchovávanie znalosti v podobe trojíc (subjekt, predikát, objekt). RDF je jazyk na reprezentáciu informácií o zdrojoch v prostredí WWW. Opisuje jeho základné princípy, terminológiu, ďalej sa venuje spôsobom, ako RDF identifikuje svoje zdroje. Tiež rozoberá spôsoby vizualizácie RDF tvrdení a vysvetľuje základné druhy syntaxe na jeho zápis. V závere je uvedených zopár problémov, s ktorými sa pri jeho používaní dnes ešte stretávame.

 

Abstract: (in english) This document deals with the matter of the Resource Description Framework (RDF), which enables to save knowledge in the form of triples (subject, predicate object). RDF is an language to present information about resources in the WWW environment. It describes its basic principles, terminology and deals with ways RDF identifies its sources. It also focuses on techniques of visualising RDF and explains the basic sorts of his syntax. In the end, some problems with using RDF today are presented.

 

Obsah:

 

1 Úvod

    Databázy na celom svete obsahujú miliardy meta-dát a kúskov dát, od papierových katalógov až po webstránky. Dáta sú k dispozícii, ale niektoré sú uložené v presných databázových formátoch a niektoré sú k dispozícii len vo forme čitateľnej pre človeka. Na sprístupnenie všetkých týchto dát pre počítače, potrebujeme ich reprezentovať v jazyku, ktorému budú rozumieť, tiež je potrebné urobiť ich adresovateľnými cez siete ako napr. internet. Potrebujeme rôzne koncepty, slovníky a vzťahy, ktoré reprezentujú štruktúru dát. Tiež potrebujeme štandardný spôsob odkazovania sa na tieto informácie, ako URL adresa odkazuje na webstránku.

    Resource Description Framework (RDF) je W3C špecifikácia jazyka plniaceho tieto úlohy. Bol vyvinutý ako štandardný spôsob na modelovanie, opis a výmenu informácií o zdrojoch – umožňuje nám povedať prakticky hocičo o hocičom, za predpokladu, že je to presná informácia o špecifickom subjekte. Slúži tiež ako základ pre vyššie jazyky na opis ontológií.

    Na začiatok stručne predstavím základné vlastnosti RDF a terminológiu ním používanú. Ďalej uvediem, ako RDF identifikuje svoje zdroje, rozoberiem spôsoby jeho vizualizácie a dnes používanú syntax. Na záver opíšem niektoré jeho dnešné problémy.

2 Predstavenie RDF

    Na úspešné popísanie dát a metadát, RDF alebo iný podobný koncept potrebuje nasledovné schopnosti:

    Preto RDF používa veľmi jednoduchý dátový model, základom sú zdroje a rôzne tvrdenia o týchto zdrojoch. Tvrdenia majú jednoduchú vetnú štruktúru podmet – sloveso - predmet, ako napríklad „Jozef býva v Bratislave.“, Jozef je podmet, býva je sloveso a v Bratislave je predmet. Samozrejme, komplikácie vznikajú, ak sa snažíme RDF prispôsobiť praktickým aplikáciám, ale tento základný dátový model zostáva rovnaký.

3 Základná terminológia

    V RDF sa tvrdenia nazývajú aj triplety (trojice), pretože každé tvrdenie pozostáva z troch častí. Ekvivalent podmetu sa nazýva subjekt, sloveso sa nazýva predikát a predmet je nazývaný objekt. Používané sú aj iné termíny, napr. vlastnosť namiesto predikátu a hodnota namiesto objektu. Schému tripletu môžeme vidieť na obrázku 3.1.

Obr. 3.1 Schéma tripletu

    Hodnota nejakej vlastnosti môže byť jednoduchá, ako napr. číslo alebo reťazec hodnôt ako napr. meno, pričom tieto hodnoty sa nazývajú literály. Hodnotou môže byť aj iný zdroj. RDF má spôsob definovania, či má literál špeciálny typ, napr. integer alebo je to len zhluk XML dát. Literál nemôže tvoriť subjekt tripletu. Súbor RDF dát nemá žiadne špeciálne meno, niekedy je nazývaný RDF sklad, báza znalostí alebo dokonca databáza.

4 Identifikovanie zdrojov [1]

    Aby bol RDF široko použiteľný potrebuje vedieť identifikovať zdroje, ktoré opisuje a to štandardným a široko používaným spôsobom, aby sa ďalšie systémy používané na webe mohli na ne odkazovať. Staršie systémy, ako napr. konvenčné databázy tento štandard nemajú.

     Na identifikáciu zdrojov RDF používa URI (uniform resource identifier) referencie. URI môže reprezentovať istý koncept, hmatateľnú vec, ktorá nemôže byť stiahnutá alebo súbor dát, ktorý môže byť získaný zo siete.

    Hlavným problémom pri identifikácii zdrojov je ich jedinečnosť. Napríklad mená obyčajne nezvyknú byť jedinečné – na Slovensku žije veľa Jánov Novákov, ale samozrejme to nie je tá istá osoba len preto, že majú rovnaké meno. Z iného pohľadu, istý zdroj môže mať veľa pomenovaní. Preto musí byť URI spojené len s jedným zdrojom, ako sa toto dosiahne však nie je a asi ani nebude špecifikované. Jedným spôsobom je zhrnúť tieto dvojice do dokumentu, istej špecifikácie. Stále je však problém, že opis zdroja v tomto dokumente nebude dostatočný na jeho jednoznačnú identifikáciu. Samozrejme, tento problém nie je typický len pre RDF a sémantický web.

    Ďalším spôsobom na identifikáciu zdroja je tvrdenie, že je ten istý ako nejaký iný dobre známy zdroj, v RDF použitím správneho predikátu.
Je možné tiež opísať zdroj jeho vlastnosťami a vzťahmi s inými zdrojmi. Futbalový tím FC Nitra mal v sezóne 2006/2007 len jedného trénera. Ak by sme vedeli, že nejaký človek bol trénerom FC Nitra v danom čase, tak tá osoba by bola jednoznačne identifikovaná bez toho, aby sme napríklad poznali jej meno. Samozrejme, nie všetky vlastnosti a vzťahy sú vhodné na identifikáciu. Ak je totožnosť zdroja zavedená, RDF používa poznávacie URI ako jedinečný reťazec.

    Keď máme dvojice URI – zdroj uvedené v dokumente, či už ako jednoduchý text, RDF alebo v inej forme, vyvstáva otázka, kde tento dokument nájsť. RDF pre toto neposkytuje žiadny štandard, je však neformálnou praktikou, že má byť vo forme HTTP URL na získanie definujúceho dokumentu z web stránky. Tiež je potrebné zdôrazniť, že táto URL nemusí byť konkrétnym dokumentom, môže to byť ľubovoľný reťazec alebo spôsob ako tento dokument získať.

4.1 Anonymné zdroje

    RDF nepožaduje, aby každý zdroj bol identifikovaný jedinečnou URI. Zdroj bez URI je analogický k výrazom napr. „ten muž“, „žena v červenom aute“. Pri modelovaní komplexných RDF dát sa však bez nich nezaobídeme, pretože inak by sme museli vymýšľať nezmyselné identifikátory, pričom väčšina softvéru na prácu s RDF si aj tak pre ne zadefinuje vlastné interné identifikátory.

4.2 RDF a bežné databázy

    RDF model zdrojov a tripletov sa nám môže zdať veľmi odlišný od konvenčného modelu relačných databáz, ale rozdiel nie je tak veľký, ako sa zdá na prvý pohľad. V bežných databázach sú dáta organizované do tabuliek, pričom každý riadok tabuľky má rovnakú štruktúru ako iné a riadok reprezentuje určitý vzťah medzi jednotlivými položkami v riadku. V dobre navrhnutej tabuľke závisia všetky hodnoty na jednej položke nazývanej primárny kľúč (obrázok 4.2.1).

Obr. 4.2.1 Tabuľka relačnej databázy s primárnym kľúčom

    Aby sme takto usporiadané dáta premenili na triplety, musíme ich rozdeliť na čo najmenšie možné časti. Triplet môže napríklad predstavovať riadok v tabuľke s dvoma stĺpcami (obrázok 4.2.2).

Obr. 4.2.2 Tabuľka relačnej databázy rozdelená na menšie časti

    Vidíme, že každú vhodne navrhnutú tabuľku je možné prepísať do formy tripletov. Najlepšie je ako URI v RDF na identifikáciu subjektu použiť primárny kľúč, ale v niektorých prípadoch je vhodnejšie celé riadky reprezentovať ako anonymné uzly.

    Je dobré si položiť otázku, keďže vidíme, že RDF a relačné databázy sú si istým spôsobom ekvivalentné, prečo teda používať RDF? Práca s databázou bude určite rýchlejšia ako s RDF, ale za predpokladu, že dáta v nej sú regulárne, pretože v RDF regulárne byť nemusia. Tiež je možné stále pridávať triplety reprezentujúce nové informácie. Ak tieto triplety budú mať iný predikát, nebude ich možné pridať do existujúcej tabuľky. Toto konvenčnej databáze na rozdiel od RDF spôsobí problémy, čiže RDF je oproti relačnej databáze oveľa flexibilnejšie. Navyše je možné napríklad pridať tvrdenia o predikátoch, pretože pomocou RDF je možné opísať aj vlastnosti samotnej dátovej štruktúry.

5 Vizualizácia RDF použitím grafov [1]

    Na zobrazenie RDF dát je možné použiť veľa notácií, najlepšie sú orientované grafy, pričom uzly reprezentujú zdroje alebo literály a hrany znázorňujú predikáty.

Obr. 5.1 Diagram tripletu

    Diagram na obrázku 5.1 ukazuje tvrdenie o farbe topánky, je veľmi jednoduchý, ale je potrebné všimnúť si, že označenie „shoe“ je viacvýznamové, hovoríme všeobecne o topánkach alebo o nejakej špecifickej topánke? V RDF nemôžeme robiť tvrdenia o všetkých topánkach, iba o jednotlivých zdrojoch. Môžeme síce urobiť tvrdenie o triede topánok, ktoré majú spoločné vlastnosti a nazvať ich obuv, ale to je prakticky to isté ako urobiť tvrdenie o všeobecnej topánke, preto tejto topánke dáme jedinečný identifikátor a vznikne diagram na obrázku 5.2.

Obr. 5.2 Diagram tripletu s identifikovaným zdrojom

    Je konvenciou zobrazovať zdroje ako kruhy alebo ovály a literály ako obdĺžniky.

5.1 Zdroje s viacerými tvrdeniami

    Pozrime sa na diagram na obrázku 5.1.1 zobrazujúci niekoľko tvrdení o danom zdroji.

Obr. 5.1.1 RDF diagram s anonymným uzlom

    Všimnime si, že ak by predikáty "state" a "city" boli tvrdeniami priamo o zdroji, neboli by na sebe vôbec závislé, čo je aj nevýhodou v relačnej databáze, tu je to však zabezpečené anonymným uzlom. To, že tento uzol je typu adresa nám môže povedať ontológia alebo pridáme tvrdenie o type uzla. Tento typ je tiež zdrojom, preto musí byť v ovále.

5.2 Zdroje ako objekty tvrdení

    Teraz chceme urobiť tvrdenie o emailovej adrese danej osoby, pridať dátum jej vytvorenia. Radi by sme vytvorili triplet s emailovou adresou ako jeho subjektom, ale nemôžeme, pretože subjekt musí byť zdroj, nie literál. Toto obmedzenie môžeme prekonať buď použitím anonymného uzla alebo vytvorením nového zdroja, ako vidíme na obrázku 5.2.1.

Obr. 5.2.1 RDF diagram so zdrojom ako objektom tvrdenia

    V diagrame na obrázku 5.1.1 možno emailovú adresu získať ľahko priamo, ak rozumieme predikátu email, ale v diagrame na obrázku 5.2.1 je potrebné najprv nájsť zdroj typu email a v ňom nájsť hodnotu uses-address, ktoré je samotnou adresou. Aj keď sa tento úkon zdá jasný, pretože je zrejmý z diagramu a typov entít v ňom, počítač potrebuje zistiť sám z predikátov a typov objektov spôsob získania emailovej adresy, na čo je potrebné poznať pravidlá práce s týmito typmi. Toto je úlohou samotnej RDF schémy alebo ontológie, ak je nejaká k dispozícii, následné inferencie využívajú jednoduchú logiku.

6 RDF syntax

6.1 RDF/XML syntax [3]

    Je najčastejšie používanou notáciou pre zapisovanie RDF pomocou XML. Základná XML hlavička spolu s priestormi mien vyzerá nasledovne:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:people="http://www.xulplanet.com/rdf/people/">

</rdf:RDF>

    Element RDF je koreňový uzol, ktorý obklopuje všetky dáta, definovali sme dva priestory mien – základný rdf a vlastný people. Súbor ešte neobsahuje triplety. Povedzme, že chceme pridať nasledovné tvrdenie:

Subjekt: <http://www.xulplanet.com/rdf/people/Sandra>
Predikát: <http://www.xulplanet.com/rdf/people/name>
Objekt: Sandra

    Po pridaní do súboru:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:people="http://www.xulplanet.com/rdf/people/">
	<rdf:Description rdf:about="http://www.xulplanet.com/rdf/people/Sandra"
people:name="Sandra"/>

</rdf:RDF>

    Element Description sa používa na definovanie tripletu. Tento element je v rdf priestore mien. Atribút about sa používa na označenie subjektu tripletu. Pre objekt „Sandra“ mu priradíme atribút „people:name“ s hodnotou „Sandra“. Rozšírený zápis vyzerá nasledovne, môžeme pridať aj iné atribúty:

<rdf:Description rdf:about="http://www.xulplanet.com/rdf/people/Sandra">
<people:gender>female</people:gender>
<people:name>Sandra</people:name>
</rdf:Description>

6.2 N-triples syntax [4]

    V syntaxi N-triples sa každý triplet zapisuje do samostatného riadku, pričom zdroje sa vkladajú medzi znaky „<“ a „>“, literály sa uzatvárajú do úvodzoviek a každý riadok je ukončený bodkou.

<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/creator> "Dave Beckett" .
<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/creator> "Art Barstow" .
<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/publisher> <http://www.w3.org/> .

6.3 N3 syntax [5]

    Notation3 alebo N3 je RDF syntax vyvinutá s dôrazom na lepšiu čitateľnosť pre človeka. Základ je rovnaký ako pri N-triples, ale tvrdenia sú zoskupené podľa subjektu, jednotlivé tvrdenia sú oddelené bodkočiarkou a skupiny tvrdení bodkou.

@prefix p: <http://www.example.org/personal_details#> .
@prefix m: <http://www.example.org/meeting_organization#> .

<http://www.example.org/people#fred>
p:GivenName "Fred";
p:hasEmail <mailto:fred@example.com>;
m:attending <http://meetings.example.com/cal#m1> .

<http://meetings.example.com/cal#m1>
m:homePage <http://meetings.example.com/m1/hp> .

7 RDF v reálnom svete webu [1]

    V RDF však ostáva ešte niekoľko nedoriešených problémov, spomeniem niektoré z nich:

7.1 Odporujúce si tvrdenia

    Pretože prakticky môžeme vytvoriť akékoľvek tvrdenie o hocičom, ľahko sa môže stať, že vytvoríme tvrdenia, ktoré si budú odporovať. Ako tieto konflikty riešiť? Môže to byť veľmi zložité, ak budeme zvažovať spoľahlivosť zdrojov a porovnávať tvrdenia s inými informáciami.

    Tento problém však vychádza z podstaty webu ako takého. V uzavretom systéme, ktorý možno vytvoriť a následne kontrolovať je ľahké odstrániť tieto chyby. Web je však otvoreným a veľmi rozsiahlym systémom, hocijaká informácia môže byť pridaná v ľubovoľnom okamihu, bez kontroly jej významu. RDF nemá žiadne prostriedky na vylučovanie protichodných tvrdení, toto musí byť zabezpečené softvérom, ktorý RDF spracováva.

7.2 Neúplné informácie

    Ak chceme vyvodzovať závery a chýbajú nám fakty, tak môžeme vyvodiť záverov viacero, ktoré budú všetky korešpondovať s faktami, ktoré máme k dispozícii. Je pochopiteľné, že od viacerých rôznych agentov budeme požadovať rovnaké závery z rovnakých informácií. Ak vaša úverová história nie je dosiahnuteľná, tak to môže znamenať, že máte veľké úverové riziko, vaše záznamy boli zničené alebo ste si ešte nezobrali žiadny úver, bez dodatočných informácií nie je možné vyvodiť správny záver.

    Pretože web je otvorený, dynamický a veľmi rozsiahly, obsahuje veľké množstvo nekompletných informácií. Aj keď RDF je len o vytváraní tvrdení a nemá žiadny spôsob vyznačenia nekompletnej informácie, tak systémy pracujúce nad RDF nemajú štandardný spôsob, ako s danými nekompletnými informáciami pracovať.

7.3 Obmedzenia

    RDF je navrhnuté na vytváranie tvrdení o konkrétnych zdrojoch, nevie reprezentovať tvrdenia o všeobecných kategóriách, napríklad o všetkých topánkach, aj keď v ňom dokážeme vytvoriť tvrdenie o všeobecnej triede topánok z objektového hľadiska.

    Tiež nemá spôsob na vyjadrenie negatívnych tvrdení, teda nevie povedať, že nejaké tvrdenie nie je pravdivé, čo obmedzuje plné použitie logiky prvého rádu.

8 Záver

    RDF má svoje pevné miesto v novej generácii internetu - sémantickom webe, ktorý rozširuje tradičný web a umožňuje počítačom ľahšie spracovanie informácií. Je veľmi flexibilný a dokáže uchovávať aj neregulárne dáta vo forme tvrdení o konkrétnych zdrojoch, ktoré sú veľmi ľahko strojovo spracovateľné, umožňuje ľahkú výmenu týchto dát, tvorí základ pre výstavbu ontológií a rôznych funkcií sémantického webu, sprístupňuje logické operácie nad dátami a zabezpečuje uchovanie informácií o web stránkach a otvára tak nové možnosti spolupráce ľudí a počítačov.

Použitá literatúra

[1] Pasin, Thomas B. 2004. Explorer's Guide To The Semantic Web
[2] Resource Description Framework, http://www.w3.org/RDF (5.11.2007)
[3] Developer Guide - RDF/XML syntax, http://www.xulplanet.com/tutorials/mozsdk/rdfsyntax.php (5.11.2007)
[4] N-Triples, http://www.w3.org/2001/sw/RDFCore/ntriples/ (5.11.2007)
[5] A Rough Guide To Notation3, http://infomesh.net/2002/notation3/ (5.11.2007)


Znalostné systémy
Zimný semester 2007/2008