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 15.

Modul MAIN


Modul MAIN

Aniž bychom si to možná uvědomovali, v předmětu ZT1 jsme také využívali jistý modul. Jednalo se o modul MAIN. Jeho hlavní náplní bylo vytvoření tzv. inicializačního faktu (initial-fact) vytvářeného dle šablony definované právě v modulu MAIN. Tento fakt se nám uložil do naší báze faktů hned po zadání příkazu reset.

Clips tedy automaticky po spuštění programu vytváří tyto struktury:

(deftemplate initial-fact)

(deffacts initial-fact
  (initial-fact)


Díky inicializačnímu faktu mohou být vykonávána i pravidla bez podmínkové části např. takováto:

(defrule vypis_pozdrav
=>
  (printout t "Ahojda, jak se vede ?" crlf)


Tato struktura má vlastně takovouto strukturu:

(defrule vypis_pozdrav
  (initial-fact)
=>
  (printout t "Ahojda, jak se vede ?" crlf)


Modul MAIN existuje i v případě, že samotný program, který vytváříme, neobsahuje jeho definici. Jestli si vzpomenete na ZT1, tak jsme zde žádný modul MAIN opravdu nedefinovali. Pokud v programu uvedeme modul MAIN pak tím vykonáváme jeho předefinování

Jestliže tedy žádný element (podmínka) není použitý na LHS (left-hand-side = podmínková část), pak automaticky se v něm užije initial-fact či initial-object.

Jestliže by v RHS (right-hand-side = usuzovací část) nebyla definována žádná akce, pravidlo může být aktivováno, ale nic se nestane.

(defrule vypis_pozdrav
=>
)


Je to samé jako:

(defrule vypis_pozdrav
  (initial-fact)
=>
)


Proč hovoříme o modulu MAIN, když budeme vytvářet svoje vlastní moduly ?

Představme si, že vytvoříme svůj vlastní modul a v tomto modulu bude existovat určité pravidlo bez uvedení podmínky v podmínkové části. Je jasné, že k tomu aby bylo takové pravidlo vykonáno, budeme potřebovat fakt initial-fact. Ale kde ho vzít ? Ten "patří" modulu MAIN ("ten je jeho tvůrcem a vlastníkem"). Proto tedy, když vytváříme vlastní modul, který bude mít nějaké pravidlo bez podmínky v podmínkové části je potřeba v definici tohoto modulu (kde takové pravidlo je) realizovat import šablony initial-fact z modulu MAIN.

Dále pak kde je import musí být i export tj. je nutné v našem programu uvést definici modulu MAIN s exportem šablony initial-fact. Praktické použití modulu MAIN je uvedeno v příkladech na konci této lekce.

<== Zpět       ^ Nahoru ^       Pokračování ==>


Validace

Valid XHTML 1.0 Strict

Valid CSS!

Monitoring webu