This post is not maintained.
Please check my blog post at : http://dhruvb.com/blog/node/2 for more updated details
Originally, I used to call it “Natural Language to SQL Translator”, but I guess what I intend to do at this point of time is not Natural Language, it is rather a specialized syntax, which I guess can be further extended to natural language. Let me make a thing clear, about the system :
- It is something which the user sees, and types a query in, it has nothing to do with the data-related operations in a database.
- The only time it deals with data, is when the result-set is generated and given back to the system, so that it can be post-processed into a better manner.
I have been developing a Paper Conference Management System for an International Paper Conference which is conducted in our college, and there are various queries and reports which are to be generated, but considering the modularity of the software architecture and the normalized databases, the SQL queries tend to become bigger and bigger and making it difficult for the user who doesn’t know the database schema to generate reports.
For example, a SQL query to get the details of authors who have paper in track “Database Engineering” :
SELECT authors.id, users.name
WHERE users.id = authors.id AND
authors.id = author_paper.author_id AND
papers.id = author_paper.paper_id AND
papers.track_id = tracks.id AND
tracks.name = “Database Engineering”;
but with the system in-place, it would look something like :
get author details having track(name = “Database Engineering”);