KAPITOLA 11.: SWRL PRAVIDLA - PRVNÍ SEZNÁMENÍ S PLUGINEM SWRLTAB

Zpřístupnění pluginu SWRLTab

Nejprve je nutné mít nainstalován JESS. K jeho provozu musíme mít JVM (Java Virtual Machine), u JESSu verze 7 min. JDK 1.4 a výše. Nastavíme systémovou proměnnou JAVA_HOME na cestu k Javě, např. c:\Program Files\Java\jdk1.6.0_02\. Balíček s JESSem rozbalíme na nějaké místo na disku a můžeme ho spustit souborem jess.bat v adresáři bin. Před Vámi by se měla objevit obrazovka s verzí JESSu bez jakýchkoliv hlášení, že něco chybí apod., viz. obrázek JESS.


JESS

Obrázek: JESS

Psaní programů v JESSu probíhá v příkazové řádce, ale je možné ho integrovat do prostředí Eclipse, což je mnohem příjemnější volba. Jedná se o prostředí JESSDE (The Jess Developer's Environment) a pokud byste měli zájem si ho nainstalovat, instrukce jsou k nalezení na stránkách The JessDE Developer's Environment.

Plugin SWRLTab je součástí prostředí Protégé, není tedy nutné ho doinstalovávat zvlášť. Naproti tomu JESS není součástí Protégé, takže mu ho musíme poskytnout zvlášť. V adresáři JESSu lib najdeme soubor jess.jar a ten zkopírujeme do adresáře prostředí Protégé, resp. .../plugins/edu.standford.smi.protegex.owl. Pak si otevřeme třeba nový projekt v Protégé (Protégé-OWL) a v Protégé zvolíme volbu Project/Configure/Tab Widgets/SWRLTab. Mezi souborem záložek se objeví nová s názvem SWRL Rules. Před sebou uvidíme prostředí - SWRL editor. V horní části editoru po pravé straně máme sadu ikonek. Ta se symbolem J nám zpřístupní SWRLJESSTab, který nám umožňuje překládat OWL konstrukce (třídy, vlastnosti a jedince) do jazyka JESSU, spouštět odvozování a promítat změny z JESSu do Protégé-OWL. Obrázek níže ukazuje prostředí SWRLTab a SWRLJESSTab. SWRLTab pro verzi Protégé 3.4 Beta (build 505) má mírně pozměněné GUI než SWRLTab pro verzi Protégé 3.3.1.


SWRLTab a SWRLJESSTab

Obrázek: SWRLTab a SWRLJESSTab

Popis prostředí SWRLTab

Na obrázku SWRLTab a SWRLJESSTab vidíme, že SWRLTab je vlastně rozdělený na dvě základní části - sekci, kde pravidla tvoříme a editujeme = SWRLEditor a sekci určenou pro manipulaci s JESSem = SWRLJESSTab. Vysvětlení tlačítek je na obrázku výše.

Postup pro tvorbu a využívání SWRL pravidel

Popíšeme nejprve kroky, které můžeme používat, když se chceme seznámit s tím, jak SWRL pravidla s OWL ontologií pracují. Pak si to vyzkoušíme prakticky na ontologii o filmech.

Postup pro tvorbu pravidel

  1. vytvořit ontologii (pro začátek menšího rozsahu, třeba jen s dvěmi třídami)
  2. založíme vlastnosti, definiční obory a obory hodnot
  3. k třídám definovat pár jedinců (nemusíme ke všem vytvořeným třídám, jen k těm, u kterých je potřebujeme)
  4. přejdeme do SWRLTabu a začneme s tvorbou pravidel (mějme na paměti, že ať konstuujeme jakýkoliv atom (podmínku pravidla), tak každá jeho část (vlastnost, třída, ...) musí být už v ontologii obsažená, protože se na ni z pravidla odkazujeme)
    • SWRL pravidla můžeme tvořit na několika místěch prostředí Protégé:
    • SWRLTab a jeho editor (doporučuji, je to přehlednější a máte pro to více prostoru)
    • přejdeme k záložce OWLClasses a ta máme pod sekcí Disjoints fialovou ikonku s černou šipkou (s touto možností nemám příliš dobré zkušenosti, které mi říkají, že když založíme pravidlo, ale pak si to rozmyslíme, zobrazí se nám hlášení, že změny v pravidle nebudou uloženy, což je v pořádku. Zrušené pravidlo se nám ale zobrazí v SWRLTabu.)
    • pravidla lze tvořit i v záložce Properties
    • pravidla lze tvořit i v záložce Individuals
  5. až vytvoříme nějaké pravidlo, tak musí být syntakticky správně, jinak nelze pravidlo spustit
  6. zpřístupníme si SWRLJESSTab, který nám zajistí komunikaci s JESSem s pomocí komponenty MOST
  7. vybereme zaškrtávacím políčkem pravidlo, které chceme spustit (lze vybrat i všechna pravidla)
  8. zvolíme volbu OWL plus SWRL -> JESS ... Co se stane?
    • namapují se součásti pravidla (třídy, proměnné, vlastnosti, jedinci) do jazyka JESSu; SWRL pravidlo je převedeno do JESS pravidla, třída do JESS šablon, vlastnosti a jedinci do JESS faktů
  9. volbou Run spustíme odvozování, v jednotlivých záložkách SWRLJESSTabu vidíme výsledky a akce, ke kterým dochází
  10. volbou JESS->OWL promítneme výsledky JESSu do OWL ontologie; s přenosem nově odvozoveného do OWL ontologie je dobré být obezřetný; pokud ty změny do OWL ontologie promítneme a chtěli bychom změny vrátit, lze použít normálně tlačítko Zpět, ale lze to použít jen pro jednu určitou akci, kterou jsme provedli, takže když jsme odvozovali 2x, tak nám ti nově odvození jedinci v té ontologii přeci jen mohou zůstat. Museli bychom je tedy smazat ručně, přitom mohou být na několika dalších místech v ontologii. Takže doporučuji, uložit si ontologii před odvozováním a pokud chceme, uložit si novou verzi ontologie s odvozenými znalostmi.
Vytvoříme SWRL pravidla, projekt s nimi uložíme. Jestliže se k projektu vrátíme třeba druhý den, pravidla i s nově odvozenými znalostmi v projektu zůstávají.