Use a semantic parser and a reasoner to solve questions posed in natural language

Allikas: Lambda

This lab option builds upon the main part of the second lab.

The lab option can be conducted on Linux only. The task is to experiment with the research platform for hybrid reasoning, which is currently performing pure symbolic reasoning with natural language input.

Your task is to get the system to use the facts and rules you designed in the second lab, to answer questions posed in natural language.

Since the system can understand a very limited subset of English, and will convert English to logic in a very specific way, you need to first get some understanding of the way it converts English to logic.

Your concrete task is the following:

  • Formulate your rules, facts and questions from the second lab to the json format understood by the gk reasoner in nlpsolver and get to the point where it can actually answer an interesting set of questions.
  • Pose your question and several rules in natural language and observe how are they translated to logic. Then (a) modify your rules to make them successfully parseable by the system and/or (b) directly formulate the rest of the rules in logic, while keeping the question in english. Do this until you succeed to answer some questions.
  • Finally write a report about (a) your successes and failures, with concrete examples and short explanations of what probably went wrong and why something worked, (b) a brief overview of your work: how did you start, what worked, what failied, which changes did you make.

Importantly:

  • Start with a very small set of facts and rules (just like two or three) and a trivial question. When you get this to work, then extend the set of facts and rules.
  • Assume that getting something to give a correct answer is hard: initially everything will fail, until you find a way to write the facts/rules/questions in a suitable way.
  • Use a mix of logic and natural language liberally: do not attempt to present everything in English, while still attempting to give a few facts and rules in English. It is initially easier to write logic in a suitable way than it is to write English in a suitable way.