EMA-XPS Online


DEFINE-RULE

DEFINE-RULE
===========

syntax: (define-rule <Regel-Name>
                  <Regelmenge-Task-Name>
           [:DOCUMENTATION <Dokumentation>]
           [:EXPLANATION <Erklärung>]
           [:PRIORITY <Lisp-Typ: ganze-Zahl>]
           IF <Regel-Prämisse>
           {THEN | THEN-ONCE} <Regel-Konklusion>+)

Warnung: Der Erklärungseintrag wird durch 
         EMA-XPS nicht unterstützt, d.h.
         :documentation und :explanation
         werden ignoriert.
         Die Priorität wird hier ignoriert,
         Beim Laden einer babylon3 WB werden hoch-
         priorisierte Regeln vor niedriger priori-
         sierten in der Regelmenge einsortiert!

Die oben angegebene Definitionsform beschreibt die 
genaue Syntax zum Erstellen einer Regel.
<Regel-Name> ist dabei der Regelname, <Regelmenge-
Task-Name> der Name der Regelmenge, der die neue
Regel zugeordnet werden soll und dann folgen die
optionalen Schlüsselwörter :documentation,
:explanation und :priority, schließlich die Regel
in der natürlichen Notation:
        if <linke-Seite> then <rechte-Seite>
oder
        if <linke-Seite> then-once <rechte-Seite>

Die Priorität ist eine ganze Zahl. Wenn mehrere
Regeln eine gültige Instanziierung haben und die
Regelauswertung durch die Priorität gesteuert
werden soll, wird diejenige Regel zuerst aus-
geführt, die die höchste Prioritätsnummer hat.

In der Regelprämisse können Sie samtliche BQL-
Ausdrücke und Lisp-Ausdrücke verwenden, sofern
diese keine Seiteneffekte auf die Wissensbasis
haben.

In der Regelkonklusion können Sie samtliche
BQL-Ausdrücke und Lisp-Ausdrücke verwenden.
Hier werden Sie im allgemeinen mit tell oder
retell die Wissensbasis verändern.

Beispiel: >(define-rule URLAUBSAUSWAHL
              URLAUBSANGEBOT
              :documentation "Wählt eine Stadt aus"
              :explanation (("Diese Regel soll
                 eine Stadt bestimmen"))
              :priority 1
              IF
              [and [urlaubsinteresse ein-kunde _x]
                [laender _land]
                (kunde-zufrieden ein-kunde _land)
                [staedte _land _stadt]
                [angebote _stadt _angebot]
                (is-of-frame _angebot _x)]
              THEN
              (kb-format "~%Besuchen Sie ~: (~A~)
                in ~: (~A~)."
              (name-of _angebot) (name-of _stadt)))


EMA-XPS Online