We have seen how useful it is to harness the power of a computer to process text on a large scale. However, now that we have the machinery of parsers and feature-based grammars, can we do anything similarly useful by analyzing the meaning of sentences? The goal of this chapter is to answer the following questions:
How can we represent natural language meaning so that a computer can process these representations?
How can we associate meaning representations with an unlimited set of sentences?
How can we use programs that connect the meaning representations of sentences to stores of knowledge?
Along the way we will learn some formal techniques in the field of logical semantics, and see how these can be used for interrogating databases that store facts about the world.
Suppose we have a program that lets us type in a natural language question and gives us back the right answer:
Which country is Athens in?
How hard is it to write such a program? And can we just use the same techniques that we’ve encountered so far in this book, or does it involve something new? In this section, we will show that solving the task in a restricted domain is pretty straightforward. But we will also see that to address the problem in a more general way, we have to open up a whole new box of ideas and techniques, involving the representation of meaning.
So let’s start off by assuming that we have data ...