Key Information

The challenge is finished.

Challenge Overview

Have you heard about the IBM Watson challenge series we organized for St. Valentine Day? Are you interested in Cognitive software solutions but not sure how to start because it looks complex? You are in the right place! Alongside the prized IBM Watson challenges this February, we organized a series of smaller and easier challenges that will introduce you to different services provided by Watson. There is no a better way to learn a new technology than to try this technology on a simple but real problem!

If you don't have IBM Cloud Account yet, please register it via this link; also consider to join the renovated Topcoder Cognitive Community, if you have not already.

To make participation in these educational challenges even a bit more interesting, we offer some prizes:
  • $1000 will be given to the member who has completed the most of these educational challenges (six in total). In case there are few such members, this prizes will be equality divided among them;
  • Additionally, ten prizes, $200 each, will be randomly distributed among all members who have completed any of these educational challenges. During this random draw, your chance to get a prize will be proportional to the number of challenges you have completed, e.g. if we draw between just three competitors who have completed 1, 2, and 3 challenges each, their chances to be drawn will be: 16.7%, 33.0%, 50.0%.
And, as you might know already, this is the last challenge in the series, we'll distribute the prizes right after this one! :)

In this challenge we want you to use Watson's Conversation Service to build a chatbot that helps to order a salad. To make it a bit more interesting, we require you to ensure that your bot is capable of the following, which might be a bit tricky to do at first, but it is a good exercise (and there are plans that we gonna have much more new chatbot challenges with IBM Watson soon):
  • Chatbot should ask me one question after another: what primary ingredient, what secondary ingredient, and what sauce I want in my salad. My answers should be stored in the conversation context state object, and repeated back to me in the end of the order.
  • At any point of conversation I should be able to ask the bot, what ingredients / sauces can I choose from, and also I should be able to ask what is the specific ingredient / sauce (as the answer for each of them, you can just copy/paste a sentence about that ingredient from Wikipedia).
  • The bot should remember my position through the order process, so after I have got my reply about ingredients, I expect to continue with my order from where I was. Also, I should be able to ask the bot to start from the very beginning at any moment. The bot should also greet me in a nice way, and answer the general question like "what can you do?" / "how can you help me?"
A small hint: if you think, it is difficult to implement such non-linear, badly structured, dialog flow with the Watson dialog tree; try to approach the problem the following way:
  • Design the context state so that all state of the conversation / order is stored there at any time
  • Use the dialog tree as a decision tree, i.e. each time the bot has to react on user input, let it start from the root, evaluate the context in each node, thus going to a tree-leaf, and reply to the user in the leaf (this way, the next reply from the user will be evaluated starting from the root again). This way you don't run into a problem like "I have a dialog sub-tree that replies about ingredients, and another sub-tree that handles the order, but to freely jump between them I have to add tons of conditional redirections".
Anyway, it is still an educational fun challenge, so it if turns out to be a too tough ask, we can take some issues in your submissions easy; and also feel free to discuss problems / approaches in the challenge forum.

Final Submission Guidelines

Submit conversation workspace, and a brief demo video of your bot in action.


2018 Topcoder(R) Open


Final Review:

Community Review Board


User Sign-Off


ID: 30063442