Skip to the content.

Modular DBpedia Chatbot GSoC 2021

Hello everyone, I am Jayesh Desai.
I am very happy to announce about my selection in Modular DBpedia Chatbot for GSoC 2021. This will be my first GSoC project and I am very excited to work on this project Thank you Andreas Both, Aleksandr Perevalov, Ricardo Usbeck, and Ram Athreya for giving me this opportunity excited to work with you all!

Google Summer of Code 2021 Modular DBpedia Chatbot Project link: link
Tutorial link: link

Table of Contents

GSOC Community Bonding period
GSOC Coding period
Week One
Week Two
Week Three
Week Four
Week Five
Week Six
Week Seven
Week Eight
Week Nine
Week Ten
Week Eleven

GSOC Community Bonding period

[06/03/2021] I had a first meeting with almost all mentors/students and got to know about all the diffrent projects of this year
[06/04/2021] I had my first meeting with my mentors, During this first meeting, we have done self-introduction and looked to a overview of the project and decided to meet every week to show the progress of the project and to discuss about next steps and I am so glad to know my mentors and I will have a great journey of GSOC in this summer!

GSOC Coding period

Week one

Today is first day of first week I have gone through several documentations on Qanary framework to understand more about it and to start with the project we decided to work on this three category first
1) Basic conversation
2) Configure settings
3) Question answer system

So in Basic conversation there will be intents like Welcome intent, Fallback intent, Smalltalks and DBpedia questions like What is DBpedia? How to contribute to DBpedia?

Configure settings contains intents like (de-)activate components (this status needs to be stored) and Get information about the current Qanary pipeline configuration intent

Finally in Question answer system I need to create a intent which saves the user questions and send it to Qanary via API and after the whole qanary process it gives us the answer of the given question then we have to show it via dialogflow.

[6/7/2021] Created GitHub repository
[6/7/2021] I have created below intents
1) Basic conversation
Welcome Intent
Fallback Intent
2) DBpedia questions
What is DBpedia?
How to contribute to DBpedia?
Later today I have added suggestion chip response to both of the DBpedia questions

[6/8/2021] Learning how to connect Webhooks to Dialogflow!

[6/9/2021] I have successfully implemented webhook tutorial Link of tutorial Link

[6/10/2021]Learning how to connect External API like weather API to DialogFlow just for practice….

[6/12/2021]Uploaded code to heroku so no need to turn on ngrok everytime when to test chatbot

Week two

I had a meeting with my mentors at the end of week one and decided to work on 5 issues this week which are on github check Link
[6/14/2021] …
[6/14/2021] Checking all possible options to do RDFvisualizations and SPARQL visualization that can be integrated to chatbot
[6/15/2021] Checked demo of Qanary chatbot UI Link and understood how it works like component list and all
[6/17/2021] Ran automated test using botium

Week three

[6/22/2021] Trying to visualize graph using pyvis library
[6/23/2021] RDF Graph visualization is working now and hosted to Heroku
[6/24/2021] Connected Qanary webservice
[6/25/2021] Used Fallback Intent to get the question from user to send to Qanary

Week Four

[6/28/2021] Added user sessions so each conversation for component list will be unique
[7/3/2021] Made RDF Graph visualization dynamic

Week Five

[7/6/2021] Fetched list of Qanary components from Qanary framework in every 15 seconds it updates the list of components
[7/7/2021] Added intent for user cannot ask for reload component for for then 10 times otherwise it will give a 30 second timeout
[7/9/2021] Used Fuzzyset library so now no need to use Dialogflow entity Advantage of using fuzzy set library is now no need to update Dialogfloe entity every time when there is some new component in the live list of Qanary components

Week six

[7/12/2021] Updating the Dialogflow modeling so that the Qanary components names are not part of the configuration
[7/14/2021] Optimize Intent map and code
[7/16/2021] Use camelcase everywhere and move all Intent functions to a seperate file

Week seven

[7/19/2021] Add “start with” Intent so that user can search components by alphabet or by word
[7/21/2021] Change the reset component logic
[7/23/2021] Add activate profile Intent

Week Eight

[7/26/2021] Add suggetsion chip reponse to suitable Intents and add support for Google Assistant App
[7/28/2021] Create a new blogpost tutorial
[7/30/2021] Add docker files

Week Nine

[8/2/2021] Get QANARY components as part of application startup
[8/4/2021] Create a custom component profile
[8/6/2021] Fix python file and get rid of global variable

Week Ten

[8/9/2021] Add activate,remove,add,show profile component Intents
[8/11/2021] Remove hard-coded configuration from RDF-Vizualization file
[8/12/2021] Create a JS method for querying Qanary triplestore
[8/13/2021] Added new commands to remove all components from list

Week Eleven

[8/13/2021] Work on documentation
[8/16/2021] Add wiki page