Sémantická komunikácia v informačných systémoch
Zo Slovenska
Úvod Sémantická komunikácia ako nový prvok v komunikácii informačných systémov (ďalej IS) má pomôcť zjednodušiť prenos informácií medzi systémami. Celkovo poskytuje vyššiu úroveň komunikácie medzi softvérovými entitami. Prvý dôležitý problém v komunikácii je definovať, aký typ dát tvorí zmysluplný obsah pre komunikované správy a akú má mať štruktúru. Syntax a sémantika môže byť väčšinou definovaná nezávisle od aplikačnej domény, takže veľká časť modelu obsahu môže byť celkom úspešne poskytovaná a kontrolovaná na úrovni strednej vrstvy (middleware). Dnešné systémy poskytujú tzv. flat systém komunikácie, kde konkrétny obsah správ tvoria doménové elementy, ba dokonca aj samotné interakčné protokoly sú definované ako doménové a neumožňujú hlbšiu spoluprácu medzi rôznymi IS. My podrobne predstavíme model komunikácie, ktorý je založený na organizačných schémach, kategóriách obsahu, vzťahov medzi nimi a interakčných protokoloch. Táto kolekcia schém sa často označuje ako ontológia. Tieto schémy sú zväčša aplikačne špecifické a veľká časť informácie sa drží v nich. To znamená, že komunikačný middleware poskytuje jazyky a nástroje pre definíciu ontológií. Technológia opísaná v tomto článku používa expresívne a štandardizované jazyky ako W3C OWL (Web Ontology Language), ktoré sa často používajú v sémantickom webe. Sémantický web Sémantický web je evolúcia World Wide Webu, v ktorom sú informácie spracovateľné počítačmi. Dovoľujú prehliadačom a iným softvérovým agentom ľahko hľadať a využívať informácie a spolupracovať pri ich tvorbe. No nielen počítačom, ale aj ľuďom. Na obrázku 1 sú znázornené jazyky a štandardy, na ktorých je postavený sémantický web.
XML poskytuje syntax pre dokumenty, ale nedefinuje sémantické obmedzenia na dokumenty. XML schéma je jazyk na určenie štruktúry a obsahu XML dokumentov. RDF je jednoduchý dátový model pre referencovanie objektov (zdrojov) a definovanie ich vzťahov. Model založený na RDF može byť vyjadrený syntaxou XML. RDF schéma definuje slovník pre popis vlastností a tried RDF zdrojov so sémantikou pre všeobecné hierarchie vlastností a tried. OWL pridáva nové slovníky na popis vlastností a tried: medzi inými vzťahy medzi triedami, kardinality, rovnosť, bohatšie typovanie vlastností, charakteristiky vlastností (napr. symetriu) a enumerované triedy. OWL jazyk poskytuje tri základné triedy, ktoré poskytujú rôzne možnosti, čo sa týka vyjadrovacej schopnosti a výpočtovej zložitosti automatizovaného odvodzovania. Ide o typy OWL Lite pre základné potreby klasifikácie hierarchie a jednoduché obmedzenia, OWL DL pre maximálnu vyjadrovaciu schopnosť pri zachovaní výpočtovej kompletnosti (všetky uzávery sú garantované ako spočítateľné). DL vychádza z popisnej logiky a OWL Full pre maximálnu vyjadrovaciu schopnosť bez vypočítateľných záruk. Rules/Queries sú popísateľné napríklad jazykom SPARQL na definovanie dotazov. Princípy sémantického webu sa začínajú používať pri ukladaní dát v moderných informačných systémoch, pretože prinášajú množstvo výhod. Hlavnou a už spomenutou výhodou je možnosť spracovania takto uložených informácií počítačmi. Ďalšou výhodou je možnosť inferovania (odvodzovania) nových faktov z už existujúcich faktov alebo dokazovanie faktov. Táto funkcionalita je poskytovaná dvoma najvyššími vrstvami sémantického webu (logic, proof). Uvedieme príklad na odvodzovaciu schopnosť, ktorá vychádza z pridaní, ktoré prináša OWL, ako je tranzitívnosť alebo symetria. Dajme tomu, že v databáze faktov sa nachádzajú informácie: autor (Karel Čapek, R.U.R) kde autor je predikát vyjadrujúci, že Karel Čapek je autorom knihy R.U.R., a jazyk je predikát vyjadrujúci, že kniha R.U.R. je napísaná v českom jazyku. Ďalej existuje pravidlo, ktoré hovorí, že ak je kniha napísaná v nejakom jazyku, potom aj autor publikácie rozpráva daným jazykom1: rozpráva(A, B) :- autor(A,X), jazyk(X,B) Teda pomocou odvozovania sme schopní získavať nové fakty. Sémantický web však nedefinuje spôsob výmeny faktov, teda mechanizmus, akým rôzne informačné systémy komunikujú. V ďalšom texte je predstavený model komunikácie inšpirovaný princípmi sémantického webu. Model sémantickej komunikácie Na účely komunikácie medzi systémami treba rozoznať vrstvy, ktoré sú v informačných systémoch priamo alebo nepriamo implementované. Každá vrstva pridáva nové obmedzenia, ktoré sú aplikované pri komunikácii. Tieto obmedzenia špecifikujú hranice interakčného priestoru, v rámci ktorého všetky následné vrstvy musia operovať. Tieto vrstvy sú znázornené na obrázku 2.
Interakčná vrstva Vonkajšia vrstva interakcie, ktorá je zodpovedná za mechanizmus presunu správ: adresovanie komunikačných entít, zabalenie obsahu a mechanizmus front správ. Dve komunikačné entity, ktoré kooperujú na tejto vrstve, sú schopné navzájom si vymieňať správy, ale nedokážu interpretovať ich obsah. Interná vrstva Najvnútornejšia vrstva predpokladá, že každá komunikačná entita obsahuje úplný model toho, ako pracujú ostatné entity, a to aj vrátane interného spracovania informácií. Dve entity, ktoré kooperujú na internej vrstve, zároveň kooperujú aj na ostatných a vlastnia abstraktný interpreter toho druhého. Takáto silná úroveň spolupráce je typická pre homogénne systémy, napríklad keď všetky prvky aplikácie majú spoločnú architektúru a sú si toho vedomé. Sémantická komunikácia a vnútorné vrstvy Sémantická komunikácia sa zaoberá vnútornými tromi vrstvami, teda vrstvením štruktúrovanejšieho modelu správ bez toho, aby interagujúce entity poznali vnútornosti toho druhého. Účelom lingvistickej vrstvy je definovať všeobecnú taxonómiu v akejkoľvek aplikačnej doméne a klasifikuje správy izolovane. Doménová vrstva definuje obmedzenia a podmienky pre schémy obsahu správ. Vlastné schémy sú aplikačne špecifické, ale podriaďujú sa množine spoločných pravidiel s ohľadom na ich definíciu. Sociálna vrstva definuje sekvencie výmeny správ za účelom štruktúrovania nie len obsahu správ, ale i celej konverzácie. To vyvoláva potrebu definovania rolí v interakciách. Nasledujúce časti popisujú každú z týchto vrstiev podrobnejšie. Lingvistická vrstva Vrstva, ktorá sa zaoberá jednoduchými správami a definuje aplikačnú taxonómiu typov správ. Táto taxonómia je je inšpirovaná myšlienkami výskumu Agentových Komunikačných Jazykov (ACLs), presnejšie špecifikáciou FIPA ACL [3]. Inšpiráciou sú aj myšlienky Speech Act Theory [1], ktoré sa aplikujú v ACL pre rozhodovanie o typoch správ a ich povolenom obsahu. Rôzne typy možných správ vychádzajú z rôznych druhov rečových aktov: požiadavka, oznámenie, sľub a pod. Rôzne typy správ na druhej strane rozhodujú o potrebnom druhu obsahu. Napríklad pre požiadavku to obyčajne vyžaduje reprezentáciu akcie, pre oznámenie je vyžadovaná reprezentácia udalosti a jej výskyt. Typ správy, ktorý je taktiež aj druhom rečového aktu, ktorý ho inšpiroval, je obvykle nazývaný performatívou. Štruktúrovaný obsah správy asociovaný s preformatívou sa nazýva výraz obsahu. Sémantická komunikácia definuje štyri performatívy, ktoré pokrývajú najdôležitejšie prípady pri komunikácii: REQUEST na vyjadrenie požiadavky na akciu, NOTIFY na vyjadrenie prenosu informácie o nastanej udalosti, ASK-IF na vyjadrenie uzavretých (áno/nie) otázok a ASK-WHICH na vyjadrenie otvorených otázok. Tieto štyri performatívy boli zvolené ako najzákladnejšie2. S ohľadom na FIPA sémantická komunikácia obsahuje dve základné performatívy a dve najbežnejšie z množiny odvodených. Ontológia komunikačného jazyka Zvolené performatívy ukladajú niektoré obmedzenia na obsah správ. Hoci sú stále nezávislé na aplikačnej doméne tieto obmedzenia modelujú všeobecnú štruktúru doménovej vrstvy, ktorá je popísaná v ďalšej časti. Správa s performatívou REQUEST je odoslaná zo zdroja v prípade, že entita požaduje vykonanie nejakej akcie. Táto akcia musí byť popísaná v obsahu správy ak má byť prenesená od požadovateľa vykonania akcie k exekútorovi akcie (prijímateľovi). Správa s performatívou NOTIFY je odoslaná v prípade, že zdroj chce informovať o niečom, čo sa stalo. V tomto prípade v obsahu správy sa musí vyskytovať nejaký druh udalosti. Uzavretá otázka vyjadrená ASK-IF performatívou vyžaduje v obsahu správy len udalosť, na ktorú je smerovaný dotaz. Naviac odpoveď na takýto áno/nie dotaz by mal byť schopný vyjadriť, či daná udalosť je pravdivá alebo nie. Otvorená otázka môže byť vyjadrená viacerými spôsobmi. Jedným zo spôsobov je použitie logických premenných podobne ako je to v jazyku Prologu. Za účelom formulovania otvorených otázok odosielateľ správy použije performatívu ASK-WHICH, ktorej obsahom je nekompletná udalosť. Odpoveď bude obsahovať väzby premenných, ktoré riešia dotaz od prijímateľa. Základné obsahové elementy Pre obsah správ je potrebné zadefinovať základné entity, nad ktorými je možné postaviť doménový model. Tieto entity sú: Action, ktorá reprezentuje akciu na vykonanie a je povolená v obsahu REQUEST správy. Event reprezentuje udalosť, ktorá sa môže vyskytnúť. Je to jediný dovolený obsah pre správy typu ASK-WHICH a jeden z možných pre typy NOTIFY a ASK-IF. ObjectDescription reprezentuje entitu vo svete, ktorá má charakteristiku nejakej vlastnosti a nie je ani akcia (nedá sa vykonať) a nie je ani udalosť (nie je vnímateľná). Tieto obsahové elementy sú zadefinované pomocou jazyka OWL (Web Ontology Language3) a definujú základnú obsahovú ontológiu. Obrázok 3 zobrazuje tieto elementy graficky aj s ich podelementami, ktoré sú požívané pri interakčných protokoloch popísaných neskôr.
Doménová vrstva Doménová vrstva musí zariadiť aplikačne špecifické informácie, ktoré si komunikačné entity obyčajne vymieňajú v správach. Ak by sme použili lingvistickú metaforu rečových aktov a ACL, doménová vrstva pokrýva predmet konverzácie. V sémantickej komunikácii je ponúknutá možnosť definovania konverzačných tém a taktiež štruktúrovať koncepty v rámci ich vzťahov. Štruktúrovaná konverzačná téma sa nazýva doménová ontológia alebo jednoducho ontológia. Pre definovanie doménovej ontológie bol zvolený jazyk OWL (Ontology Web Language) – otvorený štandard doporučený W3C4. Takáto ontológia rozširuje doménovo nezávislú komunikačnú ontológiu s troma základnými entitami: doménové akcie, ktoré sú definované ako podtypy akcie (Action) z komunikačnej ontológie, doménové udalosti definované ako podtypy udalosti (Event) a doménové popisy objektov definované ako podtypy popisu objektov (Object Description) v komunikačnej ontológii. Keďže aj komunikačná ontológia je definovaná v jazyku OWL referencie z doménovej ontológie sú presne dané. Dôležitosť doménového modelu[4] vystupuje do popredia v posledných rokoch ako prístup doménového modelovania5. Doménový model v objektovo orientovanej technológii je tvorený množinou tried, ktoré spolu pokrývajú správanie skutočných entít, o ktorých je daná aplikácia. Myšlienka doménového modelu vychádza hlboko zo základov objektovej orientácie v simulácii. Doménový model popisuje čo aplikácia robí a doménová ontológia popisuje o čom je komunikácia. Doménová ontológia pokrýva interakčnú perspektívu nad doménovým modelom. Sociálna vrstva Sociálna vrstva spája viacero správ za účelom vybudovania ucelenej konverzácie. Toto spojenie za nazýva interakčným protokolom. Je to šablóna komunikácie popisujúca medzi inými: role komunikačných entít, sekvenciu povolených performatív pri výmene správ, globálne obmedzenia a podmienky ako sú napríklad časový limit (timeout) pre ukončenie protokolu. V informačných systémoch (či už knižničných alebo systémoch ľubovoľnej domémy) slúžia interakčné protokoly ako definície sekvencií pri výmene správ. Komunikácia medzi informačnými systémami má tiež charakter konverzácie a ptreto je potrebné zadefinovať také konverzácie, ktoré pokrývajú základné potreby pri komunikácii. Identifikované boli tieto interakcie:
V nasledujúcich odstavcoch sú tieto interakcie popísané detailnejšie. Požiadanie o vykonanie akcie Prvou popísanou interakciou je žiadosť o vykonanie akcie. Táto interakcie je najzákladnejšia a je to priama aplikácia vyvolania príkazu. Hlavný rozdiel oproti klasickému objektovo orientovanému prístupu je, že okrem úspešného alebo neúspešného vykonania umožňuje aj odmietnutie vykonania akcia podľa autonómneho rozhodnutia prijímateľa požiadavky. V tomto scenáre je iniciátor, ktorý vyžaduje vykonanie akcie a vykonávateľ, ktorý je schopný vykonania akcie. Sekvenčný diagram vyjadrujúci interakciu je znázornený na obrázku 4.
Notifikácia udalosti Druhá interakcia popisuje oznámenie udalosti. Tento typ interakcie vychádza z myšlienky udalostne orientovaných systémov a architektúry implicitnej invokácie [5]. Interakcia oznámenia udalosti má niekoľko rozdielov oproti požiadavke na vykonanie akcie. Komunikácia v udalostne založených systémoch má tieto vlastnosti: je jednosmerná – je tu jasná asymetria v zúčastnených roliach: iniciátor jedná ako zdroj udalosti a neočakáva výsledok od prijímateľa. Je nepotvrdzovaná – okrem toho, že zdroj neočakáva žiadny výsledok nestará sa ani o to, či udalosť bola doručená a či sa s ňou niečo stalo. A je to komunikácia jeden ku mnohým, čo znamená že notifikácia má jeden zdroj, ale všeobecne môže byť doručená ľubovoľnému množstvu prijímateľov.
Kladenie dotazov Táto dotazová interakcia je myslená na účely dotazovania sa informácii. Podľa normalizácii v teórii rečových aktov, ktoré sú inšpiráciou, dotaz je v podstate žiadosť o informáciu. Toto sá dá modelovať ako rečový akt REQUEST, ktorého argument nie je akcia, ale iný rečový akt, pretože všetky performatívy sú akcie samé o sebe a môžu byť dotazované. Toto je v súlade so základnou myšlienkou teórie rečových aktov: komunikačné akty sú akcie prenášané jazykom. Všeobecný formát dotazu potom je: “Ja ťa ŽIADAM o poskytnutie informácie, čo chýba v tejto správe S”. V uzavretých otázkach, teda s performatívou ASK-IF, dotazovateľ úplne určil kus informácie pokiaľ ide o štruktúru a hodnotu a ako odpoveď si želá vedieť, či daná informácia je pravdivá alebo nie (true/false).
V otvorených otázkach s performatívou ASK-WHICH, dotazovateľ má štruktúrovanú šablónu s potrebnou informáciou, ale má jeden alebo viacero neznámych častí, ktoré môžu byť jednoduché hodnoty alebo aj zložité štruktúry. Dotazovateľ chce poznať všetky známe doplnenia, ktoré sú pre túto informáciu pravdivé (true). Štruktúra otvorených otázok je podobná SQL [2] dotazom, kde “SELECT … FROM … WHERE …” je v šablóna a výsledkom je množina hodnôt, pre ktoré je daný výraz pravdivý.
Prínos sémantickej komunikácie Hlavný prínos spočíva v použití viacvrstvového komunikačného modelu. Systémy komunikujúce v takomto modely sú vzájomne tak kompatibilné, koľko vrstiev majú spoločných. Na rozdiel od často používaných komunikačných systémov (RMI, IIOP, …), ktoré používajú takzvaný “flat” systém pri komunikácii, teda buď si všetky strany komunikácie rozumejú úplne alebo vôbec, systém sémantickej komunikácie umožňuje jednotlivých elementom v informačnom systéme rozumieť komunikácii aspoň z časti aj v prípade, kedy nie je úplne známy obsah. Ako analógiu na vysvetlenie uvediem príklad z lekárskeho prostredia, kedy pacient sediaci v čakárni počuje dvoch lekárov ako sa zhovárajú o diagnóze. Pacient pravdepodobne nepozná úplný význam slov, ktoré používajú no aj napriek tomu je schopný identifikovať, či sa jeden lekár toho druhého niečo pýta, či dostal odpoveď na otázku alebo nedostal. Teda pacient a lekári majú spoločný komunikačný model len po úroveň lingvistickej vrstvy. Použitie takejto komunikácie medzi informačnými systémami prináša množstvo výhod. Napríklad pri dohľadových systémoch, ktoré budú aj bez znalosti doménovej ontológie schopné rozoznať prípady, kedy sa nejaký element v systéme dožaduje vykonania akcie, no nikdy nedostane kladnú odpoveď, čo môže znamenať poruchu a dohľadový prvok môže zareagovať ešte skôr ako je reakcia vynútená chybným elementom. Inou výhodou použitia sémantickej komunikácie je ak systémy nemajú spoločný doménový model. Teda prijímateľ správy typu REQUEST je schopný túto správu prijať a identifikovať, že odosielateľ správy žiada vykonanie akcie. Prijímateľ nedokáže z obsahu správy určiť o akú akciu sa jedná, ale stále je schopný odpovedať odosielateľovi, že danú akciu nevykoná, alebo delegovať vykonanie akcie ďalej. Použitie Popísaný systém komunikácie bol implementovaný v multiagentovej platforme LS/TS [6]6 ako modul SemCom. Umožňuje elementom komunikácie (agentom) komunikovať s použitím sémantickej komunikácie. V systéme je zadefinovaná základná ontológia a typ správ s performatívami tak ako je to popísané v tomto článku.
Použitá literatúra [1] Austin, J.: How to Do Things With Words (William James Lectures). Harvard University Press, September 1975. [2] Chamberlin, Donald D. – Boyce, Raymond F.: Sequel: A structured english query language. In FIDET ’74 : Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control, pages 249–264, New York, NY, USA, 1974. ACM Press. [3] FIPA. FIPA Communicative Act Library. FIPA, 2001. [4] Fowler, Martin: Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc. : Boston, MA, USA, 2002. [5] Garlan, David – Shaw, Mary: An introduction to software architecture. In V. Ambriola and G. Tortora. Editors, Advances in Software Engineering and Knowledge Engineering, pages 1–39 : Singapore, 1993. World Scientific Publishing Company. [6] Rimassa, Giovanni – Greenwood, Dominic – Kernland, Martin: A middleware to engineer autonomic systems and applications. In Proceedings Net.ObjectDays. Germany, 2006. Net.ObjectDays.
Ing. Igor Mihálik – Giovanni Rimassa, PhD.
1 Pre zjednodušenie predpokladajme, že nejde o preklad knihy, ale o originál. 2 FIPA ACL definuje 22 rôznych performatív, no sémantika je založená len na dvoch základných: REQUEST a INFORM 3 http://www.w3.org/TR/owl-ref/ 4 World Wide Web Consorcium 5 http://domaindrivendesign.org 6 Living Systems Technology Suite, http://www.whitestein.com/pages/solutions/ls_ts.html |