put a green block on a blue block move the little red block onto a big green block put a block on the table onto a blue block put the block on a block on a block on a red block is the big red block on the small green one where is the small blue block put it on the table put the big green block on it what is on the big green block what is on the block on the big green one
Vocabulary | put the tiny green block on the large blue block |
Grammar (and vocabulary) | put the small green block gently on the red block |
Ambiguity (parsing) | put the block on a block on a block on a red block |
Ambiguity (reference) | put the block on a block |
Semantics | put the table on the small red blok |
Semantics | where is the table |
[ [s [v np pp] [wh1 vbe np] [wh2 vbe pp]] [np [pn] [det snp] [det snp pp]] [snp [noun] [ap noun]] [ap [adj] [adj ap]] [pp [prep np]] ] -> blocks_grammar;
[ [noun block box table one] [wh1 where] [wh2 what] [pn it] [v put move pickup putdown] [vbe is] [adj white red blue green big small large little] [prep on onto to over in at under above by] [det each every the a some] ] -> blocks_lexicon;
[ [isa block objR] [colour red objR] [size large objR] [isa block objr] [colour red objr] [size small objr] [isa block objG] [colour green objG] [size large objG] [isa block objg] [colour green objg] [size small objg] [isa block objB] [colour blue objB] [size large objB] [isa block objb] [colour blue objb] [size small objb] [objb ison objG] [objG ison objR] [objR ison table] [objg ison table] [objr ison objB] [objB ison table] ] -> database;
where is the large red block [s [wh1 where] [vbe is] [np [det the] [snp [ap [adj large] [ap [adj red]]] [noun block]]]] [adj red] means [colour red ?x] (adjrule) [adj large] means [size large ?x] (adjrule) [noun block] means [isa block ?x] (nounrule) [where [ [isa block ?x] [colour red ?x] [size large ?x] ] ]
[[ [operator pick up ?x] [preconditions [on_table ?x][clear ?x][empty hand]] [additions [holding ?x]] [deletions [on_table ?x][clear ?x][empty hand]]] [ [operator put down ?x] [preconditions [holding ?x]] [additions [on_table ?x][clear ?x][empty hand]] [deletions [holding ?x]]]
[ [operator stack ?x on ?y] [preconditions [holding ?x][clear ?y]] [additions [on ?x ?y][clear ?x][empty hand]] [deletions [holding ?x][clear ?y]]] [ [operator unstack ?x from ?y] [preconditions [on ?x ?y][clear ?x][empty hand]] [additions [holding ?x][clear ?y]] [deletions [on ?x ?y][clear ?x][empty hand]]] ] -> operators;