A method, 
system, and 
computer program product for addressing a general class of configuration problems requiring 
visual placement. Such configuration problems are solved as a 
single group using a 
visual user interface which guides the users' behavior. The present invention may be implemented over 
the Internet for rapid and efficient distribution without any additional 
software on the 
client side other than a 
web browser. The 
inference engine may be on a remote 
server. The 
client side device may include a 
visual user interface as well as a small amount of user side intelligence. In one embodiment, a 
visual interface on the 
client device helps the user create a product comprised of selectable components, where each component is placed where the user wants it. Since the client device contains some amount of user intelligence, the client device does not need to send an entire 
web page to the 
inference engine, and receive an entire new 
web page from the 
inference engine, every time a user selects a component. Instead, once a user makes a selection, the client device can merely send over to the 
inference engine, the component selected, and the desired placement of the component. The 
inference engine, in turn, can merely send over information regarding which slots are constrained and how. The client device may include a web-browser, via which it can communicate with the 
inference engine over 
the Internet.