Course:Cpsc312:mbti.pl

From UBC Wiki
What is the problem?

The primary objective is to develop an MBTI (Myers-Briggs Type Indicator) diagnostic tool tailored for users to discover their personality type through a web-based application. Users will answer a series of questions related to the four dichotomies of MBTI: Introversion/Extraversion, Sensing/Intuition, Thinking/Feeling, and Judging/Perceiving. Based on their responses, the tool will classify them into one of the 16 personality types. Challenges include the implementation of an efficient and user-friendly web interface in Prolog, integrating the logic for accurately determining the personality type from the user's answers, and handling the complexity of storing and processing the MBTI-related data.

Implementation

Repository here: https://github.com/Billy1106/Prolog-mbti

Something extra

The web-based interface provides a seamless experience for users to interact with the tool and receive their personality assessment. Furthermore, the application will allow users to explore detailed descriptions of their personality type, including strengths, weaknesses, career suggestions, and compatibility with other types. A significant challenge lies in enabling a conversational interface that guides users through the questionnaire, possibly employing natural language processing to make the interaction more engaging and intuitive.

What did we learn from doing this?

We attempted to build a web application using a procedural paradigm, but when we redesigned the main query to be recursive to fully utilize the features of Prolog, it became incredibly difficult to construct the API server. Moreover, rewriting the logic from scratch would mean abandoning the characteristics of Prolog, so we gave up on the idea of making it work as a web application.

However, we learned about the unique paradigm of logic programming with Prolog, including its characteristics, when it should be utilized, and when it should not be used.

Work division

Kenshin - add dataset, make it web

Ryota - add dataset, add main logic,