next up previous contents index
Next: KSL/LOGIC: Reflexivní a rozšiřitelný Up: Jazyky, které spojují OOP Previous: O RIENT84/K: Souběžnost OOP   Obsah   Index


OBJECT-PROLOG: V jednotě je síla

Struktury OBJECT-PROLOGu mají pouze jeden druh entit nazývaný worlds, který má mnoho významů: instance, třídy, metatřídy; mají jednoznačná jména. Každé world obsahuje lokální množinu tzv. Horn klauzulí. Worlds mohou být deklarovány staticky


    world symfonie9.
        je-hudebni-dilo.
        slozil-kdo bethoven.
    endworld.
nebo dynamicky:

    ?- createWorld(symfonie9),
        addKnowledge(je-hudebni-dilo) >> symfonie9,
        addKnowledge(slozil-kdo bethoven) >> symfonie9.

Následně je pak možné použít deleteKnowledge. Je velmi podstatné, že toto vytvoření worldu je úplně zpětně krokovatelné. Operátor SPMquot>>" znamená zaslání zprávy worldu. OBJECT-PROLOG poskytuje uživateli všeobecný vzor pro vytvoření dědičnosti a umožňuje mu jej upravit podle vlastních potřeb. A toto zahrnuje dědičné vztahy mezi objektem a třídou, třídou a nadtřídou, třídou a metatřídou. Obecná forma dědičnosti v OBJECT-PROLOGu je následující:


    world1 inherits predicate from world2 [:- condition].

Je-li splněna podmínka condition, zdědí world1 predikáty, které odpovídají zadanému predicate a jsou-li pravdivé ve world2.



Tomáš Kubíček 2002-05-19