In order to discover and work through the issues involved in text
generation from our action representation, we looked at a simple example
of putting gasoline into a car and what form the instructions would
take. The list below shows the action representation instances for the
example, ignoring applicability conditions and subactions (see
Section
below for a possible
subactions). Figure
shows the example in a PaT-Net-like
form. Figure
gives the instructions that should be
generated from our representation.
Figure: PaT-Net-like representation for the example
Figure: Natural language instructions for the example
(agent = you;
objects = ( car.engine );
culmination conditions = ((agent = you; squery = "off(car.engine)"));
spatiotemporal =
(goal = establish;
relation = ((obj = car.ignition; oquery = "at(off-position)")))).
(agent = you;
objects = ( car.gasIntake.cover );
culmination conditions = ((agent = you; squery="open(car.gasIntake.cover")));
spatiotemporal =
(goal = terminate;
relation = ((obj = car.gasIntake.cover; oquery = "closed")))).
(agent = you;
objects = ( car.gasIntake.cap );
culmination conditions = ((agent = you; squery="free(car.gasIntake.cap)"));
spatiotemporal =
(goal = terminate;
relation =
((obj = car.gasIntake.cap; oquery = "in(car.gasIntake)")))).
(agent = you;
objects = ( pump.nozzle, pump.lever );
culmination conditions =
((agent = you; squery="free-from(pump.nozzle, pump.lever)"));
spatiotemporal =
(goal = terminate;
relation =
((obj = pump.nozzle; oquery = "on(pump.lever)")))).
(agent = you;
objects = ( pump.lever );
culmination conditions =
((agent = you; squery="up-position(pump.lever)"));
spatiotemporal =
(goal = establish;
relation =
((obj = pump.lever; oquery = "up-position(pump.lever)")))).
(agent = you;
objects = ( pump.nozzle, car.gasIntake );
culmination conditions =
((agent = you; squery="in(pump.nozzle, car.gasIntake)"));
spatiotemporal =
(goal = establish;
relation =
((obj = pump.nozzle; oquery = "in(car.gasIntake)")))).
(agent = you;
objects = ( gasoline );
culmination conditions =
((agent = you; squery="desired-amount(gasoline)"));
subactions = ...).
(agent = you;
objects = ( pump.nozzle, car.gasIntake );
culmination conditions =
((agent = you; squery="free-from(pump.nozzle, car.gasIntake)"));
spatiotemporal =
(goal = terminate;
relation =
((obj = pump.nozzle; oquery = "in(car.gasIntake)")))).
(agent = you;
objects = ( pump.lever );
culmination conditions =
((agent = you; squery="down-position(pump.lever)"));
spatiotemporal =
(goal = terminate;
relation =
((obj = pump.lever; oquery = "up-position(pump.lever)")))).
(agent = you;
objects = ( pump.nozzle, pump.lever );
culmination conditions =
((agent = you; squery="on(pump.nozzle, pump.lever)"));
spatiotemporal =
(goal = establish;
relation =
((obj = pump.nozzle; oquery = "on(pump.lever)")))).
(agent = you;
objects = ( car.gasIntake.cap );
culmination conditions =
((agent = you; squery="in-position(car.gasIntake.cap)"));
spatiotemporal =
(goal = terminate;
relation =
((obj = car.gasIntake.cap; oquery = "in(car.gasIntake)")))).
(agent = you;
objects = ( car.gasIntake.cover );
culmination conditions =
((agent = you; squery="closed(car.gasIntake.cover")));
spatiotemporal =
(goal = establish;
relation = ((obj = car.gasIntake.cover; oquery = "closed")))).