Alcuni robot possono salire e scendere da veicoli a un posto (in uno stesso veicolo, cioè, non possono contemporaneamente stare più robot), guidare veicoli o spostarsi a piedi da un luogo a un altro.
Le azioni possibili sono: drive(R,V,X,Y) (il robot R guida il veicolo V dal luogo X al luogo Y; può essere eseguita solo se R è già su V), go(R,X,Y) (il robot R si sposta a piedi dal luogo X al luogo Y), geton(R,V,X) (il robot R sale sul veicolo V che si trova nel luogo X) e getoff(R,V,X) (il robot R scende dal veicolo V nel luogo X).
I fluenti utilizzati sono at(X,Y,S) (il robot o veicolo X si trova nel luogo Y nella situazione S) e on(R,V,S) (il robot R è sul veicolo V nella situazione S). Si possono naturalmente utilizzare, se necessario, predicati statici per tipizzare gli oggetti o per definire proprietà che non cambiano nel tempo.
Scrivere:
marta