next up previous contents
Nächste Seite: Beispiel eines indiGOLOG-Programms Aufwärts: GOLOG Vorherige Seite: Sensing   Inhalt


Die Programmiersprache indiGOLOG

Nach den oben eingeführten Theorien wurde ein Interpreter erstellt. Eine Anfrage wird normalerweise in der Form \( indigolog(e) \) gestellt. Ausgehend von der vordefinierten Situation \( S_{0} \) wird eine Aktionssequenz \( s \) ermittelt, die die mit \( e \) beschriebene Prozedur ausführt. Die oben aufgeführten Konstrukte sind dort folgendermaßen implementiert:



1) \( a \), wobei \( a \) Prozedurname oder primitive Aktion
2) \( (e_{1},e_{2}) \) oder Sequenz
  \( (e_{1}\vert e_{2}) \)  
3) \( ?(p) \) Testaktion mit \( p \) Bedingung
4) \( ndet(e_{1},e_{2}) \) nichtdeterministische Verzweigung
5) \( star(e) \) nichtdeterministische Wiederholung
6) \( pi(v,e) \) nichtdeterministische Auswahl eines Objekts
    mit \( v \) ist Atom und \( e \) ist GOLOG-Aktion, die \( v \) benutzt
7) \( if(p,e_{1},e_{2}) \) synchronisierte Verzweigung mit Bedingung \( p \)
8) \( while(p,e) \) synchronisierte Wiederholung mit Bedingung \( p \)
9) \( conc(e_{1},e_{2}) \) nebenläufige Ausführung
10) \( pconc(e_{1},e_{2}) \) priorisierte nebenläufige Ausführung (\( \delta _{1} \) höher als \( \delta _{2} \))
11) \( iconc(e) \) nebenläufige Iteration
12) \( search(e) \) \( \Sigma \) -Operator (Search-Operator)
13) \( interrupt(p,e) \) Interrupt mit der Wartebedingung \( p \); für priorisierte Interrupts
    steht noch \( prioritized\_interrupts(e) \) zur Verfügung



Prozeduren können bei ihrer Definition durch \( proc(a_{j},[e]) \) eine beliebige Bezeichnung für \( a_{j} \) erhalten. Diese Prozedur kann dann durch ihre Bezeichnung wie eine primitive GOLOG-Aktion verwendet werden. indiGOLOG stellt übersichtliche Konstrukte zur Beschreibung der Modellierung und der Fakten zur Verfügung:



\( \star \) primitive Aktionen \( prim\_action(a) \) für jede primitive Aktion \( a \)
\( \star \) primitive Fluenten \( prim\_fluent(f) \) für jeden Fluenten \( f \)
\( \star \) exogene Aktionen \( exog\_action(a_{e}) \) für jede exogene Aktion \( a_{e} \)
\( \star \) Vorbedingungen \( poss(a,cond) \), also \( a \) ausführbar, wenn \( cond \) gilt
\( \star \) Nachfolgeaxiome \( causes\_val(a,f,value,cond) \), nach Ausführung von \( a \)
    hat \( f \) den Wert \( value \), wenn \( cond \) zum Zeitpunkt
    der Ausführung gilt
\( \star \) Anfangssituation \( initially(f,value) \) für jeden Fluenten \( f \) dessen Wert
    \( value \) bekannt ist



Der Interpreter wird in Anhang A dargestellt.


next up previous contents
Nächste Seite: Beispiel eines indiGOLOG-Programms Aufwärts: GOLOG Vorherige Seite: Sensing   Inhalt

2001-01-04