Note that positive y is down the screen. Beacons are also numbered and just have a position. The description of the fixed objects are automatically given once at the start . Your Prolog program has to ask for the description of the movable objects. N is the bot's unique number, X and Y give the bot's position.
Angle is how far the bot is turned from the x-axis.
Holding is nothing if the bot isn't holding anything, otherwise it is the number of the bar the bot is holding. Speech is the bot's speech string. Bars also have unique identifiers. They are described by the x-y position of their centres and their angle. Every file containing a Prolog program that controls a bot must have a start predicate.