Giter Club home page Giter Club logo

trabalho-sbc's Introduction


Universidade do Minho Escola de Engenharia
Departamento de Sistemas de Informação

Projeto Prático SBC - MIEGSI 2020/2021


Índice de conteúdos

Introdução

No âmbito da unidade curricular de Sistemas Baseados em Conhecimento, foi-nos proposto a conceção de um SBC implementado na linguagem Prolog, estando a mesma dividida em 2 tarefas com 2 partes cada uma, tendo por base o conceito de food delivery, tão em voga no último ano decorrente da situação pandémica que vivenciamos.

Tarefa A - Aconselhamento para compra de uma refeição

Dentro do conceito de fooddelivery, take away & drive-in, pretende-se elaborar um SBC para aconselhar sobre a escolha e compra de uma refeição(com entrega em casa ou take away). Através de uma interface desenvolvida em python com auxílio do interpretador de Prolog Pyswip, é possível fazer pesquisas na nossa base de conhecimento Prolog usando o WhatsApp.

Parte 1 - Aquisição manual de conhecimento

Nesta fase foram usadas técnicas de aquisição de conhecimento manual (Pesquisa e entrevistas) para a conceção de regras de produção manuais.

Parte 2 - Aquisição automática de conhecimento

Nesta segunda fase foi desenvolvido e partilhado um formulário usando o Google Forms. A respostas foram depois descarregas para o ficheiro pratos.csv. Foi depois escrita uma pequena script em R que gerou regras de produção de forma automática, que pudessem ser usadas pelo Prolog.

Pré-requisitos

Getting started

Quick-start

Start your server

python app.py

Expose your server to the world

npx localtunnel --port 5000

Configure your Twilio Sandbox

Twilio Sandbox

Join the Twilio WhatsApp Sandbox

Send a WhatsApp message to Your sandbox WhatsApp number with the correct Sandbox join code

Join the Twilio WhatsApp Sandbox

Installation

Add SWI-Prolog to the PATH environment variable

Clone the repo

git clone https://github.com/nonvegan/trabalho-sbc.git

Install all the dependecies

pip install flask pyswip twilio python-dotenv

Configure your .env file

TWILIO_USER=twiliouser
TWILIO_TOKEN=twiliotoken
TWILIO_PHONE=whatsapp:+123456789
PHONE=whatsapp:+351123456789

Usage

  • Type a message with the keyword !dish.
  • Answer the quick survey.
  • Wait for your dish suggestion.
  • Message either !manual or !automatica to switch the type of the knowledge base.
  • Type !dish to start over.

Bot

Tarefa B - Aconselhamento de trajeto para entrega de uma refeição

Desenvolver um SBC para um estafeta que usa uma scooter como meio de transporte que trabalha para um sistema de entrega de um restaurante. O SBC deve aconselhar que encomendas o estafeta deve pegar no restaurante e qual o caminho a seguir para proceder às entregas. Optamos por desenvolver uma webapp com o auxílio do interpretador Prolog em JavaScript Tau prolog como interface para o nosso SBC.

Parte 1 - Resolução via Procura

Nesta parte foram desenvolvidas as funcionalidades de procura para o objetivo 1 (a scooter só pode levar uma encomenda de cada vez) e 2 (a scooter pode levar uma ou duas encomendas de cada vez), podendo o utilizador escolher depth-first, iterative-deepening e breath-first como métodos de procura. Publicamos o nosso SBC na web através da plataforma Netlify no endereço https://projeto-sbc-g53-parte2-miegsi-2021.netlify.app

Parte 2 - Otimização do lucro, tempo ou ambos

Nesta parte foram desenvolvidas as funcionalidades de optimização usando o método de hillclimbing para o objetivo A (maximizar o lucro), B (minimizar o tempo do percurso) e C (maximizar 0.8lucro+0.2(20-tempo)).

Pré-requisitos

Getting started

Quick-start

Clone the repo

git clone https://github.com/nonvegan/trabalho-sbc.git

Serve the static files

serve webapp -l 80

Usage

  • Select the running mode( 1 or 2 deliveries)
  • Select the searching mode
  • Click search

Procura

Ferramentas

Licença

Distributed under the MIT License. See LICENSE for more information.

Equipa

  • Pedro Magalhães
  • Álvaro Ferreira
  • André Gomes
  • José Carvalho

Reconhecimentos

Referências

  • Cortez, P. (2018). Exercícios Resolvidos em Prolog sobre Sistemas Baseados em Conhecimento: Regras de Produção, Extração de Conhecimento, Procura e Otimização. Teaching Report, University of Minho, Guimarães, Portugal.
  • Cortez, P. (2015). A tutorial on the rminer R package for data mining tasks. Teaching Report, University of Minho, Guimarães, Portugal.
  • Bratko, I. (2012). Programming in Prolog for Artificial intelligence. Pearson Education, 4thedition, Harlow, England.
  • Wielemaker, J., De Koninck, L., Fruehwirth, T., Triska, M., & Uneson, M. (2014). SWI Prolog Reference Manual 7.1.

trabalho-sbc's People

Contributors

nonvegan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  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.