Course:CPSC312-2016-Project1-TheCuriousQuestioneer

From UBC Wiki

Group Members: Ida Mattsson and Justin (Yi Ting) Song.

What is the problem? - Final Version
The way the Curious Questioner ended up functioning, is obtaining information from the decomposition of an input sentence. The Curious Questioner then generates output questions using the elements from the information. When working on the project, we decided to shift our focus from being able to process a wide range of inputs corresponding to information in a database, but instead worked on two question types (tag questions and reciprocal questions), that are of the correct grammatical form in subject-verb agreement.
The way we implemented tag questions was of the form "I like oranges, don't I" whereas the reciprocal question asks a question back at the person making a statement, such as "I like oranges, do you?".

What is the problem? - from project proposal
We want to create a feature for an AI that generates different types of questions based on an input statement. The problem is how we can parse and interpret a language tree in order to create a grammatically correct response output.
Input would be for example "I like oranges.", and "Leonardo DiCaprio starred in the movie Inception."

The corresponding output would be for example (from project proposal):
"I like oranges, do you?"
"Do you like oranges?"
"Don’t you like oranges?"
"What kind of fruit do you like?"

"Who starred in the movie Inception?"
"Do you know of Leonardo DiCaprio?"
"Did Leonardo DiCaprio star in the movie Inception?"
"Leonardo DiCaprio starred in the movie Inception, didn’t he?"
"What other movies have Leonardo DiCaprio starred in?"

What is the something extra?
We changed our something extra in the process of completing the project, by choosing to focus on building an expandable base for a language parser and generator, rather than the range of information that the system can handle. The most significant extra that we worked on was the ability to correctly check and output questions that are of the correct grammatical form, with a focus on subject-verb agreement. Since we built an extensive logic for a set of grammatical relations, the program could be effective as a part of a larger natural language processor.


What did we learn from doing this?
Logical programming is suitable for our task, which includes decomposition of natural language and determining object relations. The types of questions that we initially intended for the Curious Questioneer to process, depended heavily on the complexity of the sentence, especially the relationship between grammatical structure and object relations within the input sentence. For example, if we want to generate "What other movies have Leonardo DiCaprio starred in?" from the input "Who starred in the movie Inception?", we would need to access both grammatical relations, and relationships concerning the movie-star Leonardo DiCaprio. Achieving this objective would be possible by access to an extensive database of knowledge about the world. Instead, we decided to limit the scope of our project to working with generating perturbations in the structure of the input sentence that remain grammatically correct. It would be feasible and very interesting to expand the current program to include object relations, in order to be able to parse a wider range of input, and generate a wider variety of questions.