placement process: data's loaded from an xml file and stored as two graphs. one graph's edges represent an "is a" relationship the other graph's edges stores placement predicate information. placement is done object by object relative to the objects already there. modelling a person who's trying to place these objects in a room. the trick is translating the predicates into a function that can do the placement. what does it mean for one object to be on top of another in terms of x,y,z coordinates? it means the top z matches bottom z? mapping of predicate to function story of placing a table. does it know how to place a table in the room? if not, what else is a table? a table is also a type of furniture. does it know how to place a piece of furniture in the room? so on and so forth.