SUO: Re: Montague's type system
Rich and Pierluigi,
Before saying anything about Montague's system, let me say
that I admire it very much -- as an abstract mathematical
construction. I have learned a great deal from it. One of
the things I learned is that there has to be a better way.
You can only make sense of Montague's system when you study
the mathematical Lego blocks that he put together in order
to construct it. Following are the pieces:
1. Leibniz's idea that a necessary statement is true in all
2. Carnap's idea that a sentence is a function from possible
worlds to truth values -- i.e., given a world w and a
sentence S, the result of applying S to w, written S(w),
is true if S makes a true statement about w, and S(w) is
false if S makes a false statement about w.
3. Kripke's semantics of modal logic, which combines the
ideas of Leibniz, Carnap, and Tarski to form a model
theory for modal logic.
4. Ajdukiewicz's categorial grammar, in which the grammar
rules combine the types of the constituents to derive
the type of any combination of constituents.
5. Church's lambda calculus, which is designed to create
functions by designating one or more constituents of
an expression as formal parameters. For example, the
following sentence is a function from possible worlds
to truth values:
This function maps worlds in which John walks to truth,
and worlds in which John does not walk to false. When
you replace "John" by a parameter "x", you get
(lambda x)(x walks)
This lambda expression is a function that corresponds
to the verb "walks" by itslef. It is a function from
proper names (or noun phrases in general) to sentences.
In general, if X and Y are any two types, the notation <X,Y>
represents the type of functions from X to Y.
The only two primitive types in Montague's ontology are
e for entities and t for truth values. Every other type is
a function from some previously defined type to some other
previously defined type.
Given those two assumptions, a noun such as "dog" has the
type <e,t>, which implies that the noun "dog" is a function
that applies to entities. If some entity is a dog, then
the value of the function "dog" is _true_. If some entity is
not a dog, then the value of the function "dog" is _false_.
When you take a noun such as "dog" and put a quantifier
such as "a" in front of it, you get the noun phrase "a dog".
Montague assigned the type <<e,t>,t> to noun phrases. That
means that "a dog" is a function from (functions from entities
to truth values) to truth values. Any noun phrase, including
proper names such as "Fido" or "John" has the same type.
I am not even going to try to make that sound intuitively
plausible by itself. But if you puzzle over Montague's paper
long enough, you can begin to manipulate his symbols in the
same way that he did. You will then have entered the weird
and wonderful world that constituted Montague's mind. But I
don't recommend that you stay there.
If you really want to understand natural language semantics,
I recommend an equally elegant, but more realistic theory,
namely, conceptual graphs. See my paper about how to replace
possible worlds with a model theory based on graphs:
Laws, Facts, and Contexts