- Will numbers will be spelled out ("one","two", etc) or "1", "2", etc.?
You must accept both the spelled out and digit representation for
all numbers (at least all numbers that you choose to parse).
- Are we supposed to handle the articles a/an?
Yes.
- In the put down command, the object description and the position
specifier can be next to each other. But the object description can
contain a position specifier, like "the rock next to the yellow garbage."
How do we decide if is a part of the description or if it is where the
object should be put?
This is a potential, but not an actual source of ambiguity. The reason
is that in the put down command:
PUT DOWN object [position-specifier]
the object should not itself be qualified with a position specifier.
This is because (1) the object must currently be held by an arm, and
(2) each arm can only hold one object, therefore specifying a position
is unnecessary (the object will *always* be at position 0).
Therefore,
PUT DOWN THE GLASS AT POSITION 3
should uniquely mean that the destination is position 3 in the outside
world, and
PUT DOWN THE GLASS AT POSITION 2 AT POSITION 3
should be syntactically invalid.
- Do we need to worry about compound nouns, like "fuel drum dispenser",
or can we assume that it will always be spelled with '-':
"fuel-drum-dispenser"?
There are only three cases of compound nouns:
"fuel drum," "fuel drum dispenser," and "road sign"
and you should handle all three. We will *not* test your code on
any variants like fuel-drum, fuel-drum-dispenser, or roadsign
- We have to support: "Pick it up" but do we also need to support
"Pick the glass up"
This is a real inconsistency in the problem set: the syntax for
the PICK UP action does *not* mention this case, but in the discussion
of PUT DOWN it (inconsistently) says: "As before, the *object*
may come before or after the DOWN."
That being the case, we will take the easy way out: you do *not*
have to parse
PICK THE GLASS UP
PUT THE GLASS DOWN
-
Do we have to parse both of these?
broken red glass
red broken glass
Yes.
-
What about "pick up red glass" as in "pick up any red glass"
No, consider this ungrammatical. Require a single article at
the beginning of a noun phrase.
-
Is the relative location only something like "next to ...", or can it
be "to the right of" or "to the left of" or something like that?
No, Right and Left are not covered:
position-specifier -> AT position
position-specifier -> NEXT TO object
-
In the travel command, can location name have articles? Should it be
"travel to warehouse" or "travel to the warehouse"?
Accept only the following:
location-name -> THE WAREHOUSE
location-name -> THE DEPOT
location-name -> THE STATION
-
When specifying a direction in 'go direction', do we parse NW, or North-West,
or North West?
You should parse the following directions:
north
south
east
west
northeast (one word)
northwest
southeast
southwest
-
How do we know where the truck is at any given moment?
Should there be something in the percept that tells us?
No, the name of a location is an external artifact---it is
not part of the Truckworld at all. You can assume that
the truck starts at The Warehouse.
-
How do we know what the fuel level is? The percept doesn't
provide any information.
You don't need perceptual information about the fuel level, since
you know that (1) the tank begins full, (2) each trip takes a full
tank, (3) filling with a fuel drum fully fills the tank.
-
There seems to be a name conflict between the
top-level PS4 command EXECUTE-COMMAND and a truckworld
internal by the same name. What should we do?
Change your function name from EXECUTE-COMMAND to
PARSE-AND-EXECUTE-COMMAND.
-
I'm confused about this whole PICKUP/PUTDOWN
syntax thing. Exactly what should I parse and what should
I not parse?
Here is the grammar that you should parse. Please recall
that this is just all the syntactically valid sentences.
There will be plenty of syntactically valid sentences that
don't make sense in the world.
S -> PICK UP object arm
S -> PICK IT UP arm
S -> PUT DOWN object-description location
S -> PUT IT DOWN location
arm -> USING ARM-1
arm -> USING ARM-2
arm ->
object -> object-description location
object-description -> art adjs kind
adjs -> adj adjs
adjs ->
location -> position container
position -> AT POSITION number
position -> NEXT TO object
position ->
container -> IN BAY-1
container -> IN BAY-2
container -> IN object
container ->
art -> A | AN | THE
adjs -> RED | ORANGE | ... | FULL | EMPTY | BROKEN | UNBROKEN
kind -> GLASS | ROCK | ...
number -> 0 | ZERO | 1 | ONE | ...
-
Does IT refer to the last object mentioned, or the last object
successfully manipulated?
The latter. No sense in referring to nonsense objects more than once.
-
In the problem set, there is
an additional form for PICK UP
[USE arm-specifier TO] PICK UP object
which does not appear in the grammar you gave us. Do
we still have to parse this form?
Yes. That would correspond to adding the following rules
to the grammar:
S -> USE arm-name to PICK UP object
arm-name -> ARM-1
arm-name -> ARM-2
-
In referring to ARMS and BAYS, the
FAQ and the problem set itself seem to disagree. The former says
ARM-1, and the latter says ARM 1. Which should we use?
Please use the latter so as to be in compliance with the released
grammar.