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

LEKCE 2.

Náplň lekce:


Základní části programu - Fakta a Pravidla

Při psaní programů se budete zpočátku setkávat s dvěma základními konstrukcemi a to s fakty a pravidly.

Co tyto pojmy znamenají ?

FAKTA

Dá se říci, že fakta jsou znalosti o reálných "objektech" reality (my je vlastně v programu identifikujeme (deklarujeme) a dáváme tím najevo, s čím bude náš program pracovat, čeho se bude týkat). Vlastně podle toho jaká fakta jsou v programu obsažena se dá docela dobře usoudit, k čemu je program určen. Daná fakta se Vám zobrazují v Clipsu v okně FACTS, přičemž během činnosti programu můžete různá fakta do báze přidávat nebo rušit. Tato fakta definujete v konstrukci deffacts.

Syntaxe:

(deffacts nazev_ struktury
  (relace prvni_objekt)
  (relace druhy_objekt)
...
  (relace n_ty_objekt)
)

Pod názvem relace si můžete představit název daného faktu (čeho se fakt bude týkat) např. ovoce, zvirata, filmy. Po názvu relace může následovat jeden či více objektů (tj.seznam). Seznam hodnot může být libovolně dlouhý, ale musí obsahovat min. jednu hodnotu a to název relace. K ní budeme moci později přidávat různé objekty.

Máme zde tři struktury deffacts. Je samozřejmě možné vytvořit jen jednu strukturu deffacts a do ní dát vše. Je ale lepší dát podobné informace k sobě - je to více přehlednější.


(deffacts seznam_akcnich_filmu
   (akce James_Bond)
   (akce Sberatel_kosti)
   (akce Tomb_Raider)
)


(deffacts seznam_sci-fi_filmu
  (sci-fi Alien)
  (sci-fi StarWars)
  (sci-fi Ja-robot)
)


(deffacts seznam_komedii
  (komedie Slecna_drsnak)
  (komedie Cetnik_a_cetnice)
)


atd.

PRAVIDLA

Pravidla jsou konstrukcemi, které již něco provádějí s Vašimi fakty. Provádějí nějakou akci. Například skutečnost, že můžete vypsat např. jen filmy z oblasti sci-fi.

Syntaxe:

Struktura pravidla

Pravidlo je tvořeno dvěma částmi:
  1. podmínková část - zde definujete za jakých podmínek má být provedena daná akce - tedy to co je uvedeno v usuzovací / akční části pravidla
  2. usuzovací / akční část - to co bude provedeno - ta nějaká akce, jestliže budou splněny všechny podmínky uvedené v podmínkové části pravidla. Zde pozor na slovíčko všechny. Podmínek uvedených v podmínkové části pravidla samozřejmě může být více. Pak mezi nimi platí vztah AND (a zároveň - tzn., že musí být splněna podmínka 1. a zároveň 2. až n-tá) . Stačí, aby alespoň jedna podmínka splněna nebyla, pak se pravidlo vůbec neprovede.

Pravidla, která budou moci být v nejbližší době provedena se Vám zobrazují v okně AGENDA. Je to jakýsi aktuální seznam aktivovaných pravidel, které budou moci být v nejbližší době provedena.

Jinak si fakta a pravidla můžete představit i jinak. Vezměte si například způsob svého uvažování. Během svého života získáváte mnoho a mnoho informací. Ty si ukládáte do své paměti a dále s nimi určitým způsobem pracujete, využíváte je, manipulujete s nimi. Těmito informacemi jsou například informace o matematických plošných objektech např. o obdélníku. Víte jak obdelník vypadá, jaké má charakteristiky např. dané strany. Tyto informace jsou našimi fakty. Znáte i vzorec pro výpočet jeho obsahu. Jestliže tento vzoreček použijete a zjistíte obsah obdélníku, je to jako byste realizovali pravidlo - konali s informacemi, které jste získali, nějakou akci. Možná, že tento příklad není příliš trefný, ale snad svůj účel splnil.

Toto jsou základní konstrukce v Clipsu (existují i další konstrukce např. šablony či moduly, ale s nimi až později).

PROMĚNNÉ

Proměnnou můžeme charakterizovat jako místo, kam si na určitou dobu něco uschováte. Přičemž na toto místo můžete uložit cokoliv a měnit její obsah (něco jako spižírna).

Základní vlastnosti proměnných:
  1. v Clipsu se proměnná označuje otazníkem s nějakým pojmenováním např. ?osoba - tato proměnná bude obsahovat třeba konkrétní osobu: Karel
  2. proměnná, ale nemusí být nějak pojmenována a to v případě, když nás její obsah nezajímá - takto ?
  3. v jiných programovacích jazycích jste asi byli zvyklí proměnnou deklarovat, zde nemusíte
  4. lze ji použít jen u konstrukce typu pravidlo (nikoliv u struktury deffacts)
  5. není možné, aby byly v usuzovací části pravidla uvedeny proměnné, který by neměly žádný obsah
  6. proměnné uvedené v pravidle jsou proměnnými lokálními tzn., že existují jen v rámci tohoto pravidla a ne jiného => stejný název proměnné může být uveden ve více pravidlech


^ Nahoru ^       Pokračování ==>


Validace

Valid XHTML 1.0 Strict

Valid CSS!

Monitoring webu