From UBC Wiki


Name: BirdWatcher Authors: Adam Magdurulan, John Park, Theodore Lau

What is the problem?

State the general problem. If applicable, tell us what information you will use, e.g., a link to some web site that provides the information you used.

Vancouver is home to many diverse species of birds. You may have already spotted a few of these species while traveling around Vancouver, but was unsure as to what species of birds they belonged to. In order to fix this problem, we propose a program that will identify the birds, based on user inputs such as the color of the bird, the shape of the beak, the size of the bird, and where the bird is most commonly found. All the information will be based on "Map-Guide to the Common Birds of Vancouver" by Bird Studies Canada. (

What is the something extra?

What is the in-depth aspect you will do? If the problem is related to some other groups, tell us how they fit together. If in doubt, include it.

The program can tell the user a list of birds, colors, beak-shapes, sizes, and locations. The program can give you a list of birds with specific attributes such as color, beak-shape, size, and location found. The program can generate a list of birds based with a specific beak-shape, color, size, and location. For example, asking "What is a bird that lives in Stanley Park?" Or, "What is a bird that has the color orange?"

What did we learn from doing this?

What is the bottom-line? Is logic programming suitable for (part-of) the task? Make sure you include the evidence for your claims.

Yes, it is suitable for this project. Our problem was based on basic true/false questions, that fact checked what birds had a certain characteristic. Our program works on expressing rules and facts and didn't have any further functional or operational needs, because our domain was mainly static. Overall, from this study we found that while logic programming can be used in writing Natural Language question and answer programs very well, but there are issues when it comes to scalable and dynamic programs.