Reasoning Capabilities

An important aspect of an artificial cognition system is its capacity to make deductions from its knowledge, in particular in response to a user question. We are working initially on the easiest problem which is answering relatively simple numerical questions for which we have used the STUDENT word algebra algorithm as a starting point (Bobrow, 1964) which we have improved and added the NLTK Lemmatizer for variable resolution, among other things. The system now uses our own tags though it currently process the text in its original standard English form. The following is a selection of the type of question that Rachael is now able to answer:

  • 0. y plus 3 percent of y = 103(1/(4*100)+0.75/100). what is the value of y?
  • 1. How much is 3 times 2?
  • 2. 'if p=5, what is 2*p*9+25?'
  • 3. 'Tom has twice as many fishes as Mary has butterflies. If Mary has 3 butterflies, what is the number of fishes that tom has?'
  • 4. 'John has three times the number of apples Jane has. Jane has 4 apples. How many apples does John have?'
  • 5. 'y plus 3 percent of y equals 23. what is the value of y?'
  • 6. 'John has 3 apples, 2 bananas and 3 oranges. Mario has twice as many apples as John. What is the number of apples Mario has?'
  • 7. 'The number of pencils Jane has is one half of the number of pens she has. She has 6 pens. What is the number of pencils Jane has?'
  • 8. 'Jan has 7 cookies. Steve has 3 cookies. How many more cookies does Jan have than Steve?'
  • 9. 'If (n-2)*(n/(n-4)(n-2))=25, what is the value of n?'

Rachael is able to obtain relevant contextual knowledge by using its general cognition engine, and many questions are of the logical sort rather than merely requiring parsing, translation and direct solving. For this kind of problem we are currently working on adding the E theorem prover from the Technical University at Munich. Of course, a critical problem with provers for practical applications often is the gathering of all the axiomatic clauses needed to be able to prove a given conjecture. Since we have a 30,000 words scientific dictionary and can access relevant contextual knowledge, we are quietly confident that the resulting system will be able to successfully resolve a wide range of questions.

E theorem prover examples:

  • 1. 'John is a man. John's daughter is Jane. Jane's son is Sam. John's uncle is David. who is the grandfather of Sam?.'
  • 2. 'Odie eats 3 fishes. Garfield eats lasagna everyday. When does Garfield eats lasagna?'
  • 3. '3 is bigger than 4. What is bigger, 3 or 4?'
  • 4. 'Nikky is taller than Jane, but Jane is taller than Iona. Who is the shortest?'
  • 5. 'Garfield is a cat and Odie is a dog. John is a human. Debbie is not a human. Who is a human?'
  • 6. 'Odie is smaller than Lula and Lula is smaller than Rosy. Sammy is bigger than Rosy. Lukas is smaller than Odie. Odie is a dog. Sammy is a cat. Lukas is a cat. Rosy is a dog. Which cat is smaller than Lula?'

Bobrow, D. G., "Natural Language Input for a computer problem solving System", PhD Thesis, MIT, 1964.

"E" Theorem Prover