EMA-XPS Online


DEFINE-TASK

DEFINE-TASK
===========

Syntax: (define-task <Task-Name>
           <Task-Argumente>
           [:DOCUMENTATION <Dokumentation>]
           [:EXPLANATION <Erklärung>]
           [:SUBTASKS {nil | (<Task-Name>*)}]
           ACTIONS <Task-Aktionen>)

Warnung: Der Erklärungseintrag wird durch 
         EMA-XPS nicht unterstützt, d.h.
         :explanation und :subtasks werden 
         ignoriert.

Mit der Definition von Tasks können Sie fest-
legen, wie auf das Wissen in Ihrer Wissensbasis
zugegriffen werden soll. Eine spezielle Task,
die ausgeführt werden soll, wenn die Wissens-
basiskonsulation gestartet wird, muß explizit
als Start-Task angegeben werden. Jede parameter-
lose Task kann als Start-Task gesetzt werden.
Tasks können andere Tasks mit Parametern ver-
sorgen und aktivieren. Nach Ende der Abarbei-
tung liefern Tasks einen Rückgabewert. Tasks
sind benannt und müssen immer einer Wissens-
basis zugeordnet werden.

ACTIONS

Bezeichnet den Aktionsteil einer Task. Hier
können Sie alle zur Verfügung stehenden
babylon-Ausdrücke und Lisp-Ausdrücke ver-
wenden. Zusätzlich stehen noch zwei spezielle
Lisp-Ausdrücke zur Verfügung:

(start <Task-Name> [<Task-Argument>*])

startet die Task <Task-Name> mit den notwendigen
Parametern als übergebenen Argumenten <Task-
Argumente>.

(stop-this-task <Task-Rückgabewert>
    <Task-Rückgabecode>)

Warnung: Der <Task-Rückgabecode> wird ignoriert,
         da EMA-XPS anders mit der Task-Steuerung
         umgeht!

beendet unmittelbar die Abarbeitung der aktuel-
len Task. Es hat zwei Argumente. Das erste ist
der Rückgabewert der Task. Das Zweite dient
zum Setzen des momentanen Task-Status der auf-
rufenden Task. Diese Funktion ist allerdings
nur für Ausnahmefälle gedacht, wenn die nor-
male Verarbeitung abgebrochen werden muß.

Beispiel: >(define-task 
              initialisiere-Staedte ()
              :subtasks ()
              actions
              (ask [AND [Stadt _stadt]
              [land _stadt _land]]
              (tell [staedte _land _stadt]))
              (ask [AND [Stadt _stadt]
              [Angebote _stadt _x]]
              (tell [Ort _x _stadt])))
          >(define-task ABLAUFSTEUERUNG ()
              :subtasks (INITIALISIERE-STAEDTE
                 URLAUBSANGEBOT BEGRUESSUNG)
              actions
              (start 'initialisiere-staedte)
              (start 'begruessung)
              (start 'urlaubsangebot
                (instance-of kunde)))


EMA-XPS Online