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.