From UBC Wiki


Authors: Mehryar Maalem, Geordie Parappilly

What is the problem?

Being able to chat with an artificial intelligence for the purpose of casual boredom or for getting immediate information is a feature in today’s world that can be capitalized in a number of ways. Inspired by ELIZA Wikipedia. We hope to create a conversational chat bot that you can converse with. Additionally, similar to a traditional personal assistant (Siri/Google Assistant) etc. We aim to also be able to ask it basic questions like "What is the weather forecast" as well. Given the NPL capabilities of Prolog, we are looking to explore whether prolog is an adequacy of its use to create simple Artificial Intelligence agents.

What is something extra?

- The difficulty is for our program to be able to respond to the user in a "natural way" as well as understand a wide variety of inputs that are possible. - Is to be able to have a decent user interface, instead of having the user input coming in as a list of words. (like our assignments)

What did we learn from this?

Overall, we have found that creating a bot is a relatively easy task in Prolog. As seen in our code, a decent, usable bot was created with relatively simple and concise code. The power of pattern matching and NLP that prolog provides, helps implement various (User Input/Output) situations concisely. To build on our project, various ideas could be:

  • Creating random responses to common inputs.
  • Being able to add facts about the user (something that we could not finish in the time frame f the project). For example, it could learn about the user's name etc. For example, if you use the chatbot again. It could greet you with "Hello, John". (John being a random user name)
  • As our bot is meant to hold a conversation, rather than being a simple assistant. It would be cool for the bot to recognize a "boring" conversation and ask a question.