Travel Destination Recommender

From UBC Wiki

What is the problem?

Our plan is to build a travel destination recommender system that can determine possible destinations the user would like to go to based on certain questions regarding their preferences. This will give us a chance to learn a lot more about Prolog and its capabilities in terms of using it as a database to query certain information, based

on a set of inputs or preferences. For example, the user could query destinations that are considered to be 'affordable' or 'expensive. The application will also consider countries that the user has already been to, so that it will not re-recommend these.

What is the something extra?

We will try to integrate a way for the user to query the database with more general information like tags. This allows them to give the application a set of information about where they'd want to go, as well as possible specifics about certain countries that they'd want to visit. More specifically,

they can query the database to recommend countries that are affordable in Asia, that have the tags 'beach', which is very specific.

What did we learn doing this?

This project taught us a lot about the strengths and weaknesses of Prolog. We were able to effectively filter through the database that we had to return a list of countries that satisfy different conditions that we have allowed the user to input. It also allowed us to effectively recommend countries

that the user has not already been to since the application takes in a list of countries they have already been to. These set of rules that we have defined made it very logical and easy for people to find the right travel destination, based on the different characteristics of each country like cost, climate, and activities.

For the weaknesses of Prolog, one main thing that seemed to come up is the GUI. With some remaining time for the project, we tried to implement a GUI so that the querying of the database would be more pleasing/aesthetically appealing. However, after much trial/error and research, we discovered

that implementing a GUI is rather time consuming and challenging, given the timespan of this project. We would have to rely heavily on the integration of other programming languages & frameworks to build this GUI, instead of merely using Prolog. The GUI would've made the application

much nicer and pleasing to the user.

Links to code, etc