Git Product home page Git Product logo

kgniewek / prologculinaryrecipesystem Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 59 KB

This collaborative project combines Prolog and Java to develop an Expert System that helps users check if they can prepare dishes based on available recipes. It features querying for dishes, displaying recipes, and ingredient verification, demonstrating a practical application of integrating multiple technologies.

Prolog 98.36% Java 1.64%
collaboration file-handling group-project java prolog expert-system 2022

prologculinaryrecipesystem's Introduction

2022 Group Prolog Project

Prolog Culinary Recipe System

Project Description

This project involves the creation of an Expert System (SE) developed in Prolog, which assists users in determining if they can prepare a dish based on the recipes available. The system allows for the querying of available dishes, displaying recipes, and checking for necessary ingredients using user input. It leverages data prepared from an existing dataset of recipes and ingredients, providing a practical application of Artificial Intelligence in the culinary domain.

Technologies / Tools Used

  • Prolog: Primary programming language used for creating the expert system logic.
  • Java: Used for pre-processing data files to make them suitable for Prolog consumption.
  • File Handling in Java: Managing and transforming recipe data.

Team Collaboration

This project was a collaborative effort involving three team members. It provided a valuable experience in IT project management, including task division, integration of individual contributions, and effective teamwork. Our collaboration concluded with a presentation showcasing our achievements in this project.

Key Features

  1. Listing Dishes: Users can query the system to display a list of all dishes for which recipes are available.
  2. Displaying Recipes: The system provides the recipe for any selected dish.
  3. Ingredient Check: Upon querying about a dish, the system interacts with the user to check for the availability of required ingredients.
  4. Memory Feature: The system remembers previously confirmed ingredients, reducing redundancy in subsequent queries.
  5. Customizable Ingredient Queries: There is an option to adjust which ingredients the system should inquire about, allowing for flexible user interaction.

Files Included

  • projekt.pl: Main Prolog file containing the logic for the expert system.
  • all_ingredients(sample).txt: Sample list of ingredients.
  • content_of_recipes(sample).txt: Content details for recipes.
  • ingredients_of_recipes(sample).txt: Mapping of dishes to their ingredients.
  • ingredients_of_recipes_alt(sample).txt: Alternative ingredient listings.
  • src/FileHelper.java: Java utility for reading and writing ingredient files.
  • src/Main.java: Main Java file to execute file handling operations.

Project Setup and Execution

To run this project, ensure Prolog and Java are installed on your system. Start by processing the data files using the Java program in the src directory to format them appropriately for Prolog. Then, load the projekt.pl file in your Prolog environment to interact with the system.

Data Handling

The project uses pre-existing recipe and ingredient data, which was parsed and prepared using Java. This preprocessing was necessary to ensure compatibility with Prolog's requirements and to streamline the user experience within the expert system.

Project Structure

  • ๐Ÿ“ root
    • all_ingredients(sample).txt
    • content_of_recipes(sample).txt
    • ingredients_of_recipes(sample).txt
    • ingredients_of_recipes_alt(sample).txt
    • projekt.pl
    • ๐Ÿ“ src
      • FileHelper.java
      • Main.java

Conclusion and Presentation

The project culminated in a successful presentation, where we demonstrated the functionality of the system and discussed our learning experiences regarding teamwork and the application of programming skills in a real-world-like scenario. The feedback was incorporated to refine the system further.

prologculinaryrecipesystem's People

Contributors

kgniewek avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.