A CLIPS keretrendszer www.ghg.net/clips. CLIPS "C" Language Integration Production System.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Tananyag: konzultáció
Grafikus tervezőrendszerek programozása 10. előadás.
3. előadás (2005. március 1.) Utasítások, tömbök
Cells(sor száma, oszlop száma)
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
JavaScript.
Turbo Pascal Változók.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Mutatók, tömbök, függvények
Tudásalapú rendszerek
PHP Webprogramozás alapjai
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Az Input-Output használata Az input-outputot a nyelv előredefiniált csomagokon keresztül valósítja meg. Mindegyik csomag az Ada alapcsomag gyereke.
Operációs rendszerek gyakorlat sed, awk parancsok.
Programozás I Függvények általános jellemzői
Lénárt Anett egyetemi adjunktus - PTE PMMK Rendszer- és Szoftvertechnológia Tanszék Előadás JavaScript Tananyag: W eb - programozás.
Vizuális és web programozás II.
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Az adatokról C# -ban.
„Doctor” szakértő rendszer
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Összetett adattípusok a Pascal nyelvben
A Pascal programozási nyelv alapjai
Ismétlés A pascal program szerkezete: program programnev; Programfej
A Pascal programozási nyelv alapjai
Klasszikus Programozás a FoxPro-ban
Tömbök és programozási tételek
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
Összetett adattípusok
Operátorok Értékadások
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
1. Gyakorlat - Alapok 1. Írjon konzolprogramot, amely kiírja a “Hello ELTE” üzenetet! Használja a System.out.println() -t! 2. Írjon konzolprogramot, amely.
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
Visual Basic 2008 Express Edition
Objektum orientált programozás
Webprogramozó tanfolyam
Objektum orientált programozás
Az algoritmuskészítés alapjai
A Visual Basic nyelvi elemei
Operátorok Vezérlési szerkezetek Gyakorlás
Power Lutár Patrícia Pellek Krisztián.  -ltLess than  -leLess than or equal to  -gtGreater than  -geGreater than or equal to  -eqEqual to  -neNot.
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Java web programozás 7-8..
A 2. géptermi beszámoló VBA anyagának összefoglalása
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Excel programozás (makró)
Az 5,6,7 laborok VBA anyagának összefoglalása
Informatikai gyakorlatok 11. évfolyam
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Készítette: Rummel Szabolcs Elérhet ő ség: Linux kezelése.
Script nyelvek előadás
Script nyelvek előadás
Excel programozás (makró)
Szakértő redszerek készítése CLIPS-ben
Tudásalapú rendszerek
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

A CLIPS keretrendszer

CLIPS "C" Language Integration Production System

COOL A CLIPS továbbfejlesztése az objektum orientált paradigmák mentén.

CLIPS 6.23

Dialog Window Ez a CLIPS Shell, itt fogadja a parancsokat. Itt kapjuk a hibajelzéseket, és a megfigyelt objektumok értékeit. Nem tudjuk a sorok tartalmát visszatörlés nélkül javítani!

Menü Execution Gépelés nélkül itt tudunk kiadni parancsokat. Beállíthatjuk a megfigyelni kívánt objektumokat. Futtatás lépésről lépésre….

Menü File Open : megnyitás szerkesztésre. Load : állomány betöltése

CLIPS Shell

Utasítások alakja ( utasítás * ) : lehet egy újabb utasítás

Shell parancsok (clear) – törli az CLIPS környezet beállításait. (reset) – alaphelyzetbe állítja a CLIPS környezet beállításait. (load ”file”) – betölt egy állományt, egy CLIPS nyelven írt szöveges fájlt. (run) – futtatja az előzőleg betöltött programot

Programok javasolt futtatása (clear) (load ”file”) (reset) Esetenként valami kezdő állítás, tény beállítása. (run)

CLIPS – forrás állomány Megjegyzés: bármelyik sorban a ”;” jel utáni karakterek. Nincs program kezdetét ill. végét jelölő elem. Mindig azok a szabályok aktivizálódnak, melyeknél a szabály feltétele igaz.

(defrule) parancs - 1.clp [1] Szabály definiálására használjuk. (defrule [ ] [ ] * => * )

(defrule) parancs - 1.clp [2] - valamilyen azonosító [ ] – nem kötelező megjegyzés [ ] – nem kötelező deklaráció

(defrule) parancs - 1.clp [3] * - feltételek ÉS kapcsolatban * - ha a feltétel teljesül, akkor ez(ek) fut(nak) le. Megj: a szabályok nevét felül definiál- hatjuk. (Az utolsó lesz az érvényes.)

(defrule) példa (defrule hello =>(printout t "Hello vilag!" crlf)) hello – a neve Nincs feltétel megadva, mert nem kötelező. Kiírja a „Hello vilag!” szöveget, majd sort emel.

(printout ln kif*) Logikai név Kifejezések – ezek íródnak ki.

(assert fact) Tény megadása Példa (assert (var 12)) – beállítja a var változó értékét 12-re.

2.clp Ez egy fa bejárására készült program. Futtatás előtt meg kell adnunk a volt változó értékét, mint tényt. (assert (volt start)) - legyen a start csúcs a kezdő csúcs.

(deffact név *) A programban olyan tényeket írhatunk elő ezzel, amelyek minden kiadott (reset) parancs hatására azt az eredményt adják, mintha az (assert )….(assert ) parancsokat adtuk volna ki.

(deftemplate név +) Ezzel egy több mezőből álló struktúrát alakíthatunk ki. - (slot mezőnév) slot – egyszerű mező

paraméterek ? jellel kezdődő nevek Például: ?x ?y ?valami

3.clp Nézzük meg a 3.clp programot.

Adat típusok definiálása A (deftemplate) utasítással lehet adatszerkezeteket definiálni. Nézzük meg, hogy milyen adat mezőket definiálhatunk a (slot) utasítással.

(slot) (slot név [ ] [ ]) NUMBER – lehet INTEGER vagy FLOAT is. INTEGER – egész számok FLOAT – lebegőpontos számok STRING - karaktersorozat

(slot) A mező által felvehető értékeket korlátozhatjuk ezzel a funkcióval.

(slot) – Másik alakja (slot név ) (allowed-values x y z) : x,y,z értékeket veheti fel. (default x) : a kezdő értéke legyen x.

(retract xx) Töröl egy tényt a ténylistából.

Aritmetikai Kifejezések ( *) eredménye az operandusok összege, vagy szorzata. Ha INTEGER és FLOAT típust adunk össze, akkor az eredmény FLOAT típusú lesz. ( ) eredménye az op1-op2 vagy op1/op2 lesz.

Logikai Kifejezések (not op) (and * ) (or *)

Hasonlítások – minta illesztés Visszatérési érték TRUE vagy FALSE. (eq op1 op2) – bármilyen típusra. (neq op1 op2) – bármilyen típusra. Számtípusokra (= op1 op2), (<> op1 op2) (>= op1 op2), (<= op1 op2) (> op1 op2), (< op1 op2)

Értékadásnál használhatók &:, |:, ~: Példa (y ?y&:(<> ?x (- ?y 1) )) y értéke legyen ?y, felvéve hogy ?x nem egyenlő ?y-1 -el.

4.clp Nézzük meg a 4.clp programot!

(bind változó (read)) Beolvasás konzoltól, és a beolvasott értéket a változóba tároljuk.

Elágazás (if then else ) Nem kötelező else ág.

Ciklus (while ) (loop-for-count (változó kezdő vég) )

Tömb $ Változóként: $?

Függvény (deffunction ( … ) Utasítások…. (return ) )

Kérdező függvény (deffunction kerdes (?szoveg $?allowed) (printout t ?szoveg crlf) (bind ?v (read)) (if (= (length$ ?allowed) 0) then (return ?v) ) (while (not (member$ ?v ?allowed)) (printout t "Probald megegyszer: " ?szoveg crlf) (bind ?v (read)) ) (return ?v) )

Kérdező függvény hívása (bind ?x kerdes ”maga a kérdés” ) = valamilyen felsorolás, azok az elemek, amelyek a kérdésre válaszként elfogadhatóak. ?x = ebben a változóban kapjuk meg a választ.

6.clp Az előzőekre példa.

Barát javasló – friend.clp 3 kérdés alapján javasol barátot.

Barát javasló – friend2.clp Az előző rendszer egy másik megvalósítása.

Vége