In this section we shall take a close look at a program called MSBLOCKS, which is loosely based on Winograd's SHRDLU. MSBLOCKS was created at Sussex University for use by undergraduate students in order to explore the sorts of issues discussed in this book. It is a much-simplified relative of SHRDLU, and we only have space to describe a simplified version of MSBLOCKS.
MSBLOCKS, like SHRDLU, is a program which constitutes the `mind' of an imaginary robot or automaton. This robot is to be imagined as living in a notional world of coloured objects of different sorts. In the case of MSBLOCKS these objects are simply boxes of two sizes (big and small) and three colours (green, blue, and red) lying on a table. Our cast thus includes the following (the names should be self-explanatory):
boxg boxG boxb boxB boxr boxR table
and, of course, the robot itself, whose arm hovers around over the table.
These boxes can be moved around and placed one on top of the other, or onto a table. The robot is a very simple one: all it can do is pick up boxes and put them down again. Moreover, the system is set up in such a way that it can only hold one box at any one time. In figure 3.7, for example, if it is instructed to pick up the big green box (boxG), where boxG is covered by the little red box (boxr), and where the robot is holding the big blue box (boxB), it must go through a series of preparatory operations before it can do what you say: first it must put boxB down somewhere (but not on boxr); then it must pick up boxr and place it clear of boxG.
[IMAGE ]
Figure 3.7: The initial state of the MSBLOCKS example.
As can be seen, the `world' inhabited by the MSBLOCKS automaton is very rudimentary indeed. It can, however, be made indefinitely more complicated by adding more and more boxes, and objects of other sorts, including more devices to move the objects around, and so on. The point of the example is to show how even a situation as simple as that illustrated in figure 3.7 hides a surprisingly complex set of underlying structures and procedures for manipulating these structures.