--Have (distance-between p1 p2) working and incorporated into the four single-object preposition functions.  Because I'm now dividing the old angle-based score by the distance between the robot and the obstacle, my score matrix now ends up with some numbers > 1 (when the distance is < 1m).  Not sure if this is a problem...I'm now getting the right answers when I look for the best sentence to describe a run, but I don't know if the exact score value will matter later when I try to build a more complex model.
--Convinced myself of the need for incorporating distance by producing matrix-with-distance-output.txt with two score matrices: using actual distance and using a distance of 1 (to recreate old way of scoring).  The new way with (old angle score)/distance got 8/10 columns correct (2 runs had bad data) and 4/5 rows correct (bad data again).  The old way only got 3/10 on columns--it scored the further-away object higher because its angle was smaller.  Today's change seems to fix this problem.
--I didn't make any changes to (between robot obstacle1 obstacle2) to incorporate distance.  Not sure if I need to--will need to take more data and look at how between compares to left-of and right-of.  I think I could simply incorporate a distance factor of (/ (distance-between robot obj1) (distance-between robot obj2)) or its inverse (want the resulting factor to be > 1 so that when I divide the old angle score by it, the new score is smaller...I think).