[Sidetrack] Model Generation
Abstract:
In this chapter, we discuss a special inference technique called model generation. First we discuss what model generation is, why it is important for semantic processing and why tableaux are well suited for model generation. Then we turn to our implementation of propositional tableaux and see how we can turn it into a model generation system.
Table of Contents
Using Model Generation for Natural Language InterpretationIn this section, we turn to
↗model generation , a sort of inference that is viewed as an essential part of any language understanding. Technically, model generation involves deriving sets of literals that follow from a formula. These literals specify a model for the formula. It will turn out that we can easily use our familiar tableaux procedure for the purpose of deriving such sets of literals.
Discourse understandingLet us see how we can model discourse understanding using tableaux-based model generation. Up to now, we've only looked at single sentences, but we will show that it presents no problem in principle for our tableaux-based method to process multiple sentences incrementally. For simplicity we shall simply take a
↗discourse to be a sequence of single sentences, disregarding facets such as anaphora, presupposition, or rhetorical structure. Even using this simplistic abstraction, we have quite some interesting problems to solve.
Wrapping it up (Model Generation)We can use our
tabl/3-predicate right away to generate models. The generated model will be found in the
OutBranch-argument. As a little add-on, we'll now look at a wrapper called
modGen/3 (in
prop.pl). It allows us to generate a model for a formula and include some world knowledge.
Exercise
- Construct a model generation tableaux to represent the following discourse: Fido is the dog and Mimi is the cat. Jane owns the dog or Jane owns the cat. Jane does not own Fido.
- Now show, using the model generation calculus, that adding the sentence Jane does not own Mimi to the discourse above leads to a contradiction.
Clarification: We assume that the dog is mapped to a constant d, where the information DOG(d) is in the world knowledge. Likewise for the cat.
Look again at the example in
» Tableaux for Model Generation with PLNQ. Instead of the somewhat clumsy sentence quoted there, let us now consider a small discourse similar in meaning:
If John doesn't love Mary then Mary loves Bill. John doesn't love Mary.. How would our tableaux approach process this discourse? Construct the tableaux.
Compare your tableaux to the one you would build to validate the intuitively correct argument If John doesn't love Mary then Mary loves Bill. John doesn't love Mary. Thus Mary loves Bill.
Project!
[This is a project (mid- or end-term)]
You may (as in our implementation for single sentences) abstract over the question which is the preferred model (branch). This means that you simply take the first model the implementation generates as the preferred one. In this case Prolog's search strategy, and in particular the order of the two disjunctive clauses of tab/3, effectively determine which model is prefered. The only thing you have to work out is how to store the alternative branches so that they can be backtracked to if subsequent expansions lead to branch closure on the preferred one.
Alternatively, you can re-implement the tableaux procedure such that the tableaux is explicitely represented. There are various ways of doing this: you may e.g. represent a tableaux branch as a list of formulae (and hence a tableaux as a list of lists (branches)). This is what's done in the famous textbook by Melvin Fitting. Or you may assert tableaux nodes to the database and establish the connection between the nodes by specifying the children of each node. Any such explicit representation will give you more freedom in controling the tableaux expansion.