Znalostní technologie II.
 Rozcestnik                   Pár slov ...                   Znalostní technologie I.                   Znalostní technologie III.                   Znalostní technologie IV.                   Další zdroje                  
Dnes je:        Aktuální čas: 00:00       Moudra: 

Pokračování LEKCE 14.

Vytváříme strukturu MODULŮ


Vytvoříme tedy tři moduly ALOIS, JANEK A NIKITA.

(defmodule NIKITA
   (export deftemplate cizinka) *Nikita spatřila Aloise *
)

(deftemplate NIKITA::cizinka
  (slot jmeno)
  (slot stav (default prihlizejici))
  (slot vek (default neznamy))
)

(deffacts NIKITA::info
   (cizinka (jmeno Nikita))
)

----------------------------------------------------------

(defmodule ALOIS
  (export deftemplate osoba) *Alois poskytuje jinému modulu k užívání svoji šablonu*
  (import NIKITA deftemplate cizinka) *přitom vidí Nikitu - to je ten import*
)

(deftemplate ALOIS::osoba
   (slot jmeno)
   (slot vek)
   (multislot pozdrav)
   (slot kontakt)
   (slot resit_problem_se_zt (default ne))
  (slot vyresen_problem (default ne))
)

(deffacts ALOIS::info
  (osoba (jmeno Alois) (vek 23) (pozdrav Ahoj jak se ti vede) (kontakt ne))
)

----------------------------------------------------------

(defmodule JANEK
   (import ALOIS deftemplate osoba) *Janek vidí Aloise*
)

(deffacts JANEK::info
   (osoba (jmeno Janek) (vek 24) (pozdrav Ahoj jde to ale ted mam problemy se ZT2) (kontakt ne))
)

----------------------------------------------------------

Pozor na správné seřazení modulů vzhledem k importu a exportu ! Nejprve umístit moduly, které exportují nějaké konstrukce, před importem těchto konstrukcí.

Možný postup tvorby modulů:

  1. uvědomit si jaké činnosti bude program vykonávat
  2. v závislosti na tom definovat vhodné moduly a každému přiřadit určitou funkci (exporty a importy si definovat spíše ke konci vytváření programové struktury modulu
  3. definovat obsah každého modulu tj. případné šablony a fakta
  4. definice exportů a importů
  5. definice pravidel pro modul (pokud nějaké bude obsahovat)

Samozřejmě si každý z Vás osvojí jiný postup. Pro začátek to může pomoci.

Doporučení:

Při vytváření více modulů si jednotlivé moduly v Clipsu nějak graficky oddělte, abyste se v programu vyznali a neztratili tj. nešetřete komentáři.

Stáhnout definice modulů:

(setkani_pratel.clp)

Klidně si program spusťte, ale zatím téměř nic neprovádí. Přeci jen je zde určitá zvláštnost. Po spuštění programu se podívejte do okna FACTS Objevily se nám zde ty 3 fakty, které jsme vytvořili pro každý modul.

V moci programátora je ovlivňovat viditelnost určitých faktů pro jiný modul právě pomocí funkcí import a export. Jak zjistíme co vidí daný modul ? Pokud jste tak neučinili, zkuste si spustit program setkani_pratel.clps a podívejte se do okna Facts. Můžete vidět, že jsou zde umístěny všechny fakty, které jsme vytvořili. Už teď je jasné, že pohledem do okna Facts nezjistíme, které fakty/fakt patří jakému modulu. Všechny fakty jsou totiž na jedné kupě. Jiná situace je u Agendy, kde každý modul má svoji vlastní Agendu.

Tedy naším úkolem bude zjistit co vidí MODUL NIKITA, MODUL ALOIS a MODUL JANEK.

Po spuštění programu setkani_pratel.clp zadáme následující příkaz do dialogového okna Clipsu:

(facts NAZEV_MODULU)

Na níže uvedeném obrázku vidíme co vidí každý modul. To je užitečný příkaz, že ?

Co vidí jednotlivé moduly.

Ještě jednou připomínám, že modelujeme situaci z pohledu Aloise. V realitě samozřejmě by i Nikita viděla alespoň jednu cizí osobu, ale od toho odhlídneme.

Další lekce bude věnována vytváření pravidel v modulech.

<== Zpět       ^ Nahoru ^      


KONEC 14.LEKCE  

Validace

Valid XHTML 1.0 Strict

Valid CSS!

Monitoring webu