CIS 551/451 Extra
More Meaningful Query Interface
Due: Friday, Dec 8



Provide a more meaningful (Or we can call it 'smarter') query interface for the database you developed. This query interface can provide a way for users to ask questions (queries) in natural language (i.e. English). For example, if you have developed a database which stores the information about computer science textbooks. It's very possible that users want to ask "How many kinds of textbooks on Network you have?", "Which one is the cheapest textbook on Complier published by McGraw Hill?" and so on.

The basic goals of this project you should consider include, but are not limited to

  1. Natural language input

    The users just need to input queries in natural language. Based on the specific domain (e.g. computer science textbooks) of your database, you should make reasonable guesses about what kind of questions users may ask.

  2. Translation

    Your interface needs to understand the meaning of questions in some way, then translate the English questions to the queries in the formal query language (e.g. SQL) of your DB. (Hint: You may need to find the keywords (e.g. "how many", "which", "cheapest") based on the domain and your guesses. Then construct the mappings between your keywords and formal query language (SQL) keywords (clauses).

  3. Answer displaying

    Display the answer to users in natural language too.

It looks like a 'smarter google' (which doesn't exist so far, the current google just lists the web links related to the words you input. However, google does make some guesses). The difference is: The 'smarter google' suppose can exactly answer questions related to all domains. In this project, you just need to think about the database you created and it should be related to only one or several specific domains. Your interface are not required to understand and answer all questions the users may ask, just let us see how smart it is. Have fun!