1. Bevezetés

2. Követelmények

2.1 A modell leírása

2.2 Az implementáció

3. Az OMOS (Operational Modeling Language)

3.1 Egy valós példa

3.2 A modellező nyelv

3.2.1 A terület modellje (struktúra)

3.2.2 A problémamegoldás alapú irány

3.2.3 A feladat modellje

3.3 Az OMOS és a követelmények

1. Bevezetés

Napjainkban úgy tekintünk a tudásszerzésre, mint egy konstruktív modellépítő folyamatra. A szakértő, a tudás mérnök és az eszköz interakciója hozza létre a tudást. A modell nem más, mint a valós világból kiragadott probléma strukturált megértése. Egy ilyen struktúra elkészítése két részből áll. Egyrészt a probléma modellezéséből, hogy megértsük a vizsgált tulajdonságokat, összefüggéseket, másrészt a modell implementációjából, mely képes a valós világból vett probléma, és esetleg a hozzá hasonlóak megoldására

Először azzal foglalkozunk, hogy milyen követelményeknek kell eleget tennie egy modellező nyelvnek, hogy lehetőséget adjon a fent említett két irány megvalósítására. Majd a következő részben rövid leírást adunk az OMOS nevű nyelvről, mely az ilyen modellező nyelvek egyike.

2. Követelmények

Ebben a részben néhány alapvető elvárást fogalmazunk meg azon tudás tervező rendszerekkel kapcsolatban, melyek a fent említett nézőpontból közelítik meg a problémát.

A továbbiakban egy valós világból vett probléma modelljén a tények, a közöttük fennálló összefüggések illetve a probléma megoldásához vezető cselekvéssorozat strukturált megértését értjük.

Tapasztalataink alapján 3 fő követelményt támaszthatunk egy tudás tervező rendszerrel szemben:

  1. lehetőséget ad modell leírására, formalizálására
  2. lehetőséget ad a modell implementálására és segít abban
  3. igyekszik csökkenteni az ezek között tátongó “szakadékot”

Ezeket az alábbiakban részletesebben is kifejtjük.

2.1 A modell leírása

Ahhoz, hogy a modellünket formalizálhassuk, az alábbi dolgokra van szükség

2.2 Az implementáció

Ahhoz, hogy az elkészített modellünk egy számítógépen működjön, le kell azt kódolni a gép számára is érthető nyelven. Ez a fázis semmiképpen sem választható el az előzőtől, már csak azért sem, mert a számítógép sokkal könnyebben vesz észre olyan dolgokat az implementáció körül (pl. körök az eljárásokban, stb), melyeket mi emberek csak nehezen látunk. Ezért a formális modell implementációjának pusztán “kézzel történő” elkészítése nem lenne hatékony megoldás.

3. Az OMOS (Operational Modeling Language)

Az OMOS egy olyan kísérleti nyelv, melynek segítségével eldönthetjük egy megközelítésről, mely kielégíti az imént tárgyalt feltételeket, hogy keresztülvihető-e vagy sem. Az OMOS és a MODEL-K mindketten csak részei egy nagyobb vállalkozásnak, melynek célja explicit problémamegoldó eljárások felhasználása a tudásalapú rendszerek készítésében.

Például az OMOS-t használták arra, hogy implementálják a KADS koncepcióra épülő modellt a rák kemoterápiás kezelésének problémájában, illetve irodák elrendezését segítő rendszerek fejlesztésében.

3.1 Egy valós példa

A megfelelő szorítóeszköz kiválasztása az esztergapadhoz csak egy része egy nagyobb feladatnak, melynek célja az, hogy előállítási tervet kell generálni forgásszimmetrikus alkatrészek gyártásához.

Az alábbi ábra egy az autók kormányművében használatos alkatrészt mutat. A számok a tömb forgása közben esedékes metszési pontokat mutatják sorban. A szorítóeszköz a forgástengelyben fekszik, feladata a forgatást biztosító erő átadása a tömbnek, melyből az alkatrész készül.

A megfelelő szorítóeszköz kiválasztása nem egyszerű feladat. A szorítóeszközöket aszerint csoportosítjuk, hogy milyen módon rögzítik a munkadarabot, illetve hogy milyen hozzáférést biztosítanak a munkadarabhoz. Alkalmazásunk szempontjából mi viszont azt vesszük csak figyelembe, hogy mennyi időbe kerül a szorítóeszközt felrakni az esztergagépre, illetve hogy mennyi időbe telik a munkadarab cseréje az aktuális szorítóeszközön. A többi kritériummal most nem foglalkozunk.

3.2 A modellező nyelv

Az OMOS programnyelv a feladat megoldására két irányból történő megközelítést nyújt. Az egyik a probléma megoldás alapú irány, a másik a terület struktúrájának megértésére alapuló irány. A kettő ötvözete lesz a feladat modellje, amely azonnal futtatható, így azonnal tesztelhető, mely által lehetőségünk van azonnal felfedezni jelenlegi modellünk hibáit, hiányosságait, és javítani azokat.

3.2.1 A terület modellje (struktúra)

A terület modelljén a modellezni kívánt valós világ részének struktúra alapú megközelítését értjük. Ez azt jelenti, hogy megfigyeljük a tényeket és a közöttük lévő összefüggéseket, és ezeket írjuk le a rendszernek.

Keretek és előfordulások

Objektum orientált leírást alkalmazunk ahhoz, hogy megadjuk a terület szerkezetét. Az objektum osztályokat nevezzük keretnek, melyeknek különféle tulajdonságokkal bírnak. Ezeket slotnak hívjuk. Meglévő keretekből újak keletkeznek öröklődés segítségével. Az objektumosztályok – melyeket keretek reprezentálnak – mutatják meg a terület szerkezetét. A keretek nem módosulnak a megoldási folyamat során, kizárólag ezek előfordulásait (objektumok) kezeli a rendszer.

Kapcsolatok

Az OMOS különféle relációkat nyújt a számunkra, hogy kifejezhessük az objektumosztályok előfordulásai közötti kapcsolatokat. Egy reláció két részből áll: deklarációból, mely a különféle attribútumok típusait írja le, illetve un. tuple-okból, melyek a különféle előfordulásokat és azok tulajdonságait kötik össze.

Hogy mindezt jobban megérthessük, tekintsük az alábbi kódrészletet:

Az optimális szorítóeszköz reláció írja le az adott munkára ideális eszközt a fordulékonysági tulajdonság függvényében. A Tuples részben az látható, hogy a legmegfelelőbb eszköz az un. collet-chunk, amennyiben átlós irányú fordulékonyság szükséges, de inside-turning (???) nem.

3.2.2 A problémamegoldás alapú irány

Annak érdekében, hogy képesek legyünk összehasonlítani a különféle problémák megoldási módját, hogy újrahasznosíthassuk őket, és hogy esetleg egy kelléktárrá szervezhessük ezeket, a metódusokat a konkrét területtől függetlenül kell megfogalmaznunk. Hogy támogathassuk az alulról felfelé haladó építkezési formát, az eljárásokat apró építőelemekből kell összeállítanunk.

Az OMOS KADS alapú építőelemeket használ. Egy eljárás két részből épül fel:

Egy problémamegoldó eljárás absztrakt leírása

A megfelelő szorítóeszköz kiválasztásához szükség van egyrészt véges számú kritériumra, melyek segítségével kiszűrhetjük a nem megfelelő szorítókat, másrészt optimalizáló kritériumokra, melyek segítségével a “versenyben maradt” szorítók számadatai alapján kiválaszthatjuk a legjobbat.

A különféle kritériumok “felhasználása” kétféleképpen történhet: egyrészt használhatjuk őket arra, hogy megtaláljuk a legmegfelelőbb szorítót, másrészt akkor (és csak akkor), ha így azt kapjuk, hogy az összes létező szorítónk alkalmatlan a feladatra, akkor készíthetünk belőlük egy gyengébb valamit, mellyel megtalálhatjuk a “legkevésbé rossz” szorítót.

Ez a fajta problémamegoldó eljárás elkülönítésen alapuló kiválasztás és optimalizálás néven ismert. Lépésekbe foglalva az eljárás így néz ki:

  1. A munkadarab leírása, tulajdonságai alapján felállítunk különféle kritériumokat, melyek a kiválasztás alapjául szolgálnak
  2. Kiválasztjuk azt a szorítót, mely teljes mértékben kielégíti a kritérium halmazt.
  3. Ha a 2. lépés sikertelenül zárul, akkor “gyengítjük” az optimális eszköz fogalmát a “Válaszd ki a legjobb elérhetőt” nevű következtetési eljárás alapján
  4. A munkadarab leírása alapján számszerűsítjük a költségeket az összes versenyben maradt szorítóeszköz esetében.
  5. A “Találd meg a legjobbat” nevű következtetési eljárást használva kiválasztjuk ezek közül azt, amelyik használata a legkisebb költséggel bír.

Következtetési eljárások

A következtetési eljárás nem más, mint a problémamegoldás során bekövetkező alapvető változások általános leírása.

Az OMOS-ban ez a változás a változókhoz rendelt értékekre és a változók szerepkörére korlátozódik. Amikor a változóhoz rendelt érték változik, az azt jelenti, hogy az objektum egy attribútuma változik meg.

A következtetési eljárás specifikációs része a változás természetét írja le kifejezések segítségével az érték illetve a szerepkör váltások esetében. Tekintsük az alábbi kódrészletet:

Ez a kódrészlet a “Válaszd ki a legjobbat” nevű következtetési eljárást írja le. Az 1-3. sorok adják meg a bemeneti, a kimeneti és a vezérlő szerepeket. A bemeneti szerepkör a kiolvasás után kiürül; a kimeneti szerepköröket a következtetési eljárás módosítja, a vezérlő szerepkör elemeit viszont módosítás nélkül olvassuk el. A 4. sor azt írja le, hogy ez a következtetési eljárás nem változtat a változók értékén. Az 5. sorból azt olvashatjuk ki, hogy amennyiben ez a következtetési eljárás “tüzel” (lefut), akkor az objektum a bemeneti szerepkörből a kimeneti szerepkörbe kerül át. A 6. sor azt a relációt mutatja (ezt a relációt már leírtuk fent), melyben megtaláljuk azt a tudást, ami alapján a 4-5. sorokban leírt változtatásokat a következtetési eljárás elvégez. (Magyarul ezen tudás alapján döntjük el, hogy egy adott objektum átkerül-e a bemeneti szerepkörből a kimeneti szerepkörbe, vagy változik-e valamely attribútuma.) A 8-10. sorok a következtetési eljárásban használt szerepköröket képzik le a reláció argumentumaira.

Amikor modellünk futtatás elé kerül az OMOS rendszerben, ezek a következtetési eljárások egy előrefelé haladó következtetési sémává fordulnak le, és így kerülnek végrehajtás alá.

Szerepkörök

A problémamegoldás alatt a terület elemei - az objektumok – sokféle szerepben tetszelegnek. Eddigi példánknál maradva ezt úgy lehetne a legjobban szemléltetni, hogy megvizsgáljuk a különböző szorító eszközöket különböző szerepekben. Ha megvizsgáljuk az imént bemutatott következtetési eljárást, kezdetben minden szorító eszköz az “alternatív választás” szerepkörében látható. Amennyiben azonban kielégítik az aktuális kritériumokat, hirtelen ebből a szerepkörből átkerülnek a “lehetséges választás” szerepkörébe. Ezek közül pedig az, amelyik a legkedvezőbb költségeket mutatja, átkerül a “kiválasztott” szerepkörbe.

A szerepkörök dinamikusan változnak tehát a futás során, és a problémamegoldó éppen aktuális állapota jellemezhető velük. Az itt tárgyalt elkülönítésen alapuló kiválasztás és optimalizálás nevű problémamegoldó eljárásnak az alábbi szerepkörei léteznek:

A vezérlő szerkezet

A vezérlő szerkezet egy általános eljárás, mely arra hivatott, hogy eldöntse: melyik következtetési eljárás fog tüzelni a következő alkalommal. Ez úgy működik, hogy meghívunk minden következtetési eljárást, hogy teszteljük, eszközölnének-e bármilyen változtatást. Hogy jobban értsük mindezt, áttekintjük, mit is csinál ez a vezérlő eljárás lépésenként

  1. Meghívja az “Instantiate” nevű következtetési eljárást, mely létrehozza az aktuális munkadarab megmunkálásához szükséges elforgatási követelményeket.
  2. Meghívja a “Válaszd ki a legjobbat” nevű következtetési eljárást, hogy az szigorú értelemben vett megfelelő eszközt találjon
  3. Amennyiben a 2. lépés nem hoz eredményt, egy gyengébb kritériumokkal dolgozó következtetési eljárás kerül tüzelő pozícióba annak érdekében, hogy kiválassza a “lehetséges megoldások” szerepkörére alkalmas szorítókat
  4. Kiválasztja az optimális szorítót

3.2.3 A feladat modellje

A feladat modellje a fentiekben részletesen leírt két rész, a struktúra és az eljárások ötvözete lesz. A következtetési eljárásokat megfeleltetjük a relációknak, a szerepköröket pedig megfeleltetjük a kereteknek és az ő előfordulásaiknak. A feladat tehát az, hogy egy ilyen megfeleltetést találjunk.

Példánknál maradva ez a következőképpen történik:

A költség leíró keret összes előfordulása írja le az optimalizáló kritériumot.

A szituációs paraméter a munkadarab leírása lesz.

A kiválasztó kritériumok a szorítók fordulékonyági jellemzőiből adódnak.

Az alternatív választás szerepkörébe kerül kezdetben az összes szorító eszköz, a többi szerepkör üres.

Ne felejtsük el: mindkét részmodell (struktúra, eljárás) fejlesztése tulajdonképpen párhuzamosan zajlik, és tulajdonképpen valamelyest független egymástól, viszont a végén a feladat modellje a kettőt ötvözve kerül ki.

3.3 Az OMOS és a követelmények

Mint már korábban említettük, az OMOS-t úgy fejlesztették, mint egy kísérleti nyelvet, melynek segítségével megnézhetjük, hogy lehetséges-e kielégíteni mindazon követelményeket, melyeket a 2. részben támasztottunk.

A modell készítésre az OMOS két megközelítési lehetőséget ajánl: az eljárás alapút és a struktúra alapút. Mindkét megközelítési formának megvannak a maga egyszerű építőkövei, mint pl. az első esetben a következési eljárások, a szerepkörök, míg a második esetben a keretek, az előfordulások, a relációk. Így látható, hogy mindkét rész újrahasznosítható elemekből áll. A kettő ötvözéséből nyert modell közvetlenül futtatható, így az OMOS nem követel meg külön implementációs részt.