Inspiration

My dad had this idea. The tools we have today for searching the Bible are great, but they are largely keyword and topical search based, which makes it infeasible to ask questions in natural language form about issues important to people's personal lives (i.e. culturally relevant questions), which may not appear in the Bible in direct language. We need a new search engine to enable anyone to ask a culturally relevant question and get a meaningful response directly from the Scripture. This would do 2 things: help Christians grow their faith and be an evangelistic tool for non-Christians who have little or no Bible knowledge. Done right, with the right resources, it could be one of the best tools for understanding what the Scripture really says.

What it Does

For this hackathon project, we built a webpage (running locally), which can accept a question. When the user hits the 'ask' button, this is processed using a simple algorithm to extract some words of interest and related words to those. Those are then compared to a database of topics in the Bible and the verses associated with them, scored through crowdsourcing. We return the top 5 verse results in a bar chart, where the longer the bar, the higher the score of that verse.

How We Built It

The system is composed of a local webpage built using HTML/CSS/JS using Bootstrap JS, and a "backend" of Python. The two pieces are connected using the Flask framework. Christie built the web page with logic to send the question to the Python code and display the returned answer in a chart. Larry already had a portion of the Python code built before, but much was added, particularly the part that queried the Natural Language Processing API we used, called TextRazor. This pulled out words of interest from the question and gave us related words. Christie found the OpenBible.info database, which the author built through crowdsourcing, and Larry coded the connection to it and ranking. It is just a text file, so it is a very simple form of database.

Challenges We Ran Into

It being a hackathon project, and neither of us being experts at the pieces we were working on, there was a fair amount of effort simply to know how to put the code together with the various components. We also ran into an issue with getting Python running on one of our machines which took a lot of development time away. But in the end, it all came together praise God! We were unable to get the Digital Bible Platform connection working in time, so we just displayed the verses with a hyperlink to their text on BibleGateway.org.

Accomplishments That We're Proud Of

We're proud to have actually developed a functional project within the short time of the hackathon! All the components came together in the end and we learned some new things. Although the actual results you get back are not very accurate in answer to your question, we successfully incorporated the web site, the NLP, the database, and the processing, to show the flow of how a real-world system would work.

What We learned

Larry increased his Python experience and Christie enhanced her knowledge of web development which she had been learning. The TextRazor API was new to both of us and Larry learned a little how to use it. We also learned there are some pretty knowledgable and neat people at the hackathon!

What's Next for AskGod

By the end of 2017, the goal is to have an enhanced version of the webpage running in an actual production environment. A rudimentary algorithm will be developed, backed by a dataset of predetermined questions and answers so that if a user asks one of those questions (or something very similar), they will get back the answer we have in our database. This will utilize a better usage of NLP than what was used at the hackathon, to understand what the user is asking, and match that to our "buckets of understanding" in the database. Such a system lays the groundwork for a more open question answering system.

Hashtags: #C4TK, #c4tksanfrancisco

Slack channel: prj-askgod

Slack usernames: larrywalters

Built With

Share this project:
×

Updates