From UBC Wiki

Authors: Hiroki Koketsu, Samad Usmani

What is the problem?

We will try to create a small application Pill-Reminder which can store pills' information by user's input and suggest which pills to take today and which pharmacy is nearby.

From a headache to severe diseases, people rely a lot on pills to get through the day. It is easy to forget taking important pills or forget if you already took a pill. As a result we are interested in building a query system which let’s you keep track of your pills based on days or if you have already taken a pill at a specific time on that day.

What is the something extra?

We will use database function of prolog [1] to store pill information so that users can retrieve and update anytime and do not lose their entries. We will examine if Prolog is suitable for structuring relational database on its own, and 1-n relationships.

Also, we will try API handling to suggest nearby pharmacy by using Google Place API. We will examine if multiple API handlings are easy with the pattern matching feature of Prolog.

What did we learn from doing this?

The same project was done in CPSC 210 using Java (OOP). Using logic programming language definitely has its ups. The abstraction was easier and cleaner. It was easier for this task to create a hierarchy as compared to other languages. It was easier to organize code. It was a good aspect that we can create an enormous function and define the components' details later on. The testing of each helper functions was easy. Overall it took lesser time to achieve same functionalities using prolog. The syntax is straight-forward. We further learned about the I/O handling, database libraries like persistency and many other aspects of the language which gave us a clear picture of how and where the language should be used.

Links to code etc