Abstrakt. Nedostatok prostriedkov na vyjadrenie sémantiky je hlavnou bariérou pre inteligentnejšie spracovanie dokumentov na WWW. Súčastný HTML štandard poskytuje prostriedky iba na naznačenie štruktúry a rozmiestnenia dokumentov, ale nie na vyjadrenie ich sémantického obsahu.
Poskytneme prehľad a analýzu tradičných, nových a vznikajúcich WWW štandardov a ukážeme ako ich môžeme použiť na reprezentáciu znalostí.
Súčasný Web obsahuje približne 300 miliónov (1998) statických objektov rôznych informačných obsahov s rôznou štruktúrou ich uloženia. V tomto rozmanitom svete často hľadáme nejakú konkrétnu informáciu resp. informáciu z úzko špecifikovanej oblasti, avšak je veľmi obtiažne jej nájdenie resp. získanie relevantných objektov k tejto informácii. Problém je o to vážnejší, že Web sa vyvíja a podporuje rýchlejšie ako predpokladalá W3C (organizácia pre štandardizáciu WWW).
Umelá inteligencia má už silnú tradíciu pri vývoji metód, nástrojov a jazykov pre reprezentáciu znalostí a spracovaní informačného obsahu. Je len prirodzené, že sú tu snahy o využitie týchto skúseností aj pri riešení načrtnutej problematiky. Kedže aplikovanie techník umelej inteligencie na dokumenty prirodzeného jazyka nie je možné, musíme sa sústrediť na informačné zdroje, v ktorých potrebujeme automaticky (na počítači) spracovávať ich sémantiku. V tomto článku poskytneme prehľad a analýzu tradičných, nových a vznikajúcich Web štandardov a ukážeme ako ich môžeme využiť na reprezentáciu strojovo spacovateľnej sémantiky z pohľadu reprezentácie znalostí.
Problematika, ktorú chceme riešiť prostriedkami umelej inteligencie, v skutočnosti obsahuje štyri typy problémov:
- Hľadanie informácie: Existujú vyhľadávacie techniky, ktoré využívajú kľúčové slová pre reprezentáciu obsahu dokumentu. Týmto spôsobom sa často dostaneme k veľkému počtu dokumentov resp. k dokumentom, ktoré obsahujú dané kľúčové slová, ale ich obsah je irelevantný k hľadanej informácii.
- Získanie informácie: V súčasnosti je potrebné, aby si človek sám prehľadával dokument a z neho vyberal relevantné informácie. Získanie informácie takýmto spôsobom je pre človeka nepohodlné a časovo náročné vzhľadom na to, že musí dokument prečítať celý resp. jeho časť.
- Podpora slabo štruktúrovaných textových zdrojov veľkého objemu a s tým súvisiaca časová náročnosť. Na udržiavanie konzistencie, správnosti a aktuálnosti informácií potrebujeme mechanizmy reprezentácie sémantiky a obmedzení, ktoré využijeme pri detekovaní anomálií.
- Automatické generovanie dokumentov: Schopnosť prispôsobiť generovanie dokumentov na strane servera podľa užívateľského profilu alebo podľa iných relevantných aspektov.
Zatiaľ hlavne prvé dve alternatívy, ktoré sú komplementárne stratégie, môžu viesť k vyriešeniu stanoveného cieľa. Prvá alternatíva môže obohatiť informačné zdroje deklaratívne, poskytnutím spôsobov reprezentácie sémantiky a jej strojového spracovania. Druhá alternatíva môže slúžiť pre vytvorenie programov (filtre, extrakčné programi atď.), ktoré získavajú (extrahujú) sémantiku zo zdrojov procedurálne. Samozrejme, že tieto dva prístupy sa môžu kombinovať (dopĺňať). Pomocou procedurálne prístupu môžeme generovať anotácie, ktoré budú vo forme pre deklaratívny prístup. My sa v tomto článku sústredíme na prvý prístup (deklaratívna reprezentácia sémantiky).
Obsah tohto článku bude organizovaný nasledovne. V druhej časti si popíšeme existujúce štandardy pre vyjadrenie sémantiky. Budeme tu analyzovať klasické prostriedky: HTML (<META>-tag, <SPAN>-tag), CSS a pokročilejšíe prostriedky: XML a RDF. V tretej časti si vysvetlíme základy ontológie a na čo slúži. Potom sa oboznámime s tým, ako ontológiu využiť a popíšeme si možno budúce štandardy: OIL, UPML a na koniec si všetko zhrnieme.
V tejto časti popíšeme a budeme porovnávať rôzne prístupy na vyjadrenie sémantiky v už existujúcich WWW štandardoch používajúcich W3C technológiu.
HTML <META>-tag
Historicky prvý pokus ako representovať sémantiku v dokumentoch na WWW bol <META> element v HTML. Jeho použitie bolo obmedzené a používal sa na vyjadrenie globálnych statických vlastností dokumentu, ktoré boli aplikované na celý dokument ako v príklade, ktorý vyjadruje, že autorom celého dokumentu je Frank:
<HEAD> <META NAME="Author" CONTENT="Frank"> </HEAD>META-tag mechanizmus môže byť rozšírený (pomocou SPAN-tag) aj na obsah dokumentu, ale jeho platnosť je stále v rámci celého dokumentu. Nasledujúci príklad ukazuje, ako obsah META-tag atribútov (Author, Location, ..) môžeme špecifikovať aj v tele HTML dokumentu. Ale takéto rozšírenie nie je štandardizované a nemusí byť podporované na strane klientských programov.
<HEAD> <META NAME="Author" CONTENT="#L0"> <META NAME="Location" CONTENT="#L1"> <META NAME="Tel" CONTENT="#L2"> <META NAME="Room" CONTENT="#L3"> </HEAD> <BODY> This page is writen by <SPAN ID="L0">Frank van Harmelen</SPAN> <SPAN ID="L1"> His tel. nr. is <SPAN ID="L2">47731</SPAN>, room nr. <SPAN ID="L3">T3.57</SPAN> </SPAN> </BODY>
HTML <SPAN>-tag
Ďaľším prvkom špecifikovanom v HTML 4.0 je tzv. <SPAN> element, ktorý môžeme použiť ako generický kontajner a tým zlepšiť štruktúru dokumentu. Použitím štandardného atribútu "CLASS" môžeme sémanticky vyjadriť predchádzajúci príklad nasledovne:
<BODY> This page is writen by <SPAN CLASS="Author">Frank van Harmelen</SPAN> <SPAN CLASS="Location"> His tel. nr. is <SPAN CLASS="Tel">47731</SPAN>, room nr. <SPAN CLASS="Room">T3.57</SPAN> </SPAN> </BODY>Aj keď popísanými prostriedkami môžeme určitým spôsobom vyjadriť sémantiku dokumentu, ale nie sú vhodné pre vyjadrenie sémantickej štruktúry dokumentu a jeho častí.
Kaskádné štýly (CSS)
Kaskádné štýly sa snažia o oddelenie štruktúry dokumentu od rozloženia dokumentu. Týmto spôsobom môžeme špecifikovať určitú vlastnosť časti dokumentu (formátovanie, informačný obsah, ..). Ukážeme si to na našom príklade:
<HEAD> <STYLE> SPAN.L0 {contents: Author} SPAN.L1 {contents: Location} SPAN.L2 {contents: Tel} SPAN.L3 {contents: Room} </STYLE> </HEAD> <BODY> This page is writen by <SPAN CLASS="L0">Frank van Harmelen</SPAN> <SPAN CLASS="L1"> His tel. nr. is <SPAN CLASS="L2">47731</SPAN>, room nr. <SPAN CLASS="L3">T3.57</SPAN> </SPAN> </BODY>
Jedným z výsledkov zavedenia sémantiky do dokumentov na WWW bolo vyvinutie XML jazyka. XML umožňuje tvorcom web dokumentov použiť vlastnú množinu označení ("tags"), ktoré môžu vyjadrovať špecifickú oblasť sémantických informácií.
<BODY> This page is writen by <AUTHOR>Frank van Harmelen</AUTHOR> <LOCATION> His tel. nr. is <TEL>47731</TEL>, room nr. <ROOM>T3.57</ROOM> </LOCATION> </BODY>V podstate XML umožňuje štruktúrovať web dokumenty vo forme pomenovaného stromu, kde pomenovania môžu byť volené tak, aby lepšie vyjadrovali sémantiku dokumentu. Pomenovaný strom pre náš príklad je nasledovný:
BODY / \ AUTHOR LOCATION / \ TEL ROOMOznačenia, ktoré sa nachádzajú v dokumente, musia byť definované v tzv. DTD ("Document Type Definition") a musia spĺňať určité reštrikčné pravidlá a gramatické formalizmy.
Tretím a zatiaľ posledným podporovaným jazykom, ktorý umožňuje vyjadrenie sémantiky je "Resource Description Framework" - RDF (v súčasnosti W3C schválené odporúčanie).
RDF poskytuje prostriedok pre pridanie sémantiky do dokumentu bez vytvárania predpokladov o jeho štruktúre. Je to XML aplikácia (sintax je definovaná v XML) prispôsobená na pridanie meta informácií do web dokumentu.
Základný dátový model RDF poskytuje tri druhy objektov: zdroje, vlastnosti a stavy
- Zdroje sú entity, ktoré vyjadrujú adresy na WWW (tzv. URI).
- Vlastnosťi sú binárne relácie medzi zdrojom a atomickou hodnotou primitívneho dátového typu v XML.
- Stavy špecifikujú hodnoty vlastností pre zdroje.
Ukážeme si to na jednoduchom príklade:
Author(http://www.cs.vu.nl/~frankh) = X Name(X) = Frank Email(X) = frankh@cs.vu.nlToto sa veľmi podobá na predikátovú logiku, kde zdroj (http://www.cs.vu.nl/~frankh) je subjekt, vlastnosť (Author) je predikát a stav je objekt. RDF dokonca umožňuje vytvárať stavy o RDF-stavoch a to poskytuje viac štruktúrované vyjadrenia sémantiky a vťahov medzi jednotlivými elementami v dokumente:
Claim(Dieter) = (Author(http://www.cs.vu.nl/~frankh) = Frank)Základný dátový model RDF môže byť rozšírený o ďalšie typy vlastností (InstanceOf, SubClassOf, Constraint, Range, Domain), ktoré poskytnú kvalitatívne lepšiu možnosť vyjadrenia sémantiky.
Skôr ako prejdeme k ďalšej časti tohto článku, musíme si vysvetliť základnú myšlienku, na ktorej sa zakladá vývoj jazykov representujúcich sémantiku. Touto mýšlienkou je Ontológia.
Ontológia bude hrať významnú rolu pri spracovaní a zdieľaní vedomostí medzi programami a WWW. Je definovaná ako representácia zdieľanej konceptualizácie (vytvárania pojmov) pre jednotlivé oblasti. Poskytuje zdieľané a jednotne chápané objekty z danej oblasti, ktoré môžeme využiť pri komunikácií naprieč aplikačnými systémami a ľuďmi. Umelá inteligencia umožňuje vyvíjať zdieľanie znalostí a ich znovupoužitie.
Ontológie typicky obsahujú popis hierarchie významných pojmov v danej oblasti a popisujú hlavný význam (vlastnosť) pre jednotlivé pojmy pomocou mechanizmu atribútov a ich hodnôt. Ďalšou možnosťou sú relácie medzi pojmami vo forme logických výrazov. Potom jednotlivé objekty z danej oblasti sú určené ako jeden alebo viac pojmov s ich príslušnym zoradením. Týmto spôsobom sa vytvára nielen ich štruktúra ale aj ich význam (vlastnosť).
Použitie ontológie si ukážeme na príklade znalostného WWW v aplikáciách pre "e-commerce", kde ontológie potrebujeme na (a) automatickú (strojovo založenú) komunikáciu medzi kupujúcim a predávajúcim, (b) vertikálnu integráciu trhu (www.verticalnet.com) a (c) znovupoužitie pojmov a ich popisov medzi rozdielnymi trhmi. Druhou možnosťou využitia je vo vyhľadávacích strojoch, v ktorých môžeme upustiť od vyhľadávania na základe kľúčových slov. Pomocou ontologických prístupov môžeme nachádzať dokumenty s rozdielnou sintaxou, ale so sémanticky podobným významom (www.hotbot.com).
Pre znalostný web je veľmi dôležité pevné prepojenie medzi popisom sémantiky informačných zdrojov a popisom sémantiky heuristicky znovupoužitia týchto informačných zdrojov. V tejto časti si ukážeme dva hlavné prístupy - jazky (OIL, UPML) pre strojovo spracovanie sémantiky a aj ich možné kombinácie.
Vo svete sú dva významnejšie projekty, ktoré sa snažia o vývoj prostriedkov na reprezentáciu znalostí na WWW:
- The On-To-Knowledge project, v ktorom sa ontológie aplikujú na elektronicky použitelné informácie z dôvodu zlešenia kvality správy znalostí vo veľkých a rozsiahlych organizáciách. Ontológie sa tu využívajú na explicitnú reprezentáciu sémantiky pološtruktúrovaných informácií. Toto dovoľuje sofistikovanejšiu automatickú podporu pre získavanie, údržbu a prístup k informáciám. V rámci tohto projektu bol vyvinutý a definovaný prostriedok Ontology Interface Layer (OIL) pre výmenu ontológií medzi heterogénnymi a distribuovanými informačnými zdrojmi.
- The IBROW project vyvíja inteligentné prostriedky, ktoré sú schopné zostavovať znovupoužiteľné komponenty a distribuovať ich v znalostných systémoch cez WWW. IBROW integruje výskum heterogénnych databáz, web technológií a prepojení so znalostnými systémami a ontológiami. Výsledkom bolo vyvinutie špecifikačného jazyka pre znovupoužiteľnosť komponentov, ktorý nazývajú UPML.
Použitie týchto dvoch jazykov sa nevylučuje a preto môžeme ich kombináciu získať nové možnosti. Uvedieme tu len ich niektoré kombinácie:
- OIL ako meta jazyk pre UPML
- OIL ako jazyk pre zápis UPML špecifikácie
- OIL ako objektový jazyk pre UPML
- UPML ako meta jazyk pre OIL
- UPML ako jazyk pre zápis ontológií v OIL
- UPML ako objektový jazyk pre OIL
V ďalšej časti si ukážeme navrhovanú základnú štruktúru pre oba vyššie spomínané jazyky.
Ontológie v OIL sú reprezentované pomocou ontology container a onology definition. Ontology container je v skutočnosti definovaný ako Dublin Core Metadata Element Set. Ontology definition sa skladá z množiny definícií: import, rule-base, class definition, slot definition a tieto sa ďalej delia na: subclass-of, subslot-of, slot-constraint atď. Sintax OIL je orientovaná na XML a RDF a môže sa použiť ako nadstavba na tieto jazyky.
Štruktúru OIL uvádzame v nasledujúcom príklade.
ontology-container title "African animals" creator "Ian Horrocks" subject "animal, food, vegetarians" format "pseudo-xml" format "pdf" source "http://www.africa.com/nature/animals.html" ... relation.hasPart "http://www.onoRus.com/animals/jungle.onto" ontology-definitions slot-def eats inverse is-eaten-by slot-def has-part inverse is-part-of properties transitive class-def animal class-def plant sub-class NOT animal ... class-def defined herbivore subclas-of animal slot-constrain eats value-type plant OR slot-constraint is-part-of plant ...
Unified Problem-Solving Method description Lenguage (UPML) je jazyk popisujúci architektúru componentov, adaptérov a konfigurácií ako môžu byť komponenty prepojené s adaptérmi ("architektural constraints"). Tento jazyk je inšpirovaný znalostnými systémamy a snaží sa o nájdenie metód riešenia (odvodenia) pre problémy ("problem-solving").
Ako pri OIL aj tu len uvádzame príklad štruktúry jazyka UPML.
ontology diagnoses pragmatics The task ontology defines diagnoses for a set of observations; Dieter Fensel; May 2, 1998; D. Fensel: Understanding, Developing and Reusing Problem-Solving Methods. Habilitation, Fackulty of Economics Science, University of Karsruhe 1998; signature elementary sorts Finding; Hypothesis constructed sorts Findings: set of Finding; Hypotheses: set of Hypothesis constants ... functions ... predicates ... axioms ... task complete and parsimonious diagnoses pragmatics The task asks for a complete and minimal diagnoses; Dieter Fensel; May 2, 1998; D. Fensel: Understanding, Developing and Reusing Problem-Solving Methods. Habilitation, Fackulty of Economics Science, University of Karsruhe 1998; ontology Diagnoses specification roles input observations; output diagnosis goal ... predictions .. assumptions ..
V článku sme sa sústredili najmä na súčasné prostriedky reprezentácie znalostí na WWW. Skúmali sme použitie META-tag a SPAM-tag v HTML dokumentoch, ktoré ako sme zistili nemajú dostatočnú schopnosť reprezentácie sémantiky. Ďalším skúmaným spôsobom boli kaskádné štýly, ale ani u týchto nebola možnosť dobrej reprezentácie a využívali sa najmä na formátovanie dokumentov. Pri všetkých troch spôsoboch sa reprezentáci znalostí uplatňovala na celý dokument a nebolo možné z týchto elementov zostaviť objekty s väčším sémantickým významom. Potom sme skúmali XML a RDF. Pri týchto dvoch prostriedkoch sme našli vhodnejšiu reprezentáciu znalostí, pričom tieto štruktúry boli v prípade XML statické. V RDF sa prejavili aj dynamické črty reprezentácie.
Súčasné systémy, ktoré sme popisovali ešte nedokážu reprezentovať semantiku tak, ako by sme si to predstavovali, a preto sa vyvíjajú nové prostriedky a spôsoby na ich reprezentáciu. Veľkú rolu v tomto zohráva ontológia a spôsoby jej reprezentácie. My sme v článku popisovali dva hlavné jazyky - OIL, UPML. Tieto dva jazyky sú ešte vo vývoji, ale zatiaľ nám dávajú nádej lepšej reprezentácie semantiky a komunikácie medzi človekom a informačnými systémami.
[1] F. Harmelen, D. Fensel: Practical knowledge representation for the Web, IJCAI'99 Workshop on Inteligent Information Integration
[2] S. Decker, D. Fensel, F. Harmelen and all: Knowledge representation on the Web,
[3] D. Fensel, F. Harmelen and I. Horrocks: OIL & UPML: Unifying framework for the knowledge Web