KAPITOLA 11.: SWRL PRAVIDLA

SWRL pravidla - teorie

Krátce o JESSu

Vztahy mezi Protégé a JESSem

Jak funguje odvozování?

Omezení SWRL a standard

Tvorba a využívání SWRL pravidel

SWRL pravidla - praxe (ontologie Filmografie)

Tvorba prvního pravidla a jeho spuštění

Podoba dalších pravidel z ontologie Filmografie

Vestavěné predikáty

Import ontologie



Teoretický úvod

SWRL (Semantic Web Rule Language) je pravidlovým jazykem, který se používá pro potřeby sémantického webu. Základem je ontologie, kterou obohacuje o nové (skryté) znalosti, které jsme v ní přímo nereprezentovali. Pravidlo je základním prvkem SWRL, které dokáže zviditelnit implicitní znalosti obsažené v ontologii. SWRL je nadstavbou jazyka pro tvorbu webových ontologií - OWL, resp. jeho verze OWL-Lite, OWL-DL a jazyka DatalogRuleML (OWL-Full nepodporuje). Je rozšířením OWL v tom slova smyslu, že mu dodává možnost využívat pravidla.

Pravidlo v SWRL je tvořeno podmínkovou částí (tělo, antecedent) a usuzovací částí (hlava, konzekvent), které jsou od sebe oddělené symbolem šipky ->, která značí usuzování. Obě části obsahují různé podmínky (atomy), které oddělujeme logickou spojkou AND - v SWRL se jedná o symbol stříšky ∧. Podmínky mohou obsahovat názvy tříd, vlastností, jedinců a různé parametry. Parametrem je např. proměnná - v SWRL značená symbolem otazníku ? nebo řetězcová hodnota. Dotazem chceme např. odvodit, že film, který je dobrodružného žánru spadá do kategorie dobrodružných filmů, viz. obrázek níže.


SWRL pravidlo

Obrázek: SWRL pravidlo

Prostředí Protégé nabízí plugin SWRLTab s jehož pomocí lze tvořit pravidla v SWRL jazyce. SWRLTab je tvořen řadou komponent, zmíníme ty základní:

SWRL Tab plugin s pomocí SWRL Editoru umožňuje tvořit pravidla, ale bez jejich spouštění. K tomu musíme mít nějaký pravidlový stroj (engine). V současné době není na trhu pravidlový stroj, který by byl přímo navržený pro používání SWRL pravidel snad kromě stroje s názvem HOOLET. Nejčastěji používaným je JESS, který je napsán v jazyce Java a umožňuje začlenit odvozovací funkcionalitu do javovských aplikací.

Krátce o systému JESS

JESS je knihovnou a skriptovacím prostředím napsaným v Javě, což je vhodné ve spojení s Protégé - to je také vytvořeno Javou. S JESSem můžeme vytvářet Java-programy s podporou deklarativních pravidel (podmínková a usuzovací část). Je považován za jeden z nejrychlejších pravidlových systémů vůbec. Disponuje schopností zpětného řetězení (postupujeme od cíle k počátečním podmínkám, snažíme se třeba dokázat platnost naší hypotézy, resp. čím jí lze podložit). Pro akademické použití je zdarma, pro komerční si musíme připlatit. K dispozici je trial verze (zhruba 30 dnů platnost) - je nutné se přitom na oficiálních stránkách k prostředí JESS zaregistrovat. JESS disponuje bází faktů, bází pravidel a inferenčním mechanismem. Báze faktů obsahuje data/informace, která poskytují základ pro odvozování, fakty jsou data/informace týkající se našeho světa, může se jednat například o fakt (vlastni Jan Kniha = Jan vlastní knihu). Báze pravidel obsahuje samotná pravidla, která využívají obsahu báze faktů pro potřeby odvozování. Inferenční mechanismus je mozkem celého systému, protože zjišťuje, která pravidla mohou být spuštěna (vybírá je z tzv. konfliktní množiny; konfliktní pro to, že v jednu chvíli může být provedeno více pravidel), vybere vhodné pravidlo a provede jej.

Takže tedy pro využívání SWRL pravidel potřebujeme mít vytvořenou OWL ontologii, SWRL pravidla a pravidlový systém - v našem případě se bude jednat o JESS.

Vztahy mezi Protégé a JESSem

OWL ontologie je vlastně bází faktů a SWRL pravidla jsou bází pravidel pro pravidlový systém, viz. obrázek níže.


Protégé a JESS

Obrázek: Protégé a JESS

Jak funguje odvozování?

Na následujícím obrázku je představa funkce odvozování v prostředí Protégé spolu s JESSem. Základem je ontologie tvořená třídami (popsanými, definovanými, přídavnými), vlastnostmi (objektovými, datotypovými, ...) a instancemi. Všechny tyto stavební bloky jsou používány v SWRL pravidlech. Komponenta pluginu SWRLTab - SWRL Rule Engine Bridge (MOST) je nezbytná ke spouštění pravidel JESSu. Je to doslova most mezi OWL modelem se SWRL pravidly a pravidlovým strojem. Na opačné straně břehu je JESS - pravidlový systém, pro který jsou vstupy JESS fakta a JESS pravidla. Je jasné, že JESS musí OWL ontologii a SWRL pravidlům rozumět, aby mohl provádět odvozování a výsledky poskytnout přes MOST přímo do OWL ontologie. Provádí se proto určité namapování stavebních bloků OWL modelu spolu se SWRL pravidly do jazyka srozumitelného pro JESS, resp. třídy jsou namapovány do podoby šablon (deftemplate), jedinci a vlastnosti se stávají fakty JESSu a SWRL pravidla jsou převedena na JESS pravidla. JESS po odvození nových znalostí poskytne výsledky OWL ontologii tak, že se přímo stanou součástí OWL ontologie, jinými slovy je OWL ontologie díky odvozování obohacena o nové znalosti, viz. obrázek níže.


Proces inference

Obrázek: Proces inference

Omezení SWRL a standard

Jazyk SWRL zatím neposkytuje dostatečné prostředky pro tvorbu složitějších pravidel. Se SWRL pravidlem lze odvodit, že jedinec náleží k určité třídě nebo že určitá vlastnost vytváří relaci mezi určitými jedinci. Se SWRL pravidlem nelze odvodit, že jedna třída může být podtřídou jiné - k tomu máme jiné prostředky (klasifikace ontologie). SWRL specifikace nic neříká o tom, jak provádět odvozování, jen říká, jak konstruovat pravidla, jaká pravidla při tom dodržovat => pro odvozování můžeme použít různé pravidlové stroje, např. Algernon, Jena-2, CommonRules, Bossam, viz. dokument Manipulating context information with SWRL.