next up previous contents
Next: ChartsComparisons, and Up: Examples Previous: Examples

Lexical Analysis for Fueling task

 

The natural language instructions for the fueling task include the following verbs: shut off, open, remove, push, insert, pump, replace, close, and the following objects: car's engine, cover, gas cap, car's gas intake, pump nozzle, pump lever, gasoline. In the analysis below, we have described each instruction in the task as a goal oriented predicate-argument structure. Our representation breaks the individual instructions down into conjunctions of low-level states that comprise the necessary components for the achievement of the goal. We introduced two new objects, the car door and the ignition so that we could describe the related actions of shutting off the engine and getting out of the car, which are precursors to the fueling action. Our aim in this analysis was to simply describe the necessary states, which would be achieved by individual PaT-Nets. The low-level states we introduced include: at, touch, state, grasp, pump, have, support. Each state corresponds to a simply binary predicate, except for have, which is in turn described as a conjunction of states, and corrsponds to the notion of having phsical control over an object.

have(object) <-
        at(hand,object),
        grasp(hand, object),
        state(object,LOOSE),
        support(hand,object).

The analysis begins here, and follows exactly the order of the natural language instruction. Notice that certain states (such as the car door being open) are added for coherence.

shut-off(engine,igntion) <-   
        at(hand,ignition),
        touch(hand,ignition),   
        state(ignition,OFF).

open(door) <-              
        at(hand,lever),
        grasp(hand,lever),
        state(lever,OPEN),
        state(door,OPEN).

open(cover) <-
        at(hand,cover),
        grasp(hand,cover),
        state(door,OPEN).

remove(gas-cap) <-
        have(gas-cap).           

remove(nozzle) <-
        have(hand,nozzle).

push(lever,up) <-
        at(hand,lever),
        touch(hand,lever),
        state(lever,up).

insert(nozzle,gas-intake) <-
        have(hand,nozzle),
        at(nozzle,gas-tank intake).

pump(gasoline) <-
        have(hand,nozzle),
        state(nozzle-lever,OPEN).
        pumped(gasoline).               

push(lever,down) <-
        at(hand,lever),
        touch(hand,lever),
        state(lever,down).

replace(nozzle) <-
        have(hand,nozzle),
        at(nozzle,HOME).

replace(gas-cap) <- 
        have(hand,gas-cap),
        at(gascap,HOME).

close(cover) <-
        at(hand,cover),
        touch(hand,cover),
        state(cover,CLOSED).

In the following table we have associated specific, previously defined PaT-Nets with the states in the previous analysis. The table is object-oriented, in that the states are organized according to the objects that can occur in them.





DTOG Group