I know what it does. I worked that out for myself, but what it does is wrong. I ASK ABOUT BALL, not twine. Why does noun1 return twine, when the primary noun for twine is 'twine' and the primary noun for ball is 'ball'. It simply doesn't make sense.
When both objects are in scope, 'ball' is a better match for ball, than ball of twine. When only the ball is in scope, 'ball' is the only match for ball. When only the ball of twine is in scope, 'twine' is the only match for ball.
It strikes me that it stops processing as soon as it finds the first match for 'ball' and that happens to be the ball of twine. It does not continue processing to see that there is a better match later on. In the real game, the ball of twine is not even in scope, yet it still returns 'twine'. I've got a feeling that if I was to define an object for ball BEFORE the twine (even though there is no such object), then it would find the ball first and use that, even if it's not in scope. And then I wouldn't be able to refer to the ball of twine as 'ball'.
So how do I work around these shortcomings?