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)))