Section 2 - Reconstructing the Grammar of "Go"
[The block vaguely going rule sends Multiple Actors into an infinite loop, and defining a new action for "go" doesn't override the line that invokes the supplying a missing noun activity for the going action. So we have to rip up the grammar for "go" and try again without the line for understanding "go" as going.]
Understand the command "go" as something new. Understand the command "walk" as something new. Understand the command "run" as something new. Understand the command "move" as something new. ["move" actually means "push" in the standard rules but we change it to "go" anyway.]
Understand "go [direction]" as going.
Understand "go [something]" as entering.
Understand "go into/in/inside/through [something]" as entering.
Understand the commands "walk" and "run" and "move" as "go".
[And now let's put a new action in there for "go" on its own--this is especially necessary because the disambiguation for "go" on its own does weird things.]
Going vaguely is an action applying to nothing. Understand "go" as going vaguely.
Check an actor going vaguely (this is the block going vaguely without an infinite loop rule): stop the action.
Unsuccessful attempt by an actor going vaguely when the reason the action failed is the block going vaguely without an infinite loop rule:
say "[The person asked] is unsure where to go. (Try GOing a direction or GOing TOWARD something the robot can see.)" [It'd be nicer to be able to print this once a turn, but that's difficult--I could try setting a flag for whether this message has printed already, but the action doesn't run the Every Turn rules, so the only obvious place to reset the flag is when the command prompt is printed--and I don't want to pile anything more on that. So instead you get individualized messages of befuddlement from each robot.]