Course:CPSC312-2016-Project1-EaterMeter

From UBC Wiki

Eater Meter

Authors: Wenyue (Wenny) Jiang, Michelle Kong

What is the problem?

Are you having problems balancing your diet with the right amount of vegetables, protein, and fiber to allow you to be a strong and healthy computer scientist? Look no further than the Eater Meter!

Nutritional information sources:
Health Canada's Food Guide: http://www.hc-sc.gc.ca/fn-an/food-guide-aliment/basics-base/quantit-eng.php
Recommendations will be based upon user's age and sex.

United States Department of Agriculture: https://www.ars.usda.gov/northeast-area/beltsville-md/beltsville-human-nutrition-research-center/nutrient-data-laboratory/docs/sr28-download-files/ , (Abbreviated Excel file, used data under "GmWt_1" column).
Serving sizes of general foods were averaged as food items are very specific (e.g. over 20 varieties of oatmeal that are brand-specific or different flavours). These serving sizes were used in the knowledge base as facts.

What is the something extra?

Given a list of the food you consume normally, the Eater Meter will provide you with a new balanced diet plan based off of your current eating habits. Use can dietary restrictions, food allergies, foods they prefer not to eat for a better user experience. Depending on the query, the user can ask for a recommended list of interesting foods or recipes. This makes eating your recommended servings of food more exciting!

What did we learn from doing this?

We learned that it is very important to have access to an extensive database of information in order retrieve meaningful query answers. By learning this, we discovered that there are extensive database of a variety of information available online.

Logic programming with rules is generally suitable for finding out if your current diet is balanced. It is best suited for someone who has a restrictive diet where they measure how much the food items weigh, as this data is required to calculate how many servings the person is currently consuming. The recipe suggester is also a great feature because some people who are struggling to eat their appropriate servings of food each day may not know what to eat. By showcasing interesting recipes, it promotes the user to explore more recipes they may enjoy. One downfall of Eater Meter is that it is restricted to the food and recipes currently in the knowledge base, so the user is restricted to input food items that are found in the database. The knowledge base can be customized to the user's own of preference of food and recipes. Another downfall of implementing Eater Meter with Prolog is that it can take very long for query answers to be retrieved when the answer is a long list.

Example: Parent of a three year old child is not sure if they are eating the Health-Canada recommended number of servings of each food group. Based on the input of food the child currently eats and what food they do not consume, Eater Meter suggests a new food plan and a list of recipe suggestions in order to eat a balanced diet which incorporates the four food groups.

Age (End input with a period): 3.
Sex (m. or f.): |: m.
Enter a list of food you consume normally (in order of most favourite to least favourite) in the format '[food(Food, Amount),...].': |: [food(cereal,75),
food(milk,300),food(strawberries,200), food(chicken,100), food(spinach, 100)].
Enter a list of food you cannot consume in the format '[Food1, Food2, ...].' or '[].' if you have none: |: [apple].
Eat the following food to meet your daily servings:
Ans = [food(cereal, 110), food(milk, 490), food(strawberries, 203), food(chicken, 87.5), food(spinach, 168), food(apricot, 169.5), food(apricot, 169.5), food(bagel, 71)],
Recommended_Recipes = [fruits_with_cereal, meat_and_veg_stir_fry, apricot_tart, bagel_with_fruit] .